KVMのMLで、vhost: a kernel-level virtio serverが話題になっています. これまで準仮想化の標準インターフェースとされてきた virtio は、専用のPCIデバイスをVMに認識させ、そのデバイスを経由してホストにIOを要求していました. この際、KVMがQemuのコードを利用しているため、virtioに用いられるのPCIデバイスのエミュレーションはユーザ空間で行われていました. このフローを表したものが以下の図です. この方式の難点は、IOの要求を行う度に、 1.VMX non Root モードから VMX root モードに遷移し、 2.ホストのカーネルがユーザ空間に一旦処理を返し、 3.再度IOのためのシステムコールを発行する といった手順を踏む必要がある点です. ネットワークIOのように粒度が小さいIOが大量に発生する可能性がある場合、従来のvir
