Today is an important day in the history of the Xen project. Linus has just merged the XenSource patches into upstream for release as part of the 2.6.23 kernel.
About a year ago, XenSource, the Linux kernel community and VMware set out to develop a common interface into the Linux kernel that would allow for optimal execution on a hypervisor, taking advantage of paravirtualization – the key innovation of the Xen project that will also be adopted into Solaris 10, and that can be expected in the forthcoming Windows Server, Longhorn. The patches in Linux allow a kernel to directly plug into the hypercall interface of the hypervisor, bypassing the need for the tedious code-rewriting technology used historically in all emulation based hypervisors, and even today in VMware’s product line. Instead of having to trap, and emulate virtualization-unsafe instructions in guests, and thereafter patch the guests by re-writing the instruction sequences, the guest uses a virtualization-aware API to directly call into the hypervisor for certain non-virtualization safe operations. This gives a tremendous performance boost – of the order of 25% over the trap, emulate and patch technology.
VMware’s implementation of the paravirt_ops API is already in upstream, and VMware has now offered beta level support for this in their VMware Player and desktop products, though they have yet to announce commercial support.
It has been a tremendous, collaborative effort to get the patches upstream by all of the kernel community. The effort for XenSource has been led by Jeremy Fitzhardinge, who has tirelessly tracked the developing kernel versions, while adding the Xen guest support for SMP guests, with fast paravirtualized block and network I/O. Next up is 64 bit support, according to Jeremy, who is also working on Dom0 support.
This work will allow future Linux distro kernels to simply base of kernel.org, and automatically inherit Xen support, without needing to pull the Xen paravirtualization patches into their kernel as a separate effort.