2.6.38 merge window

2.6.38-rc1 で入った新機能のリスト。

ユーザ見えの変更
  • per-session group scheduling: 高負荷下で interactive なプロセスの応答性が改善
  • dcache scalability
  • x86 で、カーネルモジュールは read-only、データは non-executable でロードされることに
  • Transmit packet steering: 連続するデータが同一 CPU の queue に割り振られるようになり、性能改善
  • batman-adv mesh networking protocol
  • trusted and encrypted keys
  • ext3 に batched discard operations と ioctl(FITRIM) が追加
  • Video4Linux1 API が削除 (BKL 排除の一環?)
  • transparent huge pages: アプリケーションの変更やシステム管理の手間なしに hugepage が利用できる。TLB の効率改善により性能が向上する。
  • turbstat: intel CPU の各種性能統計の採取機能を利用できるように。
  • taskstats (Documentation/accounting/taskstats.txt) の API が変更。
  • 内部時計が外部の PPS (Pulse-per-second) を利用するようになり、精度が向上。
  • x86 で XZ 圧縮されたカーネルがブート可能に。
  • 入力デバイスレイヤにマルチタッチデバイスが追加。
  • RFC 4106 AES-GCM 暗号化をサポート。
  • fallocate() でファイルに「穴を開ける(punch hole)」ことが可能に。現状では XFS, OCFS2 のみサポート。
  • XFS が ioctl(FITRIM) をサポート。ユーザ空間から discard 命令が発行可能に。
  • LIO SCSI target 機能のコア部分がマージ。
  • block I/O 帯域コントローラが hierarchical cgroup をサポート。
  • block layer が新たにイベントハンドリング機構をサポート。DVD 挿入などのデバイスイベントがドライバ内で処理可能 (userspace polling 不要)
  • dm-crypt target で異なるブロックを異なる key で暗号化できる multikey mode が追加。crypt target は (ツリー外の) loop-AES で暗号化されたパーティションを読むことができる。
  • dm が MD RAID ドライバを利用して RAID 4/5/6 volume を使用可能に。
  • clone() コールから CLONE_STOPPED フラグを削除。
  • btrfs が read only snapshot と LZO 圧縮をサポート。
カーネル開発者向けの変更
  • TRACE_EVENT_FLAGS() マクロ。非特権ユーザから tracepoint が使えるようにするためのフラグ。
  • perf trace コマンドが perf script に変更
  • Conditional tracepoints
  • 電源管理サブシステムの tracepoints が変更 (Documentation/trace/events-power.txt)
  • cancel_rearming_delayed_work() / cancel_rearming_delayed_workqueue() が deprecated に。2.6.39 で廃止予定。
  • バイスツリーの blob がカーネルイメージに直接 link されるようビルド周りを変更
  • syslog へのアクセスを制御する capability に CAP_SYSLOG が追加
  • kref_sub(): 一つの関数から複数の参照を返せるように
  • タイマのリストを管理する timerlist サブシステムが追加 (include/linux/timerlist.h 参照)
  • direct rendering コードが vertical blanking timestamp を正確に扱えるように。
  • ktest.pl: kernel building, testing, bisecting を自動化スクリプトの追加
  • printk のフォーマット指示子に "%pK" が追加、procfs 配下の属性ファイルをリードした時に、カーネルポインタをユーザ空間に公開するかどうかを指定可能に。詳細は /proc/sys/kernel/kptr_restrict で制御できる:
    • 0: 普通にポインタを見せる。
    • 1: CAP_SYSLOG 権限を持たないユーザに対して null ポインタを見せる。
    • 2: 全てのユーザに null ポインタを見せる。
  • cdev_index() が削除。
  • kref_test_and_get() が追加。現在の参照カウントが 0 でなければ get。
  • VFS 内でオートマウントするための dentry 命令が追加。
  • ファイルシステムの fallocate() コールバックが inode_operations から file_operations へ移動。