|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 2/5] libxl: add query function for backend support by device model
On 30/03/16 13:05, Juergen Gross wrote:
> Add a function to query whether the device model is supporting a
> specific backend type. The device model is writing the supported
> backend types to Xenstore on startup. The new query function checks
> for the appropriate entry to be present.
>
> As not all versions of qemu are capable to indicate support of
> specific backends the query function is to be called with an indicator
> whether the default return value should be "supported" (in case qemu
> doesn't know set any support information) or "not supported".
>
> Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Has this approach (writing backend capabilities into xenstore) been
agreed on the qemu side? It's significantly different than what's been
done so far wrt qemu feature discovery, right?
I suppose we can just revert this whole series if they end up
disagreeing with this approach, but I think that's something we'd like
to avoid. (Although I suppose that's ultimately the release manager's
call.)
-George
> ---
> tools/libxl/libxl_dm.c | 19 +++++++++++++++++++
> tools/libxl/libxl_internal.h | 5 +++++
> 2 files changed, 24 insertions(+)
>
> diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
> index 0d88c37..7d9abbe 100644
> --- a/tools/libxl/libxl_dm.c
> +++ b/tools/libxl/libxl_dm.c
> @@ -1920,6 +1920,25 @@ out:
> device_model_spawn_outcome(egc, dmss, rc);
> }
>
> +bool libxl__query_qemu_backend(libxl__gc *gc, uint32_t domid,
> + uint32_t backend_id, const char *type, bool
> def)
> +{
> + char *path;
> + char **dir;
> + unsigned int n;
> +
> + path = GCSPRINTF("%s/device-model/%u/backends",
> + libxl__xs_get_dompath(gc, backend_id), domid);
> + dir = libxl__xs_directory(gc, XBT_NULL, path, &n);
> + if (!dir)
> + return def;
> +
> + path = GCSPRINTF("%s/device-model/%u/backends/%s",
> + libxl__xs_get_dompath(gc, backend_id), domid, type);
> + dir = libxl__xs_directory(gc, XBT_NULL, path, &n);
> +
> + return !!dir;
> +}
>
> static void device_model_confirm(libxl__egc *egc, libxl__spawn_state *spawn,
> const char *xsdata)
> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
> index fc7bdab..c06ffc0 100644
> --- a/tools/libxl/libxl_internal.h
> +++ b/tools/libxl/libxl_internal.h
> @@ -1617,6 +1617,11 @@ _hidden const char
> *libxl__domain_device_model(libxl__gc *gc,
> const libxl_domain_build_info *info);
> _hidden int libxl__need_xenpv_qemu(libxl__gc *gc,
> libxl_domain_config *d_config);
> +_hidden bool libxl__query_qemu_backend(libxl__gc *gc,
> + uint32_t domid,
> + uint32_t backend_id,
> + const char *type,
> + bool def);
>
> /*
> * This function will fix reserved device memory conflict
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |