All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roger Pau Monne <roger.pau@citrix.com>
To: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [PATCH v5 09/10] libxl: call hotplug scripts for nic devices from libxl
Date: Mon, 11 Jun 2012 15:34:40 +0100	[thread overview]
Message-ID: <4FD60200.2030802@citrix.com> (raw)
In-Reply-To: <20432.48963.214910.33148@mariner.uk.xensource.com>

Ian Jackson wrote:
> 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.


What do you think about having a function in the non-portable code that 
tells you the number of times you have to call 
libxl__get_hotplug_script_info? So we can do something like:

aodev->total_exec = libxl__get_hotplug_num_exec(...)

It's not pretty, but at least will allow us to abstract this code from 
Linux/NetBSD, since what I basically do now with NetBSD is return 0 on 
the second call, thus avoiding executing anything. But we still have the 
ugly Linux part of the code in libxl_device.

>> +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.

  reply	other threads:[~2012-06-11 14:34 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-14 12:21 [PATCH v6 00/13] execute hotplug scripts from libxl Roger Pau Monne
2012-05-30 13:07 ` [PATCH v5 01/10] " Roger Pau Monne
2012-05-30 13:07   ` [PATCH v5 01/10] libxl: change libxl__ao_device_remove to libxl__ao_device Roger Pau Monne
2012-06-07 10:53     ` Ian Jackson
2012-06-11 10:09       ` Roger Pau Monne
2012-05-30 13:07   ` [PATCH v5 02/10] libxl: move device model creation prototypes Roger Pau Monne
2012-05-30 13:07   ` [PATCH v5 03/10] libxl: convert libxl_domain_destroy to an async op Roger Pau Monne
2012-05-30 13:07   ` [PATCH v5 04/10] libxl: convert libxl_device_disk_add to an asyn op Roger Pau Monne
2012-06-07 11:38     ` Ian Jackson
2012-06-11 12:33       ` Roger Pau Monne
2012-06-07 14:20     ` Ian Jackson
2012-06-07 16:42       ` Roger Pau Monne
2012-06-07 16:47         ` Ian Jackson
2012-06-07 14:25     ` Ian Jackson
2012-06-07 16:55       ` Roger Pau Monne
2012-06-07 17:05         ` Ian Jackson
2012-06-07 17:07           ` Roger Pau Monne
2012-06-07 17:11             ` Ian Jackson
2012-05-30 13:07   ` [PATCH v5 05/10] libxl: convert libxl_device_nic_add to an async operation Roger Pau Monne
2012-06-07 14:26     ` Ian Jackson
2012-05-30 13:07   ` [PATCH v5 06/10] libxl: add option to choose who executes hotplug scripts Roger Pau Monne
2012-05-30 13:07   ` [PATCH v5 07/10] libxl: set nic type to VIF by default Roger Pau Monne
2012-05-30 13:07   ` [PATCH v5 08/10] libxl: call hotplug scripts for disk devices from libxl Roger Pau Monne
2012-06-07 14:40     ` Ian Jackson
2012-05-30 13:07   ` [PATCH v5 09/10] libxl: call hotplug scripts for nic " Roger Pau Monne
2012-06-07 14:48     ` Ian Jackson
2012-06-11 14:34       ` Roger Pau Monne [this message]
2012-05-30 13:07   ` [PATCH v5 10/10] libxl: use libxl__xs_path_cleanup on device_destroy Roger Pau Monne
2012-06-07 14:50     ` Ian Jackson
2012-06-14 12:21 ` [PATCH v6 01/13] libxl: change ao_device_remove to ao_device Roger Pau Monne
2012-06-15 16:45   ` Ian Jackson
2012-06-18  8:58     ` Roger Pau Monne
2012-06-14 12:21 ` [PATCH v6 02/13] libxl: move device model creation prototypes Roger Pau Monne
2012-06-14 12:21 ` [PATCH v6 03/13] libxl: convert libxl_domain_destroy to an async op Roger Pau Monne
2012-06-21 17:34   ` Ian Jackson
2012-06-14 12:21 ` [PATCH v6 04/13] libxl: move bootloader data strucutres and prototypes Roger Pau Monne
2012-06-21 17:35   ` Ian Jackson
2012-06-14 12:21 ` [PATCH v6 05/13] libxl: convert libxl__device_disk_local_attach to an async op Roger Pau Monne
2012-06-21 17:58   ` Ian Jackson
2012-06-26 10:27     ` Roger Pau Monne
2012-07-03 15:14   ` Ian Campbell
2012-06-14 12:21 ` [PATCH v6 06/13] libxl: convert libxl_device_disk_add " Roger Pau Monne
2012-06-22 11:33   ` Ian Jackson
2012-06-26 15:04     ` Roger Pau Monne
2012-06-26 15:14       ` Roger Pau Monne
2012-06-26 17:19       ` Ian Jackson
2012-06-27 17:35         ` Roger Pau Monne
2012-06-14 12:21 ` [PATCH v6 07/13] libxl: convert libxl_device_nic_add to an async operation Roger Pau Monne
2012-06-22 11:37   ` Ian Jackson
2012-06-22 12:01     ` Ian Campbell
2012-06-26 16:17     ` Roger Pau Monne
2012-06-26 17:22       ` Ian Jackson
2012-06-28  9:53         ` Roger Pau Monne
2012-06-28  9:56           ` Ian Campbell
2012-06-28 13:30             ` Roger Pau Monne
2012-06-14 12:21 ` [PATCH v6 08/13] libxl: add option to choose who executes hotplug scripts Roger Pau Monne
2012-07-03  8:33   ` Ian Campbell
2012-06-14 12:21 ` [PATCH v6 09/13] libxl: rename _IOEMU nic type to VIF_IOEMU Roger Pau Monne
2012-06-22 11:39   ` Ian Jackson
2012-06-14 12:21 ` [PATCH v6 10/13] libxl: set nic type to VIF by default Roger Pau Monne
2012-06-22 11:40   ` Ian Jackson
2012-06-26 16:20     ` Roger Pau Monne
2012-06-26 16:58       ` Pasi Kärkkäinen
2012-06-27  8:50         ` Ian Campbell
2012-06-28  9:22           ` Roger Pau Monne
2012-06-28  9:26             ` Ian Campbell
2012-06-28  9:41               ` Roger Pau Monne
2012-06-28  9:54                 ` Ian Campbell
2012-06-28 10:07                   ` Roger Pau Monne
2012-06-28 10:10                     ` Ian Campbell
2012-06-28 13:29                       ` Roger Pau Monne
2012-06-28  9:28             ` Roger Pau Monne
2012-06-26 17:22       ` Ian Jackson
2012-06-14 12:21 ` [PATCH v6 11/13] libxl: use libxl__xs_path_cleanup on device_destroy Roger Pau Monne
2012-06-14 12:21 ` [PATCH v6 12/13] libxl: call hotplug scripts for disk devices from libxl Roger Pau Monne
2012-06-22 11:43   ` Ian Jackson
2012-06-14 12:21 ` [PATCH v6 13/13] libxl: call hotplug scripts for nic " Roger Pau Monne
2012-06-22 11:47   ` [PATCH v5 09/10] libxl: call hotplug scripts for nic devices from libxl [and 1 more messages] Ian Jackson
2012-06-26  8:57     ` Roger Pau Monne
2012-07-03  8:27 ` [PATCH v6 00/13] execute hotplug scripts from libxl Ian Campbell
2012-07-03  9:19 ` Ian Campbell
2012-07-03  9:26   ` Ian Campbell
2012-07-03 12:54   ` Ian Jackson
2012-07-03 13:04     ` Ian Campbell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FD60200.2030802@citrix.com \
    --to=roger.pau@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.