[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] Add device_model_pvdevice parameter for HVM guests
> -----Original Message----- > From: Ian Campbell [mailto:ian.campbell@xxxxxxxxxx] > Sent: 22 July 2013 18:52 > To: Paul Durrant > Cc: xen-devel@xxxxxxxxxxxxx; Stefano Stabellini; Ian Jackson > Subject: Re: [PATCH v2] Add device_model_pvdevice parameter for HVM > guests > > On Mon, 2013-07-22 at 09:16 +0100, Paul Durrant wrote: > > > -----Original Message----- > > > From: Paul Durrant [mailto:paul.durrant@xxxxxxxxxx] > > > Sent: 18 July 2013 14:47 > > > To: xen-devel@xxxxxxxxxxxxx > > > Cc: Paul Durrant; Stefano Stabellini; Ian Campbell; Ian Jackson > > > Subject: [PATCH v2] Add device_model_pvdevice parameter for HVM > guests > > > > > > The parameter determines which, if any, xen-pvdevice is specified on the > > > QEMU command line. The default value is 'none' which means no > argument > > > will > > > be passed. A value of 'xenserver' specifies a xen-pvdevice with device-id > > > 0xc000 (the initial value in the xenserver namespace - see > > > docs/misc/pci-device-reservations.txt). > > > > > > Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> > > > Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx> > > > Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> > > > Cc: Ian Jackson <ian.jackson@xxxxxxxxxx> > > > --- > > > v2: > > > - Added LIBXL_HAVE_PVDEVICE to libxl.h > > > - Added more text to xl.cfg manpage to call out the device-id of > > > the xenserver pvdevice and point readers at > > > docs/misc/pci-device-reservations.txt > > > > > > > Ping? > > > > I hope I've addressed all comments now. Is this stalled on the QEMU side > of things? > > yes, I was hoping it would go into upstream qemu first so we know they > are happy with the cmdline interface etc. No point accepting this first > and then having to change it if they want it done differently etc. > The qemu patch is all acked/reviewed and ready to go. Just waiting for Stefano to send a pull request AFAIK... Stefano? Paul > > > > Paul > > > > > docs/man/xl.cfg.pod.5 | 23 +++++++++++++++++++++++ > > > tools/libxl/libxl.h | 8 ++++++++ > > > tools/libxl/libxl_dm.c | 9 +++++++++ > > > tools/libxl/libxl_types.idl | 5 +++++ > > > tools/libxl/xl_cmdimpl.c | 14 ++++++++++++++ > > > 5 files changed, 59 insertions(+) > > > > > > diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5 > > > index 069b73f..bf6760f 100644 > > > --- a/docs/man/xl.cfg.pod.5 > > > +++ b/docs/man/xl.cfg.pod.5 > > > @@ -1227,6 +1227,29 @@ you have selected. > > > > > > Assign an XSM security label to the device-model stubdomain. > > > > > > +=item B<device_model_pvdevice="PVDEVICE"> > > > + > > > +Selects which variant of the xen-pvdevice should be used for this > > > +guest. Valid values are: > > > + > > > +=over 4 > > > + > > > +=item B<none> > > > + > > > +The xen-pvdevice should be omitted. This is the default. > > > + > > > +=item B<xenserver> > > > + > > > +The xenserver variant of the xen-pvdevice (device-id=C000) will be > > > +specified, enabling the use of XenServer PV drivers in the guest. > > > + > > > +=back > > > + > > > +This parameter only takes effect when device_model_version=qemu- > xen. > > > +See F<docs/misc/pci-device-reservations.txt> for more information. > > > + > > > +=back > > > + > > > =item B<device_model_args=[ "ARG", "ARG", ...]> > > > > > > Pass additional arbitrary options on the device-model command > > > diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h > > > index 37e4d82..4170861 100644 > > > --- a/tools/libxl/libxl.h > > > +++ b/tools/libxl/libxl.h > > > @@ -82,6 +82,14 @@ > > > #define LIBXL_HAVE_DOMAIN_NODEAFFINITY 1 > > > > > > /* > > > + * LIBXL_HAVE_PVDEVICE indicates that the > libxl_device_model_pvdevice > > > + * field is present in the hvm sections of libxl_domain_build_info. > > > + * This field tells libxl which flavour of xen-pvdevice to enable in > > > + * QEMU. > > > + */ > > > +#define LIBXL_HAVE_PVDEVICE 1 > > > + > > > +/* > > > * libxl ABI compatibility > > > * > > > * The only guarantee which libxl makes regarding ABI compatibility > > > diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c > > > index 7e54c02..2a2665b 100644 > > > --- a/tools/libxl/libxl_dm.c > > > +++ b/tools/libxl/libxl_dm.c > > > @@ -647,6 +647,15 @@ static char ** > > > libxl__build_device_model_args_new(libxl__gc *gc, > > > flexarray_append(dm_args, "-drive"); > > > flexarray_append(dm_args, drive); > > > } > > > + > > > + switch (b_info->u.hvm.device_model_pvdevice) { > > > + case LIBXL_DEVICE_MODEL_PVDEVICE_XENSERVER: > > > + flexarray_append(dm_args, "-device"); > > > + flexarray_append(dm_args, "xen-pvdevice,device-id=0xc000"); > > > + break; > > > + default: > > > + break; > > > + } > > > } > > > flexarray_append(dm_args, NULL); > > > return (char **) flexarray_contents(dm_args); > > > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > > > index d218a2d..7165139 100644 > > > --- a/tools/libxl/libxl_types.idl > > > +++ b/tools/libxl/libxl_types.idl > > > @@ -132,6 +132,10 @@ libxl_vga_interface_type = > > > Enumeration("vga_interface_type", [ > > > (2, "STD"), > > > ], init_val = 0) > > > > > > +libxl_device_model_pvdevice = > Enumeration("device_model_pvdevice", [ > > > + (0, "NONE"), > > > + (1, "XENSERVER"), > > > + ]) > > > # > > > # Complex libxl types > > > # > > > @@ -332,6 +336,7 @@ libxl_domain_build_info = > > > Struct("domain_build_info",[ > > > ("soundhw", string), > > > ("xen_platform_pci", > > > libxl_defbool), > > > ("usbdevice_list", > > > libxl_string_list), > > > + ("device_model_pvdevice", > > > libxl_device_model_pvdevice), > > > ])), > > > ("pv", Struct(None, [("kernel", string), > > > ("slack_memkb", MemKB), > > > diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c > > > index 8a478ba..cfaa54e 100644 > > > --- a/tools/libxl/xl_cmdimpl.c > > > +++ b/tools/libxl/xl_cmdimpl.c > > > @@ -1526,6 +1526,20 @@ skip_vfb: > > > exit (1); > > > > > > } > > > + > > > + if (!xlu_cfg_get_string (config, "device_model_pvdevice", &buf, > > > 0)) > { > > > + libxl_device_model_pvdevice d; > > > + > > > + e = libxl_device_model_pvdevice_from_string(buf, &d); > > > + if (e) { > > > + fprintf(stderr, > > > + "xl: unknown device_model_pvdevice '%s'\n", > > > + buf); > > > + exit(-ERROR_FAIL); > > > + } > > > + > > > + b_info->u.hvm.device_model_pvdevice = d; > > > + } > > > } > > > > > > xlu_cfg_destroy(config); > > > -- > > > 1.7.10.4 > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |