From: Stefano Stabellini <stefano.stabellini@eu.citrix.com> To: qemu-devel@nongnu.org Cc: Anthony.Perard@citrix.com, xen-devel@lists.xensource.com Subject: [Qemu-devel] [PATCH 00/15] RFC xen device model support Date: Thu, 12 Aug 2010 15:08:17 +0100 [thread overview] Message-ID: <alpine.DEB.2.00.1008121244200.2545@kaball-desktop> (raw) Hi all, 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. This is the full list of patches and the diffstat: Anthony Perard (15): xen: Update libxc calls xen: Add xen_machine_fv xen: Add a new target to qemu: target-xen xen: xen_machine_fv, initialize xenstore xen: add a 8259 Interrupt Controller xen: Add the Xen platform pci device xen: handle xenstore events xen: Read and write the state of the VM in xenstore xen: Initialize event channels and io rings xen: Introduce the Xen mapcache piix3: introduce register_set_irq and register_map_irq piix_pci: introduce a write_config notifier vl.c: Introduce getter for shutdown_requested and reset_requested. xen: destroy the VM when shutdown is requested Makefile.target | 31 ++ arch_init.c | 2 + arch_init.h | 1 + configure | 12 +- default-configs/xen-dm-softmmu.mak | 24 + hw/pc.h | 4 + hw/piix_pci.c | 45 ++- hw/xen_acpi_piix4.c | 424 ++++++++++++++++++ hw/xen_backend.c | 10 +- hw/xen_backend.h | 2 +- hw/xen_common.h | 6 + hw/xen_disk.c | 12 +- hw/xen_domainbuild.c | 4 +- hw/xen_machine_fv.c | 234 ++++++++++ hw/xen_nic.c | 16 +- hw/xen_platform.c | 452 ++++++++++++++++++++ hw/xen_platform.h | 9 + sysemu.h | 2 + target-xen/cpu.h | 121 ++++++ target-xen/exec-dm.c | 826 ++++++++++++++++++++++++++++++++++++ target-xen/helper.c | 455 ++++++++++++++++++++ target-xen/i8259-xen-stub.c | 63 +++ target-xen/qemu-xen.h | 50 +++ target-xen/stub-functions.c | 42 ++ target-xen/xen_mapcache.c | 247 +++++++++++ target-xen/xenstore.c | 168 ++++++++ target-xen/xenstore.h | 12 + vl.c | 10 + 28 files changed, 3259 insertions(+), 25 deletions(-) A git tree is available here: git://xenbits.xen.org/people/sstabellini/qemu-dm.git branch name qemu-dm-v1. We are committed in providing the best solution for both qemu and xen developers and users communities; we greatly appreciate any help you can give us to improve the quality of this series, including comments, critics, suggestions and of course patches :) Happy Hacking, Stefano
WARNING: multiple messages have this Message-ID (diff)
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com> To: qemu-devel@nongnu.org Cc: Anthony.Perard@citrix.com, xen-devel@lists.xensource.com, Anthony Liguori <anthony@codemonkey.ws> Subject: [PATCH 00/15] RFC xen device model support Date: Thu, 12 Aug 2010 15:08:17 +0100 [thread overview] Message-ID: <alpine.DEB.2.00.1008121244200.2545@kaball-desktop> (raw) Hi all, 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. This is the full list of patches and the diffstat: Anthony Perard (15): xen: Update libxc calls xen: Add xen_machine_fv xen: Add a new target to qemu: target-xen xen: xen_machine_fv, initialize xenstore xen: add a 8259 Interrupt Controller xen: Add the Xen platform pci device xen: handle xenstore events xen: Read and write the state of the VM in xenstore xen: Initialize event channels and io rings xen: Introduce the Xen mapcache piix3: introduce register_set_irq and register_map_irq piix_pci: introduce a write_config notifier vl.c: Introduce getter for shutdown_requested and reset_requested. xen: destroy the VM when shutdown is requested Makefile.target | 31 ++ arch_init.c | 2 + arch_init.h | 1 + configure | 12 +- default-configs/xen-dm-softmmu.mak | 24 + hw/pc.h | 4 + hw/piix_pci.c | 45 ++- hw/xen_acpi_piix4.c | 424 ++++++++++++++++++ hw/xen_backend.c | 10 +- hw/xen_backend.h | 2 +- hw/xen_common.h | 6 + hw/xen_disk.c | 12 +- hw/xen_domainbuild.c | 4 +- hw/xen_machine_fv.c | 234 ++++++++++ hw/xen_nic.c | 16 +- hw/xen_platform.c | 452 ++++++++++++++++++++ hw/xen_platform.h | 9 + sysemu.h | 2 + target-xen/cpu.h | 121 ++++++ target-xen/exec-dm.c | 826 ++++++++++++++++++++++++++++++++++++ target-xen/helper.c | 455 ++++++++++++++++++++ target-xen/i8259-xen-stub.c | 63 +++ target-xen/qemu-xen.h | 50 +++ target-xen/stub-functions.c | 42 ++ target-xen/xen_mapcache.c | 247 +++++++++++ target-xen/xenstore.c | 168 ++++++++ target-xen/xenstore.h | 12 + vl.c | 10 + 28 files changed, 3259 insertions(+), 25 deletions(-) A git tree is available here: git://xenbits.xen.org/people/sstabellini/qemu-dm.git branch name qemu-dm-v1. We are committed in providing the best solution for both qemu and xen developers and users communities; we greatly appreciate any help you can give us to improve the quality of this series, including comments, critics, suggestions and of course patches :) Happy Hacking, Stefano
next reply other threads:[~2010-08-12 14:08 UTC|newest] Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-08-12 14:08 Stefano Stabellini [this message] 2010-08-12 14:08 ` [PATCH 00/15] RFC xen device model support Stefano Stabellini 2010-08-12 14:09 ` [Qemu-devel] [PATCH 01/15] xen: Update libxc calls stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-12 14:19 ` [Qemu-devel] " Paolo Bonzini 2010-08-12 14:19 ` Paolo Bonzini 2010-08-12 14:28 ` [Qemu-devel] " Stefano Stabellini 2010-08-12 14:28 ` Stefano Stabellini 2010-08-12 14:29 ` [Qemu-devel] " Stefano Stabellini 2010-08-12 14:29 ` Stefano Stabellini 2010-08-18 9:50 ` [Qemu-devel] " Gerd Hoffmann 2010-08-18 11:47 ` Stefano Stabellini 2010-08-18 11:47 ` Stefano Stabellini 2010-08-12 14:09 ` [Qemu-devel] [PATCH 02/15] xen: Add xen_machine_fv stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-16 13:42 ` [Qemu-devel] " Kevin Wolf 2010-08-16 13:42 ` Kevin Wolf 2010-08-16 14:04 ` [Qemu-devel] " Stefano Stabellini 2010-08-16 14:13 ` Kevin Wolf 2010-08-16 14:13 ` Kevin Wolf 2010-08-16 14:38 ` [Qemu-devel] " Anthony Liguori 2010-08-16 14:38 ` Anthony Liguori 2010-08-16 14:51 ` [Qemu-devel] " Kevin Wolf 2010-08-16 14:51 ` Kevin Wolf 2010-08-16 15:00 ` [Qemu-devel] " Stefano Stabellini 2010-08-16 15:00 ` Stefano Stabellini 2010-08-16 15:07 ` [Qemu-devel] " Anthony Liguori 2010-08-16 15:07 ` Anthony Liguori 2010-08-12 14:09 ` [Qemu-devel] [PATCH 03/15] xen: Add a new target to qemu: target-xen stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-12 18:56 ` [Qemu-devel] " Blue Swirl 2010-08-13 12:47 ` [Xen-devel] " Ian Jackson 2010-08-13 12:47 ` Ian Jackson 2010-08-13 17:35 ` [Xen-devel] " Blue Swirl 2010-08-13 17:35 ` Blue Swirl 2010-08-13 13:10 ` Stefano Stabellini 2010-08-13 17:46 ` Blue Swirl 2010-08-13 18:50 ` [Qemu-devel] " Anthony Liguori 2010-08-13 18:50 ` Anthony Liguori 2010-08-12 14:09 ` [Qemu-devel] [PATCH 04/15] xen: xen_machine_fv, initialize xenstore stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-12 14:09 ` [Qemu-devel] [PATCH 05/15] xen: add a 8259 Interrupt Controller stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-12 14:09 ` [Qemu-devel] [PATCH 06/15] xen: Add the Xen platform pci device stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-12 18:26 ` [Qemu-devel] " Blue Swirl 2010-08-13 13:09 ` Stefano Stabellini 2010-08-12 14:09 ` [Qemu-devel] [PATCH 07/15] xen: handle xenstore events stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-12 14:09 ` [Qemu-devel] [PATCH 08/15] xen: Read and write the state of the VM in xenstore stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-13 18:53 ` [Qemu-devel] " Anthony Liguori 2010-08-13 18:53 ` Anthony Liguori 2010-08-15 14:12 ` [Qemu-devel] " Paolo Bonzini 2010-08-15 14:12 ` Paolo Bonzini 2010-08-16 11:15 ` [Qemu-devel] " Stefano Stabellini 2010-08-16 11:15 ` Stefano Stabellini 2010-08-16 12:13 ` [Qemu-devel] " Paolo Bonzini 2010-08-16 12:13 ` Paolo Bonzini 2010-08-16 12:59 ` [Qemu-devel] " Stefano Stabellini 2010-08-16 12:59 ` Stefano Stabellini 2010-08-12 14:09 ` [Qemu-devel] [PATCH 09/15] xen: Initialize event channels and io rings stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-12 18:42 ` [Qemu-devel] " Blue Swirl 2010-08-13 13:10 ` Stefano Stabellini 2010-08-13 18:54 ` [Qemu-devel] " Anthony Liguori 2010-08-13 18:54 ` Anthony Liguori 2010-08-12 14:09 ` [Qemu-devel] [PATCH 10/15] xen: Introduce the Xen mapcache stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-13 18:55 ` [Qemu-devel] " Anthony Liguori 2010-08-13 18:55 ` Anthony Liguori 2010-08-12 14:09 ` [Qemu-devel] [PATCH 11/15] piix3: introduce register_set_irq and register_map_irq stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-12 18:44 ` [Qemu-devel] " Blue Swirl 2010-08-13 13:10 ` Stefano Stabellini 2010-08-12 14:09 ` [Qemu-devel] [PATCH 12/15] piix_pci: introduce a write_config notifier stefano.stabellini 2010-08-12 14:09 ` stefano.stabellini 2010-08-12 18:35 ` [Qemu-devel] " Blue Swirl 2010-08-13 13:10 ` Stefano Stabellini 2010-09-05 7:34 ` [Qemu-devel] " Michael S. Tsirkin 2010-09-05 7:34 ` Michael S. Tsirkin 2010-08-12 14:10 ` [Qemu-devel] [PATCH 13/15] vl.c: Introduce getter for shutdown_requested and reset_requested stefano.stabellini 2010-08-12 14:10 ` stefano.stabellini 2010-08-12 14:10 ` [Qemu-devel] [PATCH 14/15] xen: destroy the VM when shutdown is requested stefano.stabellini 2010-08-12 14:10 ` stefano.stabellini 2010-08-13 18:56 ` [Qemu-devel] " Anthony Liguori 2010-08-13 18:56 ` Anthony Liguori 2010-08-12 14:10 ` [Qemu-devel] [PATCH 15/15] xen: Add a Xen specific ACPI Implementation to target-xen stefano.stabellini 2010-08-12 14:10 ` stefano.stabellini 2010-08-12 18:46 ` [Qemu-devel] " Blue Swirl 2010-08-13 13:10 ` Stefano Stabellini 2010-08-13 13:10 ` Stefano Stabellini 2010-08-13 18:57 ` [Qemu-devel] " Anthony Liguori 2010-08-13 18:57 ` Anthony Liguori 2010-08-13 19:37 ` [Qemu-devel] " Stefano Stabellini 2010-08-13 19:37 ` Stefano Stabellini 2010-08-13 20:51 ` [Qemu-devel] " Anthony Liguori 2010-08-13 20:51 ` Anthony Liguori 2010-08-16 11:10 ` [Qemu-devel] " Stefano Stabellini 2010-08-16 11:10 ` Stefano Stabellini 2010-08-13 19:09 ` [Qemu-devel] Re: [PATCH 00/15] RFC xen device model support Anthony Liguori 2010-08-13 19:09 ` Anthony Liguori 2010-08-13 19:35 ` [Qemu-devel] " Stefano Stabellini 2010-08-13 19:35 ` Stefano Stabellini 2010-08-13 20:48 ` [Qemu-devel] " Anthony Liguori 2010-08-13 20:48 ` Anthony Liguori
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=alpine.DEB.2.00.1008121244200.2545@kaball-desktop \ --to=stefano.stabellini@eu.citrix.com \ --cc=Anthony.Perard@citrix.com \ --cc=qemu-devel@nongnu.org \ --cc=xen-devel@lists.xensource.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.