summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2010-10-16 19:29:37 +0000
committermav <mav@FreeBSD.org>2010-10-16 19:29:37 +0000
commitdb6298744f50e2e1d33a908bc0369ca9ace6924a (patch)
tree579db6d1114c15aa9835365e63483634015c3b18 /sys/dev/usb
parent753b9262aef5a83539bb46197527566cfb7a146e (diff)
downloadFreeBSD-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.c1
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 =
OpenPOWER on IntegriCloud