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