Xen support upstreamed to QEMU

My name is Anthony Perard and I have been working on up-streaming Xen patches to the QEMU mainline. The good news is that the bulk of the changes for Xen are in the QEMU mainline as of yesterday.

Let me begin a year ago, when I started working on this project. The Xen codeline contained a fork of the QEMU code implementing a “xen” target within QEMU.  The drawback of using a “xen” specific target within the QEMU source tree, was that lots of QEMU code had to be duplicated, in effect increasing the maintenance burden on the QEMU project. Unsurprisingly the code as it was, wasn’t acceptable.

Thus we embarked on a project to rewrite the Xen QEMU code. The goal was to add Xen support to QEMU with the goal to avoid code duplication.  It has taken some time: but after several revisions of the patch series, the code has finally been accepted into the QEMU mainline. A lot of effort has been spent on ensuring the quality of the changes are very high straight from the outset. This is not the end of the road: some additional patches for PCI pass-through and support for VGA dirty bitmaps are still outstanding.

Xen support in QEMU will have advantages for the QEMU as well as the Xen community. First of all, the last year has brought the two communities closer together. Going forward we hope that there will be more collaboration and sharing of ideas. Of course for the Xen community there are also advantages using vanilla QEMU: we will have access to more functionality as it is developed, such as support for the Q35 chipset within QEMU, PCI express support, and others.

I am looking forward to working more on this in the future and also wanted to thank Alexander Graf for feedback and suggestions on QEMU patches.