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


Reply via email to