MMU Notifier 対応後のカーネル用にkvmをコンパイルする際の注意

去年の夏頃だと思いましたが, KVM 上で動作しているゲストOSのメモリをスワップアウトさせるために、LinuxカーネルMMU Notifier という機能が実装されました. 詳細はid:kvmさんのこちらの記事をご覧ください. その影響もあり、少なくともKVM85では、mmu notifierに対応していないカーネル上でコンパイルを行うと、コンパイルエラーが発生します. 回避方法はシンプルで、mmu notifier をカーネルコンフィグで ON すればよいです.

ことろが、mmu notifier をONにするには、以下のフラグをONにする必要があります:

SGI_GRU && MISC_DEVICES && (X86_64 || IA64_SGI_UV || IA64_GENERIC) && SMP

KVM && VIRTULIZATION && HAVE_KVM

そう、kvmをONにする必要があります. つまり、「kvmは自前でコンパイルするからいいやー」と思ってkvm を外すと、残念ながら mmu notifier が off になってしまい、コンパイルに失敗します. 仕方がないので、 Virtulization 以下の Kernel-based Virtual Machie (KVM) support は ON にしておきましょう.