|
[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 |