4 messages in com.xensource.lists.xen-develRe: [Xen-devel] USB (virtualiation?) ...
FromSent OnAttachments
Emre Erenoglu08 Mar 2007 09:15 
Mark Williamson10 Mar 2007 11:23 
Emre Erenoglu10 Mar 2007 16:31 
Mark Williamson10 Mar 2007 17:16 
Subject:Re: [Xen-devel] USB (virtualiation?) in PV and HVM
From:Mark Williamson (mark@cl.cam.ac.uk)
Date:03/10/2007 05:16:14 PM
List:com.xensource.lists.xen-devel

Thank you very much for your answer. I'm not sure if it was you who wrote it in the mailing list (i lost it again), but nevertheless, I found the exact document that I was looking for. In fact, it looks like an original users manual for Xen 3.0, but might be outdated. Here's the address:

http://www.cl.cam.ac.uk/research/srg/netos/xen/readmes/user/user.html#SECTI ON04344000000000000000

This section, which is about USB Low Speed Physical Devices" seemed OK for me. I still didn't use it but i guess I'll try tomorrow.

Please consider playing with this stuff experimental and therefore possibly slightly risky. Definitely don't try it on production boxes, since people previously don't seem to have had good luck with it. Nonetheless it would be nice to have feedback from more people about what its current state is.

The emulation of USB HID devices works fine; the passthrough of host USB devices is the case that I've heard of significant problems with. It would be interesting to see what results you come up with. Henning Sprang tried this fairly recently and found it unreliable and had performance issues; I don't recall there being any problems that couldn't be reversed by switching off the USB passthrough.

You might want to search the list archives (probably xen-users) for his account. Worth noting that e.g. USB 2.0 is not necessarily tested or supported by this code.

I'm successfully using USB Mass Storage devices showing them as hard disks to PV and HVM guests, so it's no problem.

Cool.

Nevertheless, I would like to do it the USB way, i.e. plug-and-play, and my ultimate target is to be able to use stuff like Webcam etc. for the DomUs.

Mmmm. I'd be surprised if that would work well with the current implementation given it doesn't seem to get much testing (I'm not sure anyone's tried though, so I could be wrong).

Webcam passthrough worked with the Xen-2.0 era USB passthrough code, but isn't currently available.

Mark, could you please also comment on the availability of PV drivers for HVM domains? i.e., HDD controller as the disk i/o (ioemu) in hvm domains seems to be a bit slow.

PV drivers for Linux HVM guests are freely available - you should be able to compile them and install them in the guest for improved performance. For Windows I think you currently need to be using one of XenSource's products (including XenExpress which is a free evaluation product from XenSource). I suspect other alternatives for PV on Windows may become available in the future.

Cheers, Mark

Good night and Best regards,

On 3/10/07, Mark Williamson <mark@cl.cam.ac.uk> wrote:

Another question and another pardon for getting your valuable development time.

I want to assign specific USB ports to Specific DomU's in my Xen Setup. Am I able to do it in: - HVM domains (i.e. Windows)?

This sort-of works; there is a syntax for controlling USB passthrough to HVM domUs in the config file format. However, I'm not sure anybody uses this; the one or two reports I've recently seen reported significant problems with this mode of operation.

You could test how it works for you, but please treat it with caution. I'm not sure it's "officially" supported as a working configuration at all.

- in PV domains (i.e. linux running a xen domu kernel)?

This is not supported at the moment; there were patches for paravirtualised USB available at one stage but they certainly wouldn't work on modern Xen releases without some modification. There's no officially sanctioned way of doing this either, unfortunately.

So that I can share my 8 USB ports to different domains.

Is there any documentation? I checked xensource, mail lists etc. but maybe didn't search the right way and couldn't find anything to put inside the domain configuration files to enable this function.

I remember seeing somewhere (maybe mailing lists) about this functionality and config like: usb:x:y:z:t to assign to a specific domain, but can't find it anymore...

This was probably a description of them PV USB interface, but that's not available anymore (IIRC it was included in Linux 2.4 on Xen 2.x releases - but that's ancient history now and not maintained. In any case, it wasn't widely tested then so I wouldn't recommend trying it now other than to play around with.).

I also remember that it will be even possible to assign "specific devices" to specific domains regardless of the port (but this i don't need for the moment).

That sounds like something I might have said - was it me who made the post you were looking at? Indeed this is something that shouldn't be too hard to implement given basic USB passthrough functionality; unfortunately we still don't have a stable and supported way of doing that.

Sorry to disappoint you.

You *could* pass through things like USB mass storage devices to PV and HVM guests using the standard blockfront/blockback driver, but USB hotplug will not work in a particularly sane way with this. I'd recommend unmounting and removing the virtual block device corresponding to the USB device completely from all domains using it before removing it from the dom0 system.

Hope that helps you somewhat, Cheers, Mark

Thanks alot beforehand for any link to a document to read,

Best regards,