[libvirt] [PATCH 1/6] extend usb controller model to support xen pvusb

Chun Yan Liu cyliu at suse.com
Tue Jun 14 06:57:31 UTC 2016



>>> On 6/14/2016 at 01:27 PM, in message <575F95C4.4080201 at suse.com>, Juergen Gross
<jgross at suse.com> wrote: 
> On 14/06/16 07:02, Jim Fehlig wrote: 
> > On 06/12/2016 10:53 AM, Chunyan Liu wrote: 
> >> According to libxl implementation, it supports pvusb 
> >> controller of version 1.1 and version 2.0, and it 
> >> supports two types of backend, 'pvusb' (dom0 backend) 
> >> and 'qusb' (qemu backend). 
> >  
> > IIUC, the pvusb backend has not gained any traction in the kernel and will  
> not 
> > be accepted upstream. Adding Juergen to confirm. If that is the case, I  
> think it 
> > should be dropped. 
>  
> Correct. Upstream Linux doesn't have a pvusb backend and it seems 
> unlikely it will have one.

OK. If that will never happen, I will drop pvusb1 and pvusb2 models. It's easy.

- Chunyan 
>  
> You are talking about dropping it from libvirt, right? 
>  
> >  
> >> 
> >> To match libxl support, extend usb controller schema 
> >> to support more models: pvusb1 (pvusb, version 1.1), 
> >> pvusb2 (pvusb, version 2.0), qusb1 (qusb, version 1.1) 
> >> and 'qusb2' (qusb version 2.0). 
> >> 
> >> Signed-off-by: Chunyan Liu <cyliu at suse.com> 
> >> --- 
> >>  docs/formatdomain.html.in     | 6 +++++- 
> >>  docs/schemas/domaincommon.rng | 4 ++++ 
> >>  src/conf/domain_conf.c        | 4 ++++ 
> >>  src/conf/domain_conf.h        | 4 ++++ 
> >>  src/qemu/qemu_command.c       | 4 ++++ 
> >>  5 files changed, 21 insertions(+), 1 deletion(-) 
> >> 
> >> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in 
> >> index fb3ec5e..1492915 100644 
> >> --- a/docs/formatdomain.html.in 
> >> +++ b/docs/formatdomain.html.in 
> >> @@ -3063,7 +3063,11 @@ 
> >>          <dd>A <code>usb</code> controller has an optional attribute 
> >>          <code>model</code>, which is one of "piix3-uhci", "piix4-uhci", 
> >>          "ehci", "ich9-ehci1", "ich9-uhci1", "ich9-uhci2", "ich9-uhci3", 
> >> -        "vt82c686b-uhci", "pci-ohci" or "nec-xhci".  Additionally, 
> >> +        "vt82c686b-uhci", "pci-ohci", "nec-xhci", "pvusb1" (xen pvusb 
> >> +        with dom0 backend, version 1.1), "pvusb2" (xen pvusb with dom0 
> >> +        backend, version 2.0), "qusb1" (xen pvusb with qemu backend, 
> >> +        version 1.1) or "qusb2" (xen pvusb with qemu backend, version  
> 2.0). 
> >> +        Additionally, 
> >>           <span class="since">since 0.10.0</span>, if the USB bus needs to 
> >>           be explicitly disabled for the guest, <code>model='none'</code> 
> >>           may be used.  <span class="since">Since 1.0.5</span>, no default 
> >> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng 
> >> index 02078d7..5afa15d 100644 
> >> --- a/docs/schemas/domaincommon.rng 
> >> +++ b/docs/schemas/domaincommon.rng 
> >> @@ -1768,6 +1768,10 @@ 
> >>                    <value>pci-ohci</value> 
> >>                    <value>nec-xhci</value> 
> >>                    <value>none</value> 
> >> +                  <value>pvusb1</value> 
> >> +                  <value>pvusb2</value> 
> >> +                  <value>qusb1</value> 
> >> +                  <value>qusb2</value> 
> >>                  </choice> 
> >>                </attribute> 
> >>              </optional> 
> >> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c 
> >> index 10e61da..ff3285f 100644 
> >> --- a/src/conf/domain_conf.c 
> >> +++ b/src/conf/domain_conf.c 
> >> @@ -356,6 +356,10 @@ VIR_ENUM_IMPL(virDomainControllerModelUSB,  
> VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST, 
> >>                "vt82c686b-uhci", 
> >>                "pci-ohci", 
> >>                "nec-xhci", 
> >> +              "pvusb1", 
> >> +              "pvusb2", 
> >> +              "qusb1", 
> >> +              "qusb2", 
> >>                "none") 
> >>   
> >>  VIR_ENUM_IMPL(virDomainFS, VIR_DOMAIN_FS_TYPE_LAST, 
> >> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h 
> >> index 3792562..6733b2d 100644 
> >> --- a/src/conf/domain_conf.h 
> >> +++ b/src/conf/domain_conf.h 
> >> @@ -675,6 +675,10 @@ typedef enum { 
> >>      VIR_DOMAIN_CONTROLLER_MODEL_USB_VT82C686B_UHCI, 
> >>      VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI, 
> >>      VIR_DOMAIN_CONTROLLER_MODEL_USB_NEC_XHCI, 
> >> +    VIR_DOMAIN_CONTROLLER_MODEL_USB_PVUSB1, 
> >> +    VIR_DOMAIN_CONTROLLER_MODEL_USB_PVUSB2, 
> >> +    VIR_DOMAIN_CONTROLLER_MODEL_USB_QUSB1, 
> >> +    VIR_DOMAIN_CONTROLLER_MODEL_USB_QUSB2, 
> >>      VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE, 
> >>   
> >>      VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST 
> >> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c 
> >> index 490260f..5c3de83 100644 
> >> --- a/src/qemu/qemu_command.c 
> >> +++ b/src/qemu/qemu_command.c 
> >> @@ -133,6 +133,10 @@ VIR_ENUM_IMPL(qemuControllerModelUSB,  
> VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST, 
> >>                "vt82c686b-usb-uhci", 
> >>                "pci-ohci", 
> >>                "nec-usb-xhci", 
> >> +              "pvusb1", 
> >> +              "pvusb2", 
> >> +              "qusb1", 
> >> +              "qusb2", 
> >>                "none"); 
> >  
> > It seems odd that these need to be added to qemu_command.c. But sadly, I'm  
> not 
> > familiar with how USB controllers are handled in the qemu driver to give  
> much 
> > useful feedback at this time. I can certainly start investigating that, but  
> in 
> > the meantime I've added Laine to the cc list. He has done quite a bit of  
> work in 
> > this area in the past and might have a few minutes free to comment on these  
> changes. 
>  
> qusb (and pvusb, too) don't require any qemu interaction besides what 
> is already done in libxl. There are no qmp commands or whatever 
> involved, all communication is done via Xenstore. 
>  
> > I know you will be leaving soon to pursue other opportunities (/me sheds a  
> tear 
> > since one of the few libxl driver contributors will be departing), but I  
> can 
> > continue this work if it is not merged before your departure. Thanks a lot 
> > Chunyan for all your work on Xen-related matters in libvirt over the years! 
>  
> Yeah, thanks especially for your pvusb work! 
>  
>  
> Juergen 
>  





More information about the libvir-list mailing list