Instead of using only 120K for transfer size, let's
increase it to 1024K. This has a very noticeable
impact on USB3 storage devices.
The following measurements were done with v4.2 on
the host side and latest linux-next available at the
time (20151022). Following are results with default
and modified max_sectors. Each number is the average
of 100 measurements with each of the two settings.
Pre 244.87
Post 322.10
That's a 24% increase in throughput by just allowing
more sectors to transferred in a single
request. Considering there are other SCSI devices
using 2048 (and sometimes more) max_sectors, this
shouldn't bring any surprises to anybody other than
the extra memory used.
Signed-off-by: Felipe Balbi <[email protected]>
---
drivers/usb/storage/scsiglue.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c
index dba51362d2e2..36450111e8b8 100644
--- a/drivers/usb/storage/scsiglue.c
+++ b/drivers/usb/storage/scsiglue.c
@@ -565,8 +565,8 @@ static const struct scsi_host_template
usb_stor_host_template = {
/* lots of sg segments can be handled */
.sg_tablesize = SCSI_MAX_SG_CHAIN_SEGMENTS,
- /* limit the total size of a transfer to 120 KB */
- .max_sectors = 240,
+ /* limit the total size of a transfer to 1024 KB */
+ .max_sectors = 2048
/* merge commands... this seems to help performance, but
* periodically someone should test to see which setting is more
--
2.6.2
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html