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

Reply via email to