[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] latest USB code
Here's the latest USB code against the xen 3.0.0 release. Since the last posting this version updates the code to use the new 32 bit grant references and the latest GNTTABOP_map_grant_ref definition. I've also changed the definition of the virtual USB HCD to have a single port rather than seven ports with six unused. Domains importing multiple USB devices will get a HCD for each device (this feature currently untested). I went with this solution because it scales indefinitely. This code passes the usual sniff test of mounting a filesystem on a USB key. The issues that I know about that remain with this code are as follows: o - The USB protocol requires stalling the URB queue during error conditions. This isn't done correctly yet which makes the code unsafe for write access during error recovery. o - The resource pools are currently only allocating the minimum resources required to avoid deadlock so performance will be resource constrained. This can be fixed either by implementing a larger static resource allocation or improving the buffer_resource_provider to implement a dynamic shared resource pool. Either is fairly easy. o - You no longer need to specify swiotlb=force because xen has a small swiotlb turned on by default. If you explicitly turn the swiotlb off, the USB code will still be broken. o - The USB-specific part of the interdomain protocol is using polling for device discovery which is inefficient. I looked into fixing this and it won't be too hard to change the protocol so that the BE sends a message to the FE to kick the FE into re-probing the BE. This will make the BE device state machine a bit more complicated. o - Design documentation for the USB driver is required. o - We might not want to keep the xenidc code. API documentation for the xenidc API is required if we are going to keep the xenidc code. o - Isochronous URBs are untested. o - My test machine is USB 1.2 and I've not yet tested with USB 2.0. o - Suspend and resume is untested. Domain migration is untested. o - I've only ever tried to build the code for X86 and never X86_64. o - Automated tests integrated with the xm-test framework would be good. o - Need to run the USB part by the usb mailing list once I fix the protocol and think it's OK. I split the patch into two just in case anyone wants to play with the xenidc code. Attachment:
latest-xenidc-patch.gz Attachment:
latest-usb-patch.gz _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |