[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] USB2.0 disk format failure in windows guest
From: |
Alan Stern |
Subject: |
Re: [Qemu-devel] USB2.0 disk format failure in windows guest |
Date: |
Mon, 15 Apr 2013 13:43:39 -0400 (EDT) |
On Sun, 14 Apr 2013, Gonglei (Arei) wrote:
> > > Hi Alan,
> > > We pass-throughed USB 2.0 disk to guest using usb-host (qemu option:
> > -device usb-ehci,id=ehci -device usb-host,bus=ehci.0,hostbus=2,hostport=1)
> > on
> > KVM(on linux-3.8.3 or linux-3.0.13) and qemu 1.4.0 ,
> >
> > Are you sure this disk was using EHCI? The attached log shows bulk
> > packet sizes that aren't multiples of 512, which isn't possible in the
> > middle of a high-speed transfer.
>
> Yes, this disk was using EHCI, since guest QEMU and Linux kernel both
> prints matching EHCI logs, such as transfer types and transfer sizes.
> There are many buck-out URBs whose sizes are 31 or 4064 that are not
> multiples of 512. Since URB size 31 does occur without guest format
> USB 2.0 disk sceneiro, did you mean that buck-out size 4064 should
> not occur? /* EHCI spec version 1.0 Section 4.10.6 */
That's right; it should not occur.
It's okay to have an URB size that isn't a multiple of 512 if that URB
is the last one in a transfer. For example, the 31-byte URBs were the
only URBs in their transfers, so they were okay. But the 4064-byte
URBs occurred at the start and in the middle of their transfers, so
they were wrong.
> > What kernel version did you use while recording this log?
>
> We tested KVM on Linux 3.8.3 and Linux 3.0.13, and the problem exists
> on both kernels.
But which kernel version did you use while recording the log that you
posted?
Also, what type of computer is your host?
> This time we attached a usbmon USB disk format failed log and
> USBlyzer' logs for another test. Would you give us some advice,
> thanks a lot!
>
> Something look like:
>
> ffff88180b974600 480512312 S Bo:6:009:2 -115 31 = 55534243 50599784 00000100
> 00000a2a 00000008 de000080 00000000 000000
> ffff88180b974600 480512375 C Bo:6:009:2 0 31 >
> ffff88180b974600 480513372 S Bo:6:009:2 -115 4064 = f8ffff0f ffffff0f
> ffffff0f 00000000 00000000 00000000 00000000 00000000
This is a lot more concise than the other log, but it still shows the
same problem: the 4064-byte URB.
Can you post the contents of the /sys/kernel/debug/usb/devices file?
Alan Stern