Skip to main content

RFC xen device model support

By August 13, 2010March 4th, 2019Uncategorized

From Stefano Stabellini – http://lists.xensource.com/archives/html/xen-devel/2010-08/msg00649.html
this is the long awaited patch series to add xen device model support in qemu; the main author is Anthony Perard.
Developing this series we tried to come up with the cleanest possible solution from the qemu point of view, limiting the amount of changes to common code as much as possible. The end result still requires a couple of hooks in piix_pci but overall the impact should be very limited.
The current series gives you an upstream qemu device model able to boot a Linux or a Windows HVM guest; some features are still missing compared to the current qemu-xen, among which vga dirty bits, pci passthrough and stubdomain support.
For any of you that want to try it, this is the step by step guide:
– clone a fresh copy of xen-unstable.hg, make and install; note that the xen-unstable make system will clone a linux tree and a qemu-xen tree by default: you can avoid the former just executing ‘make xen’ and ‘make tools’ instead of ‘make world’;
– configure qemu using xen-dm-softmmu as target and extra-ldflags and extra-cflags pointing at the xen-unstable build directory, something like this should work:
./configure –target-list=xen-dm-softmmu –extra-cflags=”-I$HOME/xen-unstable/dist/install/usr/include” –extra-ldflags=”-L$HOME/xen-unstable/dist/install/usr/lib” –enable-xen
– build qemu and install the newly compiled binary (xen-dm-softmmu/qemu-system-xen);
– edit your VM config file and modify device_model to point at it.
Currently only xl (not xend) knows how to spawn the new qemu device model with the right command line options.
As you can see the build and test procedures are not straightforward yet, but in the near future we plan to provide a way to select an upstream qemu tree for use as xen device model directly from the xen-unstable build system.
The patch series adds a new target with the whole xen device model machinery; each patch contains a detailed description.