Hi, Oliver Neukum <oneukum@xxxxxxxx> writes: > On Wed, 2016-04-13 at 08:42 +0300, Felipe Balbi wrote: >> USB3 devices, because they are much newer, have much >> less chance of having issues with larger transfers. >> >> We still keep a limit because anything above 2048 >> sectors really rendered negligible speed >> improvements, so we will simply ignore >> that. Transferring 1MiB should already give us >> pretty good performance. >> >> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> >> --- >> drivers/usb/storage/scsiglue.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c >> index 9da1fb3d0ff4..2bb6a88858ea 100644 >> --- a/drivers/usb/storage/scsiglue.c >> +++ b/drivers/usb/storage/scsiglue.c >> @@ -127,6 +127,11 @@ static int slave_configure(struct scsi_device *sdev) >> if (queue_max_hw_sectors(sdev->request_queue) > max_sectors) >> blk_queue_max_hw_sectors(sdev->request_queue, >> max_sectors); >> + } else if (us->pusb_dev->speed >= USB_SPEED_SUPER) { >> + /* USB3 devices will be limited to 2048 sectors. This gives us >> + * better throughput on most devices. >> + */ >> + blk_queue_max_hw_sectors(sdev->request_queue, 2048); > > Should we really test for speed rather than USB version? bcdUSB >= 0x0300 ? Sure, why not... -- balbi
Attachment:
signature.asc
Description: PGP signature