[Top][All Lists]
[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: |
Shawn Starr |
Subject: |
Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting |
Date: |
Thu, 20 Sep 2012 19:28:36 -0400 |
User-agent: |
KMail/4.9 (Linux/3.6.0-0.rc6.git0.1.fc18.x86_64; KDE/4.9.0; x86_64; ; ) |
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,nowait
-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
> Regards,
>
> Hans
- [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Shawn Starr, 2012/09/19
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Shawn Starr, 2012/09/19
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Hans de Goede, 2012/09/20
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Shawn Starr, 2012/09/20
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting,
Shawn Starr <=
- Message not available
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Shawn Starr, 2012/09/20
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Hans de Goede, 2012/09/21
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Shawn Starr, 2012/09/21
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Hans de Goede, 2012/09/21
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Shawn Starr, 2012/09/21
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Hans de Goede, 2012/09/23
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Shawn Starr, 2012/09/23
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Shawn Starr, 2012/09/23
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Shawn Starr, 2012/09/23
- Re: [Qemu-devel] EHCI USB regression in 1.2.0 - ehci_state_fetchqtd() asserting, Hans de Goede, 2012/09/24