Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: UDP GRO/GSO feature can significantly reduce CPU loading #1839

Open
iven-26545 opened this issue Feb 20, 2025 · 0 comments
Open

Comments

@iven-26545
Copy link

Dear maintainer,

The Linux kernel has supported GSO (Generic Segmentation Offload) and GRO (Generic Receive Offload) features, and using these features reduces the processing overhead on UDP applications when supporting high throughput case.

Regarding the discussion on the GRO/GSO feature, the author @nathan565656 had a discussion on #1309 in February 2022 and provided the corresponding patch. As of February 2025, the UDP GRO/GSO feature has still not been merged into the official release of iperf.

On my test platform, there are a total of eight CPUs. When testing the downlink at 11Gbps and uplink at 500Mbps, using iperf3.16 or iperf3.18, there is CPU performance bottleneck, with the loading of all eight CPUs reaching over 99%, causing the throughput to fail to meet the target.

However, after porting @nathan565656's patch (by the way, it requires some modifications to work well on my platform), the same throughput test not only met the throughput target, but also the CPU loading for each CPU dropped to around 70%. The CPU loading was significantly reduced (by approximately 250% across eight CPUs).

Based on this, I would like to ask the iperf community if it is possible to consider supporting the UDP GRO/GSO feature and merging it into the official release version.

Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant