ゲストOSとして起動したQEMUは、最初に自身のメモリを共有可能であると /dev/ksmに登録します。すると、ksmスレッドがバックグラウンドで定期的 にページをスキャンし、それぞれのページのハッシュ値を計算していきます。 ハッシュ値が同じものが見つかったらmemcmpで内容が一致するかを確認 し、本当に一致していたら、両方の参照元のpteが同じpageを指すよう 書き換えかつリードオンリーにしてしまいます。 これで、参照元プロセスがページの内容を変更しようとしたタイミングで ページフォルトが発生し、通常のfork時のCOWと同じように共有解除が されるというわけです。
逆COW?そりゃいくらなんでも乱暴すぎるんじゃないでしょうか。 第一ksmスレッドのオーバヘッドはバカにならないんじゃぁ。。。
でもこんなpatchがmainに入っちゃうんだからLinuxだなぁ。
なんかmixiでQ氏の記事がほとんど他ブログリンクになったぞ。 <br>何やっとんの?
friendfeedってののの更新を突っ込んでみました。 <mixi <br>twitterやらdeliciousやらの更新の方が日記の更新より頻度が多いんでぇ。 <br>