cc-ing engine-devel.

Oved

----- Original Message -----
> From: "Hans de Goede" <[email protected]>
> To: "Oved Ourfalli" <[email protected]>
> Cc: "Dave Allan" <[email protected]>, "Jiri Denemark" <[email protected]>, 
> "Michal Privoznik"
> <[email protected]>, "Itamar Heim" <[email protected]>, "Igor Lvovsky" 
> <[email protected]>, "Eli Mesika"
> <[email protected]>, "Dan Kenigsberg" <[email protected]>, "Andrew Cathrow" 
> <[email protected]>
> Sent: Tuesday, May 8, 2012 10:48:32 AM
> Subject: Re: Supporting native USB in oVirt
> 
> Hi,
> 
> On 05/08/2012 09:19 AM, Oved Ourfalli wrote:
> > Hi,
> >
> > We are now working on adding the support for native USB devices on
> > oVirt.
> > As far as we understand, in order to use it we need to pass the
> > following devices with the following restrictions (according to
> > the EHCI spec):
> > 1. EHCI USB controller - with the highest function number, #7.
> >
> > devices='{type:controller,device:usb,model:ich9-ehci1,address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x7}}'
> >
> > 2. 3 UHCI USB controllers, on the same bus and PCI slot as the EHCI
> > controller. Set the multifunction bit to on, on the controller
> > with function #0.
> >
> > devices='{type:controller,device:usb,model:ich9-uhci1,master:{startport:0},address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x0,multifunction:on}}'
> > devices='{type:controller,device:usb,model:ich9-uhci2,master:{startport:2},address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x1}}'
> > devices='{type:controller,device:usb,model:ich9-uhci3,master:{startport:4},address:{type:pci,domain:0x0000,bus:0x00,slot:0x04,function:0x2}}'
> >
> > 3. USB redirect devices (according to the needed number of USB
> > slots, maximum 6) on the same bus, each one having a different
> > port.
> >
> > devices='{type:redir,device:spicevmc,bus:usb,address:{type:usb,bus:0,port:1}}'
> > devices='{type:redir,device:spicevmc,bus:usb,address:{type:usb,bus:0,port:2}}'
> > devices='{type:redir,device:spicevmc,bus:usb,address:{type:usb,bus:0,port:3}}'
> > devices='{type:redir,device:spicevmc,bus:usb,address:{type:usb,bus:0,port:4}}'
> > devices='{type:redir,device:spicevmc,bus:usb,address:{type:usb,bus:0,port:5}}'
> > devices='{type:redir,device:spicevmc,bus:usb,address:{type:usb,bus:0,port:6}}'
> >
> 
> To the best of my knowledge, the above is all correct.
> 
> > 4. If we want more than 6 USB slots, we need to have 2 EHCI
> > controllers, and 6 UHCI controllers, that are consistent with the
> > restrictions above, on different bus.
> > (we need them to be on different bus, since the connection between
> > the redirect devices and the controllers is the bus).
> 
> Correct, note that this may change in the future. Specifically I'm
> thinking about
> adding support for USB-2 hubs, and then have libvirt automatically
> add new
> redir-devices when all but one are in use. This is all just an idea
> at the moment,
> so don't count on it, I just wanted you to know that we are thinking
> about making
> it easier to make the number of devices dynamic in the future. So for
> now you
> could consider simply limiting redirection to max 6 devices.
> 
> > According to Hans (cc-ed), if we let libvirt pick its own
> > addresses, it will put each controller of the composite USB
> > controller device on its own pci slot, which is a violation of the
> > EHCI spec.
> 
> Correct.
> 
> > The problem is that the oVirt engine is not aware of addresses. They aren't 
> > managed by it.
> > They are chosen automatically by libvirt, returned to the engine, and they 
> > saved in the engine database in order to provide the ability to retain the 
> > same PCI addresses after VM restart.
> >
> >So, in order to support the EHCI spec, oVirt will have to be aware of 
> >addresses, manage them (allocate them, check for collisions, update on every 
> >libvirt change regarding that, etc...). Obviously, it doesn't feel right, 
> >and in fact it is also not feasible, to manage these addresses in the oVirt 
> >domain.
> >
> > Is all the above correct, or are we missing something?
> > If so, can you address the issues above, and provide the ability to manage 
> > these devices in libvirt?

> Regards,
> 
> Hans
> 
_______________________________________________
Engine-devel mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-devel

Reply via email to