[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 15:53, Wei Liu wrote: > On Wed, Mar 30, 2016 at 02:05:55PM +0200, 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> > > The code itself looks straightforward enough. > > But note that this is a new protocol that needs to be supported > essentially forever. I've CC QEMU maintainers for their input. Okay, I'll send the qemu patch now. > This also means even if we get this in for 4.7 we can't essentially > benefit from it until this protocol is implemented in upstream QEMU. At > this point I don't think I would take this particular patch for 4.7. > > (I haven't checked if the rest depends on this one though) George asked me to add some kind of feature test (qusb support by qemu). So I added it and yes, patch 3 depends on this one. Juergen > > Wei. > >> --- >> 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 >> -- >> 2.6.2 >> > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |