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 へ移動。