qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH 0/5] Various USB fixes and improvements


From: Max Krasnyansky
Subject: [Qemu-devel] Re: [PATCH 0/5] Various USB fixes and improvements
Date: Thu, 14 Aug 2008 12:55:30 -0700
User-agent: Thunderbird 2.0.0.14 (X11/20080501)

Anthony Liguori wrote:
> Max Krasnyansky wrote:
>> This patch series started when I tried to share USB ports between four
>> instances of Windows XP running on the same Linux box (under KVM).
>> I quickly realized that current USB support is not very flexible. We do
>> not handle devices disconnects, there is not way to assign certain USB
>> ports to VM instance, etc.
>>
>> Once I fixed that I discovered that USB devices that I absolutely need
>> in the VMs (Xilinx and Altera USB dongles) do not really work with
>> QEMU. VMs were getting stuck, applications unhappy, etc.
>> So I endded up rewriting UHCI and Linux host USB layers to make them
>> fully async and to support multiple outstanding transactions.
>>
>> The result is quite nice. We can now assign USB buses to VM instances
>> and devices are automatically connected to the VMs. Just do    
>> usb_add host:N.*
>> in the console or -usbdevice command line option (N is the bus number).
>> Also when device is disconnected from the host it's automatically removed
>> from the guest.
>>
>> Host USB devices operate in fully async mode (except the control
>> transfers).
>> All the stalls and jerkiness due to long synchronous transactions is
>> gone.
>> I can easily hook up four different USB devices (mouse, CF card
>> reader, phone, Xilinx dongle) and everything is working perfectly.
>> Mouse movements
>> are silky smooth :).
>>
>> I did some profiling with OProfile and we seems to be doing ok while
>> XP is pumping ~10 MBytes over USB (reported by one of the apps I'm
>> using). UHCI stuff is well below VNC for example.
>>
>> There is more work to be done (async control transfers for example).
>> But I think this is way better than what we have now and is ready for
>> more testing
>> by wider audience.
>> Most of the testing so far was done with KVM flavor of QEMU. I did
>> test generic i386-softmmu target a bit, it's too slow for any serious
>> testing with XP. I did full compile (all targets) too and it went fine.
>>   
> 
> Altogether this patch series looks very promising.  The current USB pass
> through code is pretty fickle so some clean-up is definitely needed.
Great.

> I don't understand USB well enough to do a thorough review.  I hope
> others can look through it and provide more detailed feedback.  
That would be great. I bet not a lot of people understand UHCI specs though.

> I'll do some testing of it tonight.
Awesome. If something does not work as expected please enable DEBUG in both
hw/usb-uhci.c and usb-linux.c and send me the output.

Max




reply via email to

[Prev in Thread] Current Thread [Next in Thread]