I haven’t used Xen HVM until recently. When I was at Amazon and
hanging with the Xen provisioning folks, I recall complaints about the
performance of network drivers on HVM instances. I’ve recently
discovered that this was due to the use of the ioemu virtual interface
(vif) system. In paravirtualized environments, Xen vif devices are
more efficient because the guest kernel can talk to the hypervisor to
schedule I/O. In hardware virtualized environments, the hypervisor
emulates the back end of a common network driver and the guest uses it
as if it is the real thing.
The Xen team (or was it RedHat?) patched the 2.6.18 kernel such that
HVM guests got the best of both worlds. The guest ran in a HVM
environment, but also had a way of talking with the hypervisor by way
of the xen-vnif kernel driver
(kernel/drivers/xenpv_hvm/netfront/xen-vnif.ko).
I may not be looking in the right places, but I can’t seem to find
such a paravirtualized network driver for any kernels more recent than
2.6.18. This has recently become a bit of an issue, since karmic (and probably sid)
depends on udev 145, which depends on signalfd, and thus won’t run on
kernels before (something like) 2.6.25.
Unless I miss my guess (which is quite possible =]), this means one of
the following needs to happen:
- signalfd needs to be back-ported to the 2.6.18 xen kernel
- xen-vnif needs to be forward-ported to >= 2.6.25
Has this already happened? Am I missing something?
3 responses to “Xen PV network driver”
A quick spot of googling found a reference to at least one 2.6.27 kernel with xen-vnif.ko:
http://www.novell.com/products/linuxpackages/server11/i386/xen-kmp-pae.html
Have a look at the Xen XCI 2.6.27 kernel– I bet it’s got what you need:
http://www.xen.org/products/xci_source.html
your google-fu is much better than mine. Thanks!
Thanks a bunch to Jan Beulich over at Novell for helping me get the unmodified_drivers compiled on the 2.6.27 kernel with SuSE patches. I think I should write a blog post about it…