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 にしておきましょう.