ksm - dynamic page sharing driver for linux

ksm - dynamic page sharing driver for linux [LWN.net]というパッチがLKMLやKVM MLにポストされました。

KSMとは、

KSM is a linux driver that allows dynamicly sharing identical memory pages between one or more processes.

の説明のとおり、メモリ上に存在する同一内容のページをひとつにまとめるドライバです。

これはKVMをはじめとするLinuxを土台とする仮想化技術にとって朗報です。KVMでは同じゲストOSのVMがたくさん動いている場合にかなりのメモリ消費量の削減が見込まれます。

この機能はKVMのためだけのものではなく、Linuxカーネルのメモリ管理コア機能に手を入れているので、すぐに利用できるようにはならないと思いますが、マージされるのが今から待ち遠しい期待の新機能ですね。

追記1:

/dev/ksm: dynamic memory sharing - LWN.netに解説記事がありますね。要Subscriptionです。*1

この記事の内容ですが、ksmの簡単な使い方とML上での議論について触れられています。

Andrew Mortonが、今あるVM(仮想メモリ)機構でいいんじゃね?ダメな理由説明してよ?と反対を表明して、Aviが、いや仮想マシンのメモリまではVM(仮想メモリ)は面倒みてないから無理だよ、みたいな反論をしているようです。あとページのハッシュ値を取る処理による影響を懸念しているみたいです。この辺りはベンチマークの結果が待たれるところですね。

追記2:

patch当てて試してみましたが、ホストカーネルが目を回してしまいました。。。まだ完成度は高くないのだろうか?

追記3:

patchが流れていたのでそれを当てて試してみると、動いた!わーい

と思ったのもつかの間、VMwareの特許に引っかかるんじゃね?というツッコミが。。。特許には詳しくないですがどうなんでしょう?

追記4:

LWN.netでも取り上げられたみたいですね。

*1:私はsubscribeしてるので読めます(^o^) Linuxカーネルに関わっててLWN.netをsubscribeしてないのが許されるのは(以下略