From: Hans de Goede <hdegoede@redhat.com>
To: Shawn Starr <shawn.starr@rogers.com>
Cc: qemu-devel@nongnu.org, gerd@kraxel.org
Subject: Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting
Date: Fri, 21 Sep 2012 14:19:08 +0200 [thread overview]
Message-ID: <505C5B3C.8050202@redhat.com> (raw)
In-Reply-To: <2098688.OVovPi9fnz@segfault.sh0n.net>
Hi,
On 09/21/2012 02:04 AM, Shawn Starr wrote:
> On Thursday, September 20, 2012 07:29:08 PM Shawn Starr wrote:
>> On Thursday, September 20, 2012 05:37:44 PM Hans de Goede wrote:
>>> 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!
>>
>> I did and log shows:
>>
>> USBDEVFS_SUBMITURB: Cannot allocate memory
>> Unexpected iso usb result: -3
>>
>> This is flooding the log when the cam is enabled (black screen) it goes on
>> but nothing shown
>>
>> I manually added to libvirt config for the VM to enable usb-redir device
>>
>> <qemu:commandline>
>> <qemu:arg value='-chardev'/>
>> <qemu:arg value='spicevmc,id=charredir0,name=usbredir,debug=4'/>
>> <qemu:arg value='-device'/>
>> <qemu:arg value='usb-redir,chardev=charredir0,id=redir0,debug=4'/>
>> </qemu:commandline>
>>
>>
>> New command line:
>>
>> /usr/bin/qemu-kvm -name Windows -S -M pc-1.2 -cpu Penryn,+osxsave,+xsave,
>> +pdcm,+xtpr,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pbe,+tm,+ht,+ss,
>> +acpi,+ds,+vme -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -uuid
>> 41562d70-d0a8-25bc-10ec-a3dc46b3d258 -no-user-config -nodefaults -chardev
>> socket,id=charmonitor,path=/var/lib/libvirt/qemu/Windows.monitor,server,nowa
>> it -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-
>> shutdown -boot order=dc,menu=on -device ich9-usb-
>> ehci1,id=usb,bus=pci.0,addr=0x3.0x7 -device ich9-usb-
>> uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x3
>> -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x3.0x1
>> -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x3.0x2
>> -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x8 -device virtio-serial-
>> pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive
>> file=/home/spstarr/VMs/Windows.img,if=none,id=drive-
>> scsi0-0-0-0,format=raw,cache=none -device
>> scsi-hd,bus=scsi0.0,channel=0,scsi-
>> id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 -drive
>> file=/home/spstarr/Downloads/virtio-win-0.1-30.iso,if=none,id=drive-
>> ide0-1-0,readonly=on,format=raw,cache=none -device ide-
>> cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev
>> tap,fd=22,id=hostnet0,vhost=on,vhostfd=23 -device virtio-net-
>> pci,netdev=hostnet0,id=net0,mac=52:54:00:cf:06:63,bus=pci.0,addr=0x7
>> -chardev spicevmc,id=charchannel0,name=vdagent -device
>> virtserialport,bus=virtio-
>> serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -
>> device usb-tablet,id=input0 -spice port=5900,addr=0.0.0.0,disable-ticketing
>> - vga qxl -global qxl-vga.vram_size=134217728 -device intel-
>> hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-
>> codec0,bus=sound0.0,cad=0 -device usb-host,hostbus=1,hostaddr=4,id=hostdev0
>> - device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -chardev
>> spicevmc,id=charredir0,name=usbredir,debug=4 -device usb-
>> redir,chardev=charredir0,id=redir0,debug=4
>>
Ok, so your using host redirection here, see the device usb-host
> In addition, if i disable usb-redirection device the cam works as it did
> before (although like before, the video image is upside down in some
> applications).
When you say disable the usb-redirection device, do you mean removing
the host redirection, and selecting the cam for redirection in a
spice client (ie remote-viewer) instead, or... ?
Can you please try, disabling host-redirection, then connecting to
the vm with remote-viewer and then selecting the cam from
remote-viewers UI?
Thanks,
Hans
next prev parent reply other threads:[~2012-09-21 12:18 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-19 16:42 [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting Shawn Starr
2012-09-19 16:53 ` Shawn Starr
2012-09-20 15:37 ` Hans de Goede
2012-09-20 19:08 ` Shawn Starr
2012-09-20 23:28 ` Shawn Starr
[not found] ` <6177450.mT8I4ey0nz@segfault.sh0n.net>
2012-09-21 0:04 ` Shawn Starr
2012-09-21 12:19 ` Hans de Goede [this message]
2012-09-21 15:39 ` Shawn Starr
2012-09-21 17:35 ` Hans de Goede
2012-09-21 18:46 ` Shawn Starr
2012-09-23 10:03 ` Hans de Goede
2012-09-23 18:00 ` Shawn Starr
2012-09-23 18:20 ` Shawn Starr
2012-09-23 18:52 ` Shawn Starr
2012-09-24 9:52 ` Hans de Goede
2012-09-24 14:24 ` Shawn Starr
2012-09-24 9:50 ` Hans de Goede
2012-09-24 14:20 ` Shawn Starr
2012-09-24 14:36 ` Hans de Goede
2012-09-24 14:38 ` Shawn Starr
2012-10-02 15:26 ` Shawn Starr
2012-10-08 11:27 ` Hans de Goede
2012-10-08 13:01 ` Johannes Stezenbach
2012-10-08 13:51 ` Hans de Goede
2012-10-08 14:49 ` Johannes Stezenbach
2012-10-08 15:03 ` Hans de Goede
2012-10-08 16:11 ` Johannes Stezenbach
2012-10-08 20:10 ` Hans de Goede
2012-10-08 20:18 ` Shawn Starr
2012-10-08 21:32 ` Hans de Goede
2012-10-08 21:37 ` Shawn Starr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=505C5B3C.8050202@redhat.com \
--to=hdegoede@redhat.com \
--cc=gerd@kraxel.org \
--cc=qemu-devel@nongnu.org \
--cc=shawn.starr@rogers.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).