[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH QEMU-XEN v5 9/9] xen: make it possible to build
From: |
Stefano Stabellini |
Subject: |
Re: [Qemu-devel] [PATCH QEMU-XEN v5 9/9] xen: make it possible to build without the Xen PV domain builder |
Date: |
Tue, 10 Nov 2015 12:48:14 +0000 |
User-agent: |
Alpine 2.02 (DEB 1266 2009-07-14) |
On Mon, 9 Nov 2015, Ian Campbell wrote:
> Until the previous patch this relied on xc_fd(), which was only
> implemented for Xen 4.0 and earlier.
>
> Given this wasn't working since Xen 4.0 I have marked this as disabled
> by default.
>
> Removing this support drops the use of a bunch of symbols from
> libxenctrl, specifically:
>
> - xc_domain_create
> - xc_domain_destroy
> - xc_domain_getinfo
> - xc_domain_max_vcpus
> - xc_domain_setmaxmem
> - xc_domain_unpause
> - xc_evtchn_alloc_unbound
> - xc_linux_build
>
> This is another step towards only using Xen libraries which provide a
> stable inteface.
>
> Signed-off-by: Ian Campbell <address@hidden>
Reviewed-by: Stefano Stabellini <address@hidden>
> v5: XEN_CREATE entirely wihtin CONFIG_XEN_PV_DOMAIN_BUILD ifdef.
> Simplify configure'ry.
>
> v4: Fixed all checkpatch errors.
> Disabled by default.
> ---
> configure | 15 +++++++++++++++
> hw/xenpv/Makefile.objs | 4 +++-
> hw/xenpv/xen_machine_pv.c | 15 +++++++++++----
> 3 files changed, 29 insertions(+), 5 deletions(-)
>
> diff --git a/configure b/configure
> index 0253cc9..4ab6d9c 100755
> --- a/configure
> +++ b/configure
> @@ -247,6 +247,7 @@ vnc_jpeg=""
> vnc_png=""
> xen=""
> xen_ctrl_version=""
> +xen_pv_domain_build="no"
> xen_pci_passthrough=""
> linux_aio=""
> cap_ng=""
> @@ -917,6 +918,10 @@ for opt do
> ;;
> --enable-xen-pci-passthrough) xen_pci_passthrough="yes"
> ;;
> + --disable-xen-pv-domain-build) xen_pv_domain_build="no"
> + ;;
> + --enable-xen-pv-domain-build) xen_pv_domain_build="yes"
> + ;;
> --disable-brlapi) brlapi="no"
> ;;
> --enable-brlapi) brlapi="yes"
> @@ -2172,6 +2177,12 @@ if test "$xen_pci_passthrough" != "no"; then
> fi
> fi
>
> +if test "$xen_pv_domain_build" = "yes" &&
> + test "$xen" != "yes"; then
> + error_exit "User requested Xen PV domain builder support" \
> + "which requires Xen support."
> +fi
> +
> ##########################################
> # libtool probe
>
> @@ -4762,6 +4773,7 @@ fi
> echo "xen support $xen"
> if test "$xen" = "yes" ; then
> echo "xen ctrl version $xen_ctrl_version"
> + echo "pv dom build $xen_pv_domain_build"
> fi
> echo "brlapi support $brlapi"
> echo "bluez support $bluez"
> @@ -5130,6 +5142,9 @@ fi
> if test "$xen" = "yes" ; then
> echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak
> echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >>
> $config_host_mak
> + if test "$xen_pv_domain_build" = "yes" ; then
> + echo "CONFIG_XEN_PV_DOMAIN_BUILD=y" >> $config_host_mak
> + fi
> fi
> if test "$linux_aio" = "yes" ; then
> echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
> diff --git a/hw/xenpv/Makefile.objs b/hw/xenpv/Makefile.objs
> index 49f6e9e..bbf5873 100644
> --- a/hw/xenpv/Makefile.objs
> +++ b/hw/xenpv/Makefile.objs
> @@ -1,2 +1,4 @@
> # Xen PV machine support
> -obj-$(CONFIG_XEN) += xen_domainbuild.o xen_machine_pv.o
> +obj-$(CONFIG_XEN) += xen_machine_pv.o
> +# Xen PV machine builder support
> +obj-$(CONFIG_XEN_PV_DOMAIN_BUILD) += xen_domainbuild.o
> diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
> index 23d6ef0..3250b94 100644
> --- a/hw/xenpv/xen_machine_pv.c
> +++ b/hw/xenpv/xen_machine_pv.c
> @@ -30,9 +30,6 @@
>
> static void xen_init_pv(MachineState *machine)
> {
> - const char *kernel_filename = machine->kernel_filename;
> - const char *kernel_cmdline = machine->kernel_cmdline;
> - const char *initrd_filename = machine->initrd_filename;
> DriveInfo *dinfo;
> int i;
>
> @@ -46,17 +43,27 @@ static void xen_init_pv(MachineState *machine)
> case XEN_ATTACH:
> /* nothing to do, xend handles everything */
> break;
> - case XEN_CREATE:
> +#ifdef CONFIG_XEN_PV_DOMAIN_BUILD
> + case XEN_CREATE: {
> + const char *kernel_filename = machine->kernel_filename;
> + const char *kernel_cmdline = machine->kernel_cmdline;
> + const char *initrd_filename = machine->initrd_filename;
> if (xen_domain_build_pv(kernel_filename, initrd_filename,
> kernel_cmdline) < 0) {
> fprintf(stderr, "xen pv domain creation failed\n");
> exit(1);
> }
> break;
> + }
> +#endif
> case XEN_EMULATE:
> fprintf(stderr, "xen emulation not implemented (yet)\n");
> exit(1);
> break;
> + default:
> + fprintf(stderr, "unhandled xen_mode %d\n", xen_mode);
> + exit(1);
> + break;
> }
>
> xen_be_register("console", &xen_console_ops);
> --
> 2.1.4
>
- [Qemu-devel] [PATCH QEMU-XEN v5 0/9] Begin to disentangle libxenctrl and provide some stable libraries, (continued)
- [Qemu-devel] [PATCH QEMU-XEN v5 0/9] Begin to disentangle libxenctrl and provide some stable libraries, Ian Campbell, 2015/11/09
- [Qemu-devel] [PATCH QEMU-XEN v5 1/9] xen_console: correctly cleanup primary console on teardown., Ian Campbell, 2015/11/09
- [Qemu-devel] [PATCH QEMU-XEN v5 6/9] xen: Switch uses of xc_map_foreign_bulk to use libxenforeignmemory API., Ian Campbell, 2015/11/09
- [Qemu-devel] [PATCH QEMU-XEN v5 2/9] xen: Switch to libxenevtchn interface for compat shims., Ian Campbell, 2015/11/09
- [Qemu-devel] [PATCH QEMU-XEN v5 7/9] xen: Use stable library interfaces when they are available., Ian Campbell, 2015/11/09
- [Qemu-devel] [PATCH QEMU-XEN v5 5/9] xen: Switch uses of xc_map_foreign_pages into xc_map_foreign_bulk, Ian Campbell, 2015/11/09
- [Qemu-devel] [PATCH QEMU-XEN v5 4/9] xen: Switch uses of xc_map_foreign_range into xc_map_foreign_bulk, Ian Campbell, 2015/11/09
- [Qemu-devel] [PATCH QEMU-XEN v5 8/9] xen: domainbuild: reopen libxenctrl interface after forking for domain watcher., Ian Campbell, 2015/11/09
- [Qemu-devel] [PATCH QEMU-XEN v5 9/9] xen: make it possible to build without the Xen PV domain builder, Ian Campbell, 2015/11/09
- Re: [Qemu-devel] [PATCH QEMU-XEN v5 9/9] xen: make it possible to build without the Xen PV domain builder,
Stefano Stabellini <=
- [Qemu-devel] [PATCH QEMU-XEN v5 3/9] xen: Switch to libxengnttab interface for compat shims., Ian Campbell, 2015/11/09