All of lore.kernel.org
 help / color / mirror / Atom feed
From: George Dunlap <george.dunlap@citrix.com>
To: Chunyan Liu <cyliu@suse.com>, xen-devel@lists.xen.org
Cc: jgross@suse.com, wei.liu2@citrix.com, ian.campbell@citrix.com,
	george.dunlap@eu.citrix.com, Ian.Jackson@eu.citrix.com,
	jfehlig@suse.com, Simon Cao <caobosimon@gmail.com>
Subject: Re: [PATCH V7 7/7] domcreate: support pvusb in configuration file
Date: Wed, 7 Oct 2015 16:06:32 +0100	[thread overview]
Message-ID: <561534F8.1090603@citrix.com> (raw)
In-Reply-To: <1443147102-6471-8-git-send-email-cyliu@suse.com>

On 25/09/15 03:11, Chunyan Liu wrote:
> Add code to support pvusb in domain config file. One could specify
> usbctrl and usb in domain's configuration file and create domain,
> then usb controllers will be created and usb device would be attached
> to guest automatically.
> 
> One could specify usb controllers and usb devices in config file
> like this:
> usbctrl=['version=2,ports=4', 'version=1, ports=4', ]
> usbdev=['2.1,controller=0,port=1', ]

I realize you're patterning this after pci, but this syntax assumes that
you're always going to want to pass in a host device, which I think we
don't want to do.  In particular, we want to leave the door open in the
future to different ways of being able to specify a particular device
based on the pci + usb topology which will be invariant over reboots.

So I think all parameters should have a name.

Two questions; first, the name of the parameter specifying hostbus and
hostaddr.

1. "hostspec=", which will automatically use 2.1 for bus.addr, and could
in the future be extended to use 2-1 for bus-port,  xxxx:yyyy for
vendorid:productid, and potentially the udev "pci + usb topology" thing.

2. hostbus=x, hostaddr=y.  This is what qemu and libvirt do.  It also
leaves open the door for adding double-checks or other constraints:
e.g., hostbus=x, hostaddr=y, hostvid=m, hostpid=n would only assign x.y
if vendorid:productid match m:n

I'd go for #2.

We should also have a "type" field, of which one option should be
"hostdev". I think it's probably OK to assume "hostdev" if we have
hostdev-only parameters.

One more comment...

>  /* First layer; wraps libxl__spawn_spawn. */
> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
> index 66d8f8c..c64e445 100644
> --- a/tools/libxl/xl_cmdimpl.c
> +++ b/tools/libxl/xl_cmdimpl.c
> @@ -1253,6 +1253,79 @@ static void parse_vnuma_config(const XLU_Config *config,
>      free(vcpu_parsed);
>  }
>  
> +static void parse_usbctrl_config(libxl_device_usbctrl *usbctrl,
> +                                 const char *buf)
> +{
> +    char *buf2 = strdup(buf);
> +    char *p, *p2;
> +
> +    p = strtok(buf2, ",");
> +    if (!p)
> +        goto out;
> +    do {
> +        while (*p == ' ')
> +            p++;
> +        if ((p2 = strchr(p, '=')) == NULL)
> +            break;
> +        *p2 = '\0';
> +        if (!strcmp(p, "type")) {
> +            if (!strcmp(p2 + 1, "pv")) {

I'd probably do "*p2='\0'; p2++" so that then later you can just use p2
as a normal string, rather than p2+1 as you do here.

But what I'd *really* do is copy the parse_nic_config() code, and use
MATCH_STRING("type", ...).

And as Ian said, I'd move these parsing functions into the previous
patch, and then use them to parse the command-line arguments (again
modelled after main_networkattach()).

(I'm not confident in the multidev stuff enough to give a proper review.)

 -George

      reply	other threads:[~2015-10-07 15:06 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-25  2:11 [PATCH V7 0/7] xen pvusb toolstack work Chunyan Liu
2015-09-25  2:11 ` [PATCH V7 1/7] libxl: export some functions for pvusb use Chunyan Liu
2015-09-25  2:11 ` [PATCH V7 2/7] libxl_read_file_contents: add new entry to read sysfs file Chunyan Liu
2015-09-30 11:22   ` George Dunlap
2015-10-02 13:25   ` Ian Campbell
2015-09-25  2:11 ` [PATCH V7 3/7] libxl: add pvusb API Chunyan Liu
2015-09-30 17:55   ` George Dunlap
2015-10-02 13:31     ` Ian Campbell
2015-10-09  8:12     ` Chun Yan Liu
2015-10-12  7:19     ` Chun Yan Liu
2015-10-12 13:46       ` George Dunlap
2015-10-13  1:46         ` Chun Yan Liu
2015-10-13 13:15           ` George Dunlap
2015-10-13 13:19             ` George Dunlap
2015-10-13 13:30             ` Ian Campbell
2015-10-14  2:29             ` Chun Yan Liu
2015-10-08 14:41   ` Ian Jackson
2015-10-08 14:54     ` Ian Campbell
2015-10-08 15:16       ` Ian Jackson
2015-10-12  7:00     ` Chun Yan Liu
2015-09-25  2:11 ` [PATCH V7 4/7] libxl: add libxl_device_usb_assignable_list API Chunyan Liu
2015-10-01 11:32   ` George Dunlap
2015-09-25  2:11 ` [PATCH V7 5/7] xl: add pvusb commands Chunyan Liu
2015-10-01 17:02   ` George Dunlap
2015-10-02 13:35     ` Ian Campbell
2015-10-02 15:17       ` George Dunlap
2015-10-02 15:29         ` Ian Campbell
2015-10-09  7:15     ` Chun Yan Liu
2015-09-25  2:11 ` [PATCH V7 6/7] xl: add usb-assignable-list command Chunyan Liu
2015-10-06 16:55   ` George Dunlap
2015-10-07  8:40     ` Ian Campbell
2015-10-07  9:55       ` Juergen Gross
2015-10-07 10:08         ` Ian Campbell
2015-10-07 10:10       ` George Dunlap
2015-10-07 10:15         ` George Dunlap
2015-10-07 10:35         ` Christiane Groß
2015-10-07 11:09         ` Ian Campbell
2015-10-07 11:20           ` George Dunlap
2015-10-07 11:25             ` Juergen Gross
2015-10-07 11:32               ` George Dunlap
2015-10-07 11:37               ` Ian Campbell
2015-10-07 11:39                 ` Juergen Gross
2015-10-07 11:43                 ` Ian Campbell
2015-10-07 11:39               ` Ian Campbell
2015-10-07 11:49                 ` Juergen Gross
2015-10-07 11:55                   ` Ian Campbell
2015-10-07 12:05                     ` Juergen Gross
2015-10-07 12:51                       ` Ian Campbell
2015-10-07 13:21                       ` George Dunlap
2015-10-07 13:54                         ` Juergen Gross
2015-10-07 14:05                           ` Ian Campbell
2015-10-07 14:26                             ` Juergen Gross
2015-10-07 14:35                               ` George Dunlap
2015-10-07 14:47                                 ` Juergen Gross
2015-10-07 15:03                                   ` George Dunlap
2015-10-07 15:13                                     ` Juergen Gross
2015-10-07 14:10                           ` George Dunlap
2015-09-25  2:11 ` [PATCH V7 7/7] domcreate: support pvusb in configuration file Chunyan Liu
2015-10-07 15:06   ` George Dunlap [this message]

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=561534F8.1090603@citrix.com \
    --to=george.dunlap@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=caobosimon@gmail.com \
    --cc=cyliu@suse.com \
    --cc=george.dunlap@eu.citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=jfehlig@suse.com \
    --cc=jgross@suse.com \
    --cc=wei.liu2@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.