@naota344の今週のLKML

今週は

  • [RFC][PATCH 0/4] fsfreeze: new API
  • better oopsing when frozen
  • Linux 3.0
  • [PATCH]Remove extra semicolon's in the kernel.

[RFC][PATCH 0/4] fsfreeze: new API

http://permalink.gmane.org/gmane.linux.file-systems/56161

ストレージのバックアップはよく言われているようにとても大事です。しかし、オンラインですからそのままやると転送量の問題などで失敗してしまうこともあります。そこで fsfreeze という API があります。これは指定したファイルシステムのIOを止めてしまうものです。これで止まっている間にバックアップをすませてしまえばいいわけですね。

しかし、現在のAPIではフリーズされているかどうかを判定することができません。また、こういったバックアップ+フリーズ処理はだいたいデーモンやなんかのプロセスで行なわれていますが、このバックアップの途中でもしそのプロセスが死んでしまった場合フリーズしたままになってしまいます。

この提案では、1) フリーズ状態かどうかを確認するioctrlを追加 2) フリーズしてファイルデスクリプタを発行するioctrlを追加。このファイルデスクリプタが閉じられると自動的にフリーズが解除されます。

参考リンク http://www.jp.redhat.com/magazine/jp/201010/rhel.html

better oopsing when frozen

http://permalink.gmane.org/gmane.linux.kernel/1170934

システムをスリープ/ハイバネートする時は、システムをフリーズさせてACPIなんかでスリープを走らせます。さて、この途中でカーネルがエラーを出してしまったらどうなるでしょう? 完全に固まってしまってどうしようもなくなってしまいますね。これではエラー処理もできないので、こういう時にエラーが出た時はとりあえずタスクのスリープを解除するコードを入れよう、というのがこのpatchです。

[PATCH] Cross Memory Attach v4

http://permalink.gmane.org/gmane.linux.kernel.mm/66371

OpenMPI などのメッセージパッシングを行なうもので、プロセスID・アドレス・サイズを指定して、そのプロセスのアドレス空間から直接読みこむ、または、そのアドレス空間に直接書きこむということができるようにするpatchです。想像通りかなりパフォーマンスが上がるようです。気になるセキュリティに関しては v1 のpatchでは uid, gid などが完全に一致で見ているようでした…最新のではどうなってるんでしょう…既存のを使っているぽいですが…。

http://lwn.net/Articles/405284/

Linux 3.0

Linux 3.0がリリースされました。

http://kernelnewbies.org/Linux_3.0

面白いあたりは

  • btrfs に auto-defrag が入った

うちで使ってたらめっちゃ重くなった感が…orz しかし、その後 compress=lzo, space_cache をつけてみるとなかなか速くなりました。

  • btrfs scrub

LinuxCon でも紹介されてた機能ですね。ディスクエラーなので checksum がおかしくなったデータを判定し、別のコピーから修復してきます。

先週の記事にもありましたが、fileの使用していないblockを実際にはdiskに書きこまず論理的にだけ確保しておくsparse fileというものがあります。いままでこれは基本的に作成時に使われなかった部分がその「穴」になり、その後で使用していない部分が増えてもなにもできない(あとから「穴」を増やせない)ようになっていました。 punch hole はファイルのいらなくなった部分を廃棄して、あとから sparse file を作るために使われます。例えばVMなんかでいままで8G使ってたけど4Gしかいらなくなった、などの時にその4Gを解放するために使えたりしますね。

[PATCH]Remove extra semicolon's in the kernel.

http://permalink.gmane.org/gmane.linux.kernel/1171732

static DEFINE_CLK(g2d, 10);; とのような ";" が2つあるようなケースを除去する patch です…。ふむ… Linuxカーネルでも結構こういうものがあるのですね。