Poor performance with USB 1.1 drive connected to USB 3.0 port

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

 



Hi,

I did some benchmarks to check the maximum transfer rate of a USB-to-SCSI
converter. The converter is USB 1.1, so limited to the 12Mbps full speed
rate. The performance when connected to a USB 3.0 port is significantly
worse than when connected to a USB 2.0 port, about 26.5% slower (0.63MB/sec
vs 0.86MB/sec).

The USB 3.0 port is provided by an ExpressCard which has a Renesas
controller. It doesn't seem to be defective because I can get 138MB/sec
from a USB 3.0 hard disk. lspci shows
  05:00.0 USB Controller: Renesas Technology Corp. Device 0015 (rev 02)

I didn't test with an unmodified mainline kernel, but the issue is present
with both Ubuntu kernel 3.0 and Debian 3.14 (booted from Kali Linux live
DVD).

I used sg_rbuf from the sg3-utils package. That issues READ BUFFER commands
instead of reading data from disk, so the result should be closer to the
maximum achievable. The USB-SCSI converter was a Newer Technology uSCSI
connected to an HP 2600fx MO drive.

In a USB 2.0 port:

# sg_rbuf --buffer=524288 -v -t -q /dev/sg3
    Read buffer cdb: 3c 03 00 00 00 00 00 00 04 00 
READ BUFFER reports: buffer capacity=983040, offset boundary=0
time to read data from buffer was 242.800241 secs, 0.86 MB/sec
Read 200 MiB (actual: 209715200 bytes), buffer size=512 KiB (524288 bytes)

# sg_rbuf --buffer=524288 -v -t -q /dev/sg3
    Read buffer cdb: 3c 03 00 00 00 00 00 00 04 00 
READ BUFFER reports: buffer capacity=983040, offset boundary=0
time to read data from buffer was 242.800230 secs, 0.86 MB/sec
Read 200 MiB (actual: 209715200 bytes), buffer size=512 KiB (524288 bytes)


In a USB 3.0 port:

# sg_rbuf --buffer=524288 -v -t -q /dev/sg3
    Read buffer cdb: 3c 03 00 00 00 00 00 00 04 00 
READ BUFFER reports: buffer capacity=983040, offset boundary=0
time to read data from buffer was 330.311337 secs, 0.63 MB/sec
Read 200 MiB (actual: 209715200 bytes), buffer size=512 KiB (524288 bytes)

# sg_rbuf --buffer=524288 -v -t -q /dev/sg3
    Read buffer cdb: 3c 03 00 00 00 00 00 00 04 00 
READ BUFFER reports: buffer capacity=983040, offset boundary=0
time to read data from buffer was 330.388556 secs, 0.63 MB/sec
Read 200 MiB (actual: 209715200 bytes), buffer size=512 KiB (524288 bytes)


By comparison, I checked the transfer rate in native Windows (Vista) with
the WinSAT program. That reported 0.66MB/sec for both USB 2.0 and 3.0
ports. (WinSAT reads data from disk, probably in smaller chunks than 512KB.
There's no sg_rbuf executable in the Windows sg3_utils archive.)

Any ideas what the reason for the discrepancy might be? Can anyone else
reproduce it? I guess USB 1.1-only devices aren't that common nowadays.


Mark
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux