diff options
author | mav <mav@FreeBSD.org> | 2010-10-16 19:29:37 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2010-10-16 19:29:37 +0000 |
commit | db6298744f50e2e1d33a908bc0369ca9ace6924a (patch) | |
tree | 579db6d1114c15aa9835365e63483634015c3b18 /sys/dev/usb | |
parent | 753b9262aef5a83539bb46197527566cfb7a146e (diff) | |
download | FreeBSD-src-db6298744f50e2e1d33a908bc0369ca9ace6924a.zip FreeBSD-src-db6298744f50e2e1d33a908bc0369ca9ace6924a.tar.gz |
Allow umass to use bigger transactions for USB 3.0 devices. It is less
important for USB 2.0 devices and some of them reported to have problems
with large transactions. But USB 3.0 benchmarks show that limited number
of transactions per second on USB makes impossible to reach high transfer
speeds without using bigger transactions.
On my tests this change allows to read up to 220MB/s from USB-attached SSD
(at block size of 256-512KB), comparing to only 113MB/s without it.
Reviewed by: hselasky
Diffstat (limited to 'sys/dev/usb')
-rw-r--r-- | sys/dev/usb/storage/umass.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/usb/storage/umass.c b/sys/dev/usb/storage/umass.c index ad6324c..c270dfa 100644 --- a/sys/dev/usb/storage/umass.c +++ b/sys/dev/usb/storage/umass.c @@ -2418,6 +2418,7 @@ umass_cam_action(struct cam_sim *sim, union ccb *ccb) case USB_SPEED_SUPER: cpi->base_transfer_speed = UMASS_SUPER_TRANSFER_SPEED; + cpi->maxio = MAXPHYS; break; case USB_SPEED_HIGH: cpi->base_transfer_speed = |