|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 09/10] libxl: call hotplug scripts for nic devices from libxl
Roger Pau Monne writes ("[PATCH v5 09/10] libxl: call hotplug scripts for nic
devices from libxl"):
> Since most of the needed work is already done in previous patches,
> this patch only contains the necessary code to call hotplug scripts
> for nic devices, that should be called when the device is added or
> removed from a guest.
> @@ -1894,10 +1897,19 @@ _hidden void libxl__initiate_device_remove(libxl__egc
> *egc,
> * < 0: Error
> * 0: No need to execute hotplug script
> * 1: Execute hotplug script
> + *
> + * The last parameter, "num_exec" refeers to the number of times hotplug
> + * scripts have been called for this device. This is currently used for
> + * IOEMU nic interfaces on Linux, since we need to call hotplug scripts twice
> + * for the same device, the first one to add the vif interface, and the
> second
> + * time to add the tap interface, so:
> + * num_exec == 0: execute hotplug for vif interface.
> + * num_exec == 1: execute hotplug for the associated tap interface.
> */
I think you should add:
* The main body of libxl will, for each device, keep calling
* libxl__get_hotplug_script_info, with incrementing values of
* num_exec, and executing the resulting script accordingly,
* until libxl__get_hotplug_script_info returns <=0.
Or
* The main body of libxl will call libxl__get_hotplug_script_info
* with exactly the stated values of num_exec, above. For device
* types not mentioned the main body calls it once with
* num_exec==0.
Personally I'm inclined think the knowledge that nics need two
invocations while disks need only one should be confined to the
non-portable Linux code. Or do you think different platforms will
always do this the same way ? It seems a bit odd to have the
information about num_exec spread about like this. So I would prefer
the former comment (and the corresponding change to the code).
That also avoids a nic-specific section in the main body of libxl's
hotplug script machinery.
> +int libxl__nic_type(libxl__gc *gc, libxl__device *dev, libxl_nic_type
> *nictype)
> +{
...
> + }
> +
> +out:
> + return rc;
> +}
> +
As a matter of good practice I think you should say
rc = 0;
just before out, on the success path, and not rely on it having
happened to be set to 0 by the previous successful call.
Thanks,
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |