The support for GSO/GRO features #1281
Replies: 4 comments 6 replies
-
Hi @nathan565656, seems interesting. Can you please clarify few points about this approach
Thanks |
Beta Was this translation helpful? Give feedback.
-
Hi @nathan565656, thanks for the detailed explanation. I was not aware that GSO/GRO is implemented by the UDP stack and not by the NIC as TSO. Are you planning to send a Push Request with these enhancements to add GRO/GSO support to iperf3? In any case, following some comments to the enhancements:
|
Beta Was this translation helpful? Give feedback.
-
Hi @nathan565656, I don't see anything else that is missing. However, I am not part of the team that maintain iperf3 and decides which PRs to include, so I cannot help that. |
Beta Was this translation helpful? Give feedback.
-
GSO and GRO benefits Windows too. With this change iperf3 compiled with Cygwin can get much higher throughput and lower CPU utilization compared to the default iperf3 which has no GSO and GRO on Windows. This feature is especially useful to test the NIC which supports 5G bps or 10G bps or even above while default iperf3 with Cygwin is hard to reach such throughput on UDP. |
Beta Was this translation helpful? Give feedback.
-
The Linux kernel has supported GSO (Generic Segmentation Offload) and GRO (Generic Receive Offload) features, and using these features reduces the processing overhead on the UDP applications when supporting high data rates. The latest Android framework also provides applications the options to use the GSO and GRO option to move data with less processing overhead between socket and Kernel.
The attached code (based on version 3.7) shows how the existing iperf3 could be extended to support GRO/GSO options. The sample code was verified on Ubuntu 20.04 (where kernel version is 5.4.0-90-generic and GSO/GRO is supported). In the experiment, the application was verified for what data rates (100 Mbps and 1 Gbps rates) and could see the reduced iperf3 CPU usage.
It would be great if we can considered making this option available in the iperf3 so the users can take advantage of this feature.
iperf37_GSO-GRO-support.zip
Beta Was this translation helpful? Give feedback.
All reactions