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 <balbi@xxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html