[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 01/13] libxl: add generic function to add device



On Wed, Sep 6, 2017 at 12:36 PM, Wei Liu <wei.liu2@xxxxxxxxxx> wrote:
> On Tue, Sep 05, 2017 at 07:44:34PM +0300, Oleksandr Grytsov wrote:
>> On Tue, Sep 5, 2017 at 2:47 PM, Wei Liu <wei.liu2@xxxxxxxxxx> wrote:
>> > On Tue, Jul 18, 2017 at 05:25:18PM +0300, Oleksandr Grytsov wrote:
>> >> From: Oleksandr Grytsov <oleksandr_grytsov@xxxxxxxx>
>> >>
>> >> Add libxl__device_add to simple write XenStore device conifg
>> >> and libxl__device_add_async to update domain configuration
>> >> and write XenStore device config asynchroniously.
>> >> Almost all devices have similar libxl__device_xxxx_add function.
>> >> This generic functions implement same functionality but
>> >> using the device handling framework. Th device specific
>> >> part such as setting xen store configurationis moved
>> >> to set_xenstore_config callback of the device framework.
>> >>
>> >
>> > The two add functions look correct.
>> >
>> > Some comments below.
>> >
>> >> Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@xxxxxxxx>
>> >> ---
>> >>  tools/libxl/libxl_create.c   |   3 +
>> >>  tools/libxl/libxl_device.c   | 198 
>> >> +++++++++++++++++++++++++++++++++++++++++++
>> >>  tools/libxl/libxl_disk.c     |   2 +
>> >>  tools/libxl/libxl_internal.h |  36 ++++++++
>> >>  tools/libxl/libxl_nic.c      |   2 +
>> >>  tools/libxl/libxl_pci.c      |   2 +
>> >>  tools/libxl/libxl_usb.c      |   6 ++
>> >>  tools/libxl/libxl_vtpm.c     |   2 +
>> >>  8 files changed, 251 insertions(+)
>> >>
>> >> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
>> >> index bffbc45..b2163cd 100644
>> >> --- a/tools/libxl/libxl_create.c
>> >> +++ b/tools/libxl/libxl_create.c
>> >> @@ -1430,6 +1430,9 @@ out:
>> >>
>> >>  #define libxl_device_dtdev_list NULL
>> >>  #define libxl_device_dtdev_compare NULL
>> >> +#define libxl__device_from_dtdev NULL
>> >> +#define libxl__device_dtdev_setdefault NULL
>> >> +#define libxl__device_dtdev_update_devid NULL
>> >>  static DEFINE_DEVICE_TYPE_STRUCT(dtdev);
>> >>
>> >>  const struct libxl_device_type *device_type_tbl[] = {
>> >> diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
>> >> index 00356af..07165f0 100644
>> >> --- a/tools/libxl/libxl_device.c
>> >> +++ b/tools/libxl/libxl_device.c
>> >> @@ -1793,6 +1793,204 @@ out:
>> >>      return AO_CREATE_FAIL(rc);
>> >>  }
>> >>
>> >> +static void device_add_domain_config(libxl__gc *gc,
>> >> +                                     libxl_domain_config *d_config,
>> >> +                                     const struct libxl_device_type *dt,
>> >> +                                     void *type)
>> >> +{
>> >> +    int *num_dev;
>> >> +    int i;
>> >
>> > unsigned int please.
>>
>> For "i" counter only or for num_dev as well?
>> For "i" is ok but num_dev better to keep int.
>>
>
> For i only.
>
>> >>   * mode: C
>> >> diff --git a/tools/libxl/libxl_disk.c b/tools/libxl/libxl_disk.c
>> >> index 63de75c..f2f3635 100644
>> >> --- a/tools/libxl/libxl_disk.c
>> >> +++ b/tools/libxl/libxl_disk.c
>> >> @@ -1244,6 +1244,8 @@ static int libxl_device_disk_dm_needed(void *e, 
>> >> unsigned domid)
>> >>             elem->backend_domid == domid;
>> >>  }
>> >>
>> >> +#define libxl__device_disk_update_devid NULL
>> >> +
>> >
>> > Is this correct for disk (and other device types as well)?
>>
>> What exactly is correct? libxl__device_disk_update_devid NULL or
>> libxl__device_add_async function?
>>
>
> Defining all the update_devid functions to be NULL. They should be
> defined with the macros now, right?
>
> I notice in later patches they are changed, so I'm not too fuss either
> way. If you want to keep them to be defined as  NULL please say so in
> commit message.
>
>> >
>> > Since you've defined LIBXL_DEFINE_UPDATE_DEVID, you should be able to
>> > use that immediately?
>>
>> Actually disk doesn't call update dev ID. So assigning it to NULL I
>> guess is ok here.
>>
>
> Yes. I think so. Please consider other device types then.

Ok, I will use the macro in every device which need update devid in this patch.
Also I will call this function in add device function.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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