esnet / esnet/iperf

Zero copy for sending and receiving

Open
#1,286 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
8.8k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Description

# Context

* Version of iperf3: [d2a2252](https://github.com/esnet/iperf/commit/d2a2252911ca24af0f04261010d23b8a967e4200)

* Hardware: Dell XPS 15

* Operating system (and distribution, if any): Ubuntu 18.04 with latest updates

* Other relevant information (for example, non-default compilers,
libraries, cross-compiling, etc.):

# Enhancement Request

* Current behavior

Currently, `--zerocopy` is only listed as a client option and the documentation states, that zerocopy is only used for sending data. I don't follow. For UDP we have `recvmmsg` and `sendmmsg`. So clearly, zero copy APIs exist both for sending and receiving data. Why would iperf3 not use zero copy for receiving data? It will likely reduce CPU load and package drops on the receiver side.

Also `--reverse` swaps the roles of client and server. Now the server is sending. Is the `--zerocopy` option forwarded to the server in such a case?

* Desired behavior

Have an option to enable zero copy for sending and receiving. It could also be separate options. If these options remain client options, maybe be clearer about whether these options are forwarded to the server. If the options are not forwarded to the server, then it should be possible to set zerocopy for the server as well.

* Implementation notes

n/a

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.