[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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.