mbox series

[v3,0/3] usb: gadget: f_ncm: support SuperSpeed Plus, improve on SuperSpeed

Message ID 20200825055505.765782-1-lorenzo@google.com (mailing list archive)
Headers show
Series usb: gadget: f_ncm: support SuperSpeed Plus, improve on SuperSpeed | expand

Message

Lorenzo Colitti Aug. 25, 2020, 5:55 a.m. UTC
This patch series makes the NCM gadget usable at SuperSpeed Plus
speeds (currently, it crashes with an oops). It also improves the
behaviour on SuperSpeed and above by making simple performance
improvements and by fixing the speeds that are reported to the
host (currently 851 Mbps, which is much below actual throughput).

Tested on a gadget directly connected to a Linux laptop running
5.6.14 and cdc_ncm, using both 5 Gbps and 10 Gbps cables. iperf3
single TCP connection throughput (gadget to host) is > 2 Gbps on
SuperSpeed and > 4 Gbps on SuperSpeed Plus.

Changes since v1:
- Set bMaxBurst to 15 on endpoints.
- Report more realistic speeds than 851 Mbps.

Changes since v2:
- Remove the separate SuperSpeed Plus descriptors and function
  which were just a copy of the SuperSpeed descriptors and
  function. Instead, just pass the SuperSpeed function to
  usb_assign_descriptors for both SuperSpeed and SuperSpeed
  Plus.
- Don't set bMaxBurst on the interrupt endpoint. This is
  incorrect/useless and forbidden by the spec.
- Make the speed constants unsigned literals.

Comments

Greg KH Sept. 9, 2020, 10:40 a.m. UTC | #1
On Tue, Aug 25, 2020 at 02:55:02PM +0900, Lorenzo Colitti wrote:
> This patch series makes the NCM gadget usable at SuperSpeed Plus
> speeds (currently, it crashes with an oops). It also improves the
> behaviour on SuperSpeed and above by making simple performance
> improvements and by fixing the speeds that are reported to the
> host (currently 851 Mbps, which is much below actual throughput).
> 
> Tested on a gadget directly connected to a Linux laptop running
> 5.6.14 and cdc_ncm, using both 5 Gbps and 10 Gbps cables. iperf3
> single TCP connection throughput (gadget to host) is > 2 Gbps on
> SuperSpeed and > 4 Gbps on SuperSpeed Plus.
> 
> Changes since v1:
> - Set bMaxBurst to 15 on endpoints.
> - Report more realistic speeds than 851 Mbps.
> 
> Changes since v2:
> - Remove the separate SuperSpeed Plus descriptors and function
>   which were just a copy of the SuperSpeed descriptors and
>   function. Instead, just pass the SuperSpeed function to
>   usb_assign_descriptors for both SuperSpeed and SuperSpeed
>   Plus.
> - Don't set bMaxBurst on the interrupt endpoint. This is
>   incorrect/useless and forbidden by the spec.
> - Make the speed constants unsigned literals.
> 
> 

Felipe, did you miss this series, or is it still in your to-review queue
you are working your way through?

thanks,

greg k-h
Felipe Balbi Sept. 24, 2020, 7:28 a.m. UTC | #2
Hi Greg,

Greg KH <gregkh@linuxfoundation.org> writes:
> On Tue, Aug 25, 2020 at 02:55:02PM +0900, Lorenzo Colitti wrote:
>> This patch series makes the NCM gadget usable at SuperSpeed Plus
>> speeds (currently, it crashes with an oops). It also improves the
>> behaviour on SuperSpeed and above by making simple performance
>> improvements and by fixing the speeds that are reported to the
>> host (currently 851 Mbps, which is much below actual throughput).
>> 
>> Tested on a gadget directly connected to a Linux laptop running
>> 5.6.14 and cdc_ncm, using both 5 Gbps and 10 Gbps cables. iperf3
>> single TCP connection throughput (gadget to host) is > 2 Gbps on
>> SuperSpeed and > 4 Gbps on SuperSpeed Plus.
>> 
>> Changes since v1:
>> - Set bMaxBurst to 15 on endpoints.
>> - Report more realistic speeds than 851 Mbps.
>> 
>> Changes since v2:
>> - Remove the separate SuperSpeed Plus descriptors and function
>>   which were just a copy of the SuperSpeed descriptors and
>>   function. Instead, just pass the SuperSpeed function to
>>   usb_assign_descriptors for both SuperSpeed and SuperSpeed
>>   Plus.
>> - Don't set bMaxBurst on the interrupt endpoint. This is
>>   incorrect/useless and forbidden by the spec.
>> - Make the speed constants unsigned literals.
>> 
>> 
>
> Felipe, did you miss this series, or is it still in your to-review queue
> you are working your way through?

Just got to this one :-)