qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() as


From: Hans de Goede
Subject: Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting
Date: Thu, 20 Sep 2012 17:37:44 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120911 Thunderbird/15.0.1

Hi,

On 09/19/2012 06:42 PM, Shawn Starr wrote:
Hello QMU folks,

The latest EHCI patches and or USB redirection ones have caused a regression. 
Using the (legacy) qemu-kvm git master repository which does
not have these patches (not sure which patch is causing assert specifically 
yet). Using a Logitech QuickCam Pro 9000 and starting  a Windows VM
will crash when the device is detected.

Crash in log:

qemu-kvm: /builddir/build/BUILD/qemu-kvm-1.2.0/hw/usb/hcd-ehci.c:2018: 
ehci_state_fetchqtd: Assertion `0' failed.
2012-09-19 15:36:04.011+0000: shutting down

I only came to this conclusion after noticing at least in Fedora that 1.2.0-rc1 
did not have any of the EHCI and USB redirection patches added. So by using the 
-rc1 spec
file w/o the patches I can use Qemu/KVM successfully w/ webcam and no asserts.

I have also installed:  usbredir-0.5-1.fc18.x86_64

Thanks for reporting this. This is caused by a recent change to
fix a memory leak inside the ehci codes interrupt ep handling, together with:

    // TODO Windows does not seem to ever set the MULT field

The above windows bug (not setting the MULT field is against the spec), causes
ehci_state_execute() to exit without even executing the packet once, which
leaves the packet in an uninitialized state. And when fetchqtd then later on 
sees
there already is a packet in flight for the ep queue, it barfs on it not being
initialized.

I already had looking into the windows MULT issue on my to do, so I've just
bumped it to the top :)

Unfortunately I cannot reproduce what you are seeing even though I do have
a logitech pro 9000 to test with myself. I've tried with both a 32 bits
windows XP as a 32 bits windows 7, what guest OS are you running?

Besides not being able to reproduce I've written what I believe is a fix for
this. I'll post that to the list right after this mail.

Can you test qemu build with the fix added? And please also set the usb-redir
device's debug parameter to 4 and send me the generated qemu log ? This will
allow me to see not only the assert is gone but that also the interrupt ep is
working properly...

To set the debug to 4 use ie:
-device usb-redir,chardev=usbredirchardev1,id=usbredirdev1,debug=4

Do this for all the usb-redir devices on your cmdline!

Regards,

Hans





reply via email to

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