[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 3/3] libxl: add domain config parameter to force start of qemu
On Tue, Mar 22, 2016 at 08:29:23AM +0100, Juergen Gross wrote: > Today the device model (qemu) is started for a pv domain only in case > a device requiring qemu is specified in the domain configuration > (qdisk, vfb, channel). If there is no such device the device model > isn't started and hence it is possible to add such a device to the > domain later. > > Add a domain configuration parameter to specify the device model is > to be started in any case. This will enable adding devices with a > qemu based backend later. .. s/devices/PV devices/ As surely PV guests can't use emulated devices. Or could they? That would be quite interesting in a not kind of fun way. > > While the optimal solution would be to start the device model > automatically when needed this would require some major rework of > libxl at multiple places. But you are not using this now (late start of QEMU), so why this patch? > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > --- > docs/man/xl.cfg.pod.5 | 6 ++++++ > tools/libxl/libxl_create.c | 1 + > tools/libxl/libxl_dm.c | 5 +++++ > tools/libxl/libxl_types.idl | 1 + > tools/libxl/xl_cmdimpl.c | 3 +++ > 5 files changed, 16 insertions(+) > > diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5 > index a4cc1b3..a3611a6 100644 > --- a/docs/man/xl.cfg.pod.5 > +++ b/docs/man/xl.cfg.pod.5 > @@ -1956,6 +1956,12 @@ xen-qemudepriv-domid$domid or xen-qemudepriv-shared or > root. > Please note that running QEMU as non-root causes migration and PCI > passthrough not to work properly. > > +=item B<device_model_always=BOOLEAN> > + > +If true, start the device model for paravirtualized domains even if this > isn't > +required according to the configured devices. This allows to add such devices > +later when the domain is already running. > + > =back > > =head2 Keymaps > diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c > index 0e2b0a0..52a0a2f 100644 > --- a/tools/libxl/libxl_create.c > +++ b/tools/libxl/libxl_create.c > @@ -73,6 +73,7 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, > return ERROR_INVAL; > } > > + libxl_defbool_setdefault(&b_info->device_model_always, false); > libxl_defbool_setdefault(&b_info->device_model_stubdomain, false); > > if (libxl_defbool_val(b_info->device_model_stubdomain) && > diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c > index 361e584..767959d 100644 > --- a/tools/libxl/libxl_dm.c > +++ b/tools/libxl/libxl_dm.c > @@ -2115,6 +2115,11 @@ int libxl__need_xenpv_qemu(libxl__gc *gc, > libxl_domain_config *d_config) > if (libxl__get_domid(gc, &domid)) > goto out; > > + if (libxl_defbool_val(d_config->b_info.device_model_always)) { > + ret = 1; > + goto out; > + } > + > if (d_config->num_vfbs > 0) { > ret = 1; > goto out; > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > index 304aa11..8ff9050 100644 > --- a/tools/libxl/libxl_types.idl > +++ b/tools/libxl/libxl_types.idl > @@ -451,6 +451,7 @@ libxl_domain_build_info = Struct("domain_build_info",[ > ("device_model_ssidref", uint32), > ("device_model_ssid_label", string), > ("device_model_user", string), > + ("device_model_always", libxl_defbool), > > # extra parameters pass directly to qemu, NULL terminated > ("extra", libxl_string_list), > diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c > index a3610fc..0fdca73 100644 > --- a/tools/libxl/xl_cmdimpl.c > +++ b/tools/libxl/xl_cmdimpl.c > @@ -2269,6 +2269,9 @@ skip_usbdev: > } > > /* parse device model arguments, this works for pv, hvm and stubdom */ > + xlu_cfg_get_defbool (config, "device_model_always", > + &b_info->device_model_always, 0); > + > if (!xlu_cfg_get_string (config, "device_model", &buf, 0)) { > fprintf(stderr, > "WARNING: ignoring device_model directive.\n" > -- > 2.6.2 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |