Commit 71235d9e authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Xin Li
Browse files

FROMLIST: usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well



The u_ether driver has a qmult setting that multiplies the
transmit queue length (which by default is 2).

The intent is that it should be enabled at high/super speed, but
because the code does not explicitly check for USB_SUPER_PLUS,
it is disabled at that speed.

Fix this by ensuring that the queue multiplier is enabled for any
wired link at high speed or above. Using >= for USB_SPEED_*
constants seems correct because it is what the gadget_is_xxxspeed
functions do.

The queue multiplier substantially helps performance at higher
speeds. On a direct SuperSpeed Plus link to a Linux laptop,
iperf3 single TCP stream:

Before (qmult=1): 1.3 Gbps
After  (qmult=5): 3.2 Gbps

Fixes: 04617db7 ("usb: gadget: add SS descriptors to Ethernet gadget")
Signed-off-by: default avatarLorenzo Colitti <lorenzo@google.com>
Reviewed-by: default avatarMaciej Żenczykowski <maze@google.com>
Bug: 162298600
Link: https://lore.kernel.org/linux-usb/20200818161949.4083551-1-lorenzo@google.com/


Signed-off-by: default avatarMaciej Żenczykowski <maze@google.com>
Change-Id: I64b62a0da9fd522a62e1029825e305a99ed9d2b6
(cherry picked from commit 50f8fad2dd0ed8a6ee44f0194798d59590a7f594)
Signed-off-by: default avatarWill McVicker <willmcvicker@google.com>
parent 68caaaea
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment