IBM, Linux Technology Center, Anthony Liguori氏は10月29日(米国時間)、自身のブログにおいて、Avi Kivity氏の提出したLinux KVMの改善でWindows XPのインストール時間が少なくとも2倍は高速になったことを報告している。同氏は長らくXenなど仮想化に携わってきた人物のひとり。同改善はまだ試験とクリーンナップが必要であるため向こう数週間はマージされないようだが、KVMを使ったWindowsのエミュレーションの高速化の実現は間違いなさそうだ。

Linux KVMはLinuxカーネルに取り込まれた仮想化技術。プロセッサが提供しているIntel VTやAMD-Vなどの仮想化機能を活用するもの。既存の類似実装にはXenがある。Xenと比較した場合Linux KVMの完成度はまだ低いとされているが、Linux Kernel 2.6.20においてデフォルトの機能として取り込まれたため、今後Linuxで活用される仮想化技術のスタンダードに成長する可能性がある。同仮想化機能はUbuntu 7.10で取り込まれているほか、Fedora 8でも注目の機能として活用される見通し。FreeBSDでもSummer of Code 2007で移植作業が実施された。

OSが実施する仮想化では多くのIOデバイスを仮想化させる必要がある。特にネットワークカードとディスクコントローラは性能に関与する重要な部分だ。そうした仮想化においてローカルAPICがひとつのポイントになっている。ローカルAPICはプロセッサごとに用意されている割り込みコントローラで、TPR (Task Priority Register)と呼ばれる機能を有している。Windowsなどの特定のOSはTRPにかなり頻繁にアクセスしているため性能に深く関与しているというわけだ。

KVMを使ってWindowsを使う場合、APICの機能を無効にすることでWindowsの動作速度が向上することは知られていた。しかし、APICはマルチコア/マルチプロセッサの活用において必須であるため、無効化は根本的な対策にはなっていない。今回同処理を高速化する方法が発見されたことで、Linux KVMを使ったWindowsエミュレーション速度が目に見えて高速化されたというわけだ。今後のLinuxカーネルリリースおよびディストリビューションの対応に注目しておきたい。