qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [Bug 1247478] [NEW] usb passthrough mass storage write data


From: Sascha Krissler
Subject: [Qemu-devel] [Bug 1247478] [NEW] usb passthrough mass storage write data corruption
Date: Sat, 02 Nov 2013 21:34:39 -0000

Public bug reported:

the windows 7 professional guest writes to usb high speed mass storage devices 
connected via host-libusb
in bulk packages of either size 20480 or 4096 (as far as the actual file data 
is concerned and
except for the last packet for odd-sized files). The pattern is:
3 times bulk out 20480
1 time bulk out 4096

and that repeats for files longer than 65536 bytes.

the file on the usb disk is corrupted and it is always corrupt in the last 4096 
bytes of each
20480 byte sized transfer. that means a file is corrupt at 16384-20480 and 
36864-40960 and
57344-61440.
and so on. and because the 4096 sized  bulk out is always error free, the next 
corrupt span is from
81920-86016.

the last 4096 bytes of the 20480 sized transfer is always identical to the 
first 4096 bytes of the same
transfer.

to reproduce: run windows7 guest on and pass through usb2.0 disk with 
host-libusb. write a large file.
(possibly check the bulk transfer sizes with usbmon).
note that attaching usb disks with hw/usb/dev-storage does work just fine.
cannot reproduce with linux as it always writes just 4096 bytes and writes with 
a linux guest are
always ok even with usb passthrough.

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1247478

Title:
  usb passthrough mass storage write data corruption

Status in QEMU:
  New

Bug description:
  the windows 7 professional guest writes to usb high speed mass storage 
devices connected via host-libusb
  in bulk packages of either size 20480 or 4096 (as far as the actual file data 
is concerned and
  except for the last packet for odd-sized files). The pattern is:
  3 times bulk out 20480
  1 time bulk out 4096

  and that repeats for files longer than 65536 bytes.

  the file on the usb disk is corrupted and it is always corrupt in the last 
4096 bytes of each
  20480 byte sized transfer. that means a file is corrupt at 16384-20480 and 
36864-40960 and
  57344-61440.
  and so on. and because the 4096 sized  bulk out is always error free, the 
next corrupt span is from
  81920-86016.

  the last 4096 bytes of the 20480 sized transfer is always identical to the 
first 4096 bytes of the same
  transfer.

  to reproduce: run windows7 guest on and pass through usb2.0 disk with 
host-libusb. write a large file.
  (possibly check the bulk transfer sizes with usbmon).
  note that attaching usb disks with hw/usb/dev-storage does work just fine.
  cannot reproduce with linux as it always writes just 4096 bytes and writes 
with a linux guest are
  always ok even with usb passthrough.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1247478/+subscriptions



reply via email to

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