@naota344の今週のLKML
今週は
- KGTP (Linux Kernel debugger and tracer) 20111111 release (Android support OK)
- Printk mulitple line message support
- [RFC PATCH] tmpfs: support user quotas
- [PATCH v2 0/8] Filesystem io types statistic
- [PATCH 0/2 v2] Make task in balance_dirty_pages() killable
KGTP (Linux Kernel debugger and tracer) 20111111 release (Android support OK)
http://permalink.gmane.org/gmane.linux.kernel/1215121
Linux Kernelをgdbでremote debugやtraceできるようにするKGTPがAndroidサポートを追加したようです。
https://code.google.com/p/kgtp/wiki/HowToUseKGTPinAndroid
Printk mulitple line message support
http://permalink.gmane.org/gmane.linux.kernel/1215150
printkで出力されるカーネルのメッセージを見ていると
line 1 of message from printk user1
line 1 of message from printk user2
line 2 of message from printk user1
line 2 of message from printk user2
このように2つ以上のモジュールからのログが混ざってしまうことがあります。これだと読みにくいですね。そこで
{1}line 1 of message from printk user1
{2}line 1 of message from printk user2
{1}line 2 of message from printk user1
{2}line 2 of message from printk user2
のように先頭に自動的にIDをつけよう、というpatchです。
発想自体はなかなかいいように思うのですが、実装がもう少しかなーとか思います。もっといい実装がありそう…。
[RFC PATCH] tmpfs: support user quotas
http://permalink.gmane.org/gmane.linux.kernel.mm/69803
tmpfsにuser単位のquotaをできるようにしよう、というRFCなのですが…実装についてもめています。
元のpatchではrlimitを使っていますが、それに対して一般のquotaの実装をしてほしいと意見が出て対立しています。
rlimitの方は
Lennart Poettering http://permalink.gmane.org/gmane.linux.kernel.mm/69828
- /tmpや/dev/shmが1つだけあればいい。userごとにpermissionが500のディレクトリを作りたくない
- /dev/shmや/tmpの場所を変えるわけにはいかない (ユーザランドで混乱する)
- (tmpfsはいろんなところにmountできるがその個所ごとではなく)tmpfs全体でuserごとの容量制限を行ないたい
- (普通のdiskだとdisk上に残るからいいけど、tmpfsだとデータは消えてしまうので)quotaのデータを毎回tmpfsをmountするごとに設定したくはない
から、rlimitを使うのがいいという意見になっています。
一方でrlimitは目的としてquotaのような用途には合わない・rlimitは基本的にforkで継承されるからuserごとの制限にあわないといった点が指摘されています。
確かにrlimitを使えばすぐにシンプルに実装はできますが…全体としてhackyな感じしますね。
[PATCH v2 0/8] Filesystem io types statistic
http://permalink.gmane.org/gmane.comp.file-systems.ext4/29052
ファイルシステムがdiskにread/writeする時にその種類ごとにラベルをつけて統計をとれるようにしよう、というpatchです。
たとえばext4だと
- メタデータ
- super block
- group descriptor
- inode bitmap
- block bitmap
- inode table
- extent block
- indirect block
- dir index and entry
- extended attribute
- データ
- 通常のデータブロック
のような分類ができて、 /sys/fs/ext4/$DEVICE/io_stats でその統計を見ることができるようになります。
[PATCH 0/2 v2] Make task in balance_dirty_pages() killable
http://permalink.gmane.org/gmane.linux.file-systems/58843
balance_dirty_pages() の中で待機しているプロセスをkillできるようにしよう、というpatchです。
具体的にはwrite()してデバイスが取り除かれていたり、ファイルシステムのエラーが起きた時でもps で見て"D"状態のままではあるものの、SIGKILLでwakeupしてkillできるようになります。こうして途中でkillされた場合、writeはEINTRを返すようになるようです。