Add multi-CPU Affinity option per stream/thread support for Linux#1939
Add multi-CPU Affinity option per stream/thread support for Linux#1939manedurphy wants to merge 1 commit intoesnet:masterfrom
Conversation
|
Thanks for the PR! So, when we were testing the multi-threading functionality, we used numactl(8) quite extensively. We were thinking a better way to do CPU pinning, etc. would be to deprecate the |
|
Admittedly, these changes were part of a learning exercise to better understand XPS Transmit Packet Steering in Linux. The idea was to explore what happens when each CPU is assigned to its own |
|
Thanks! I admittedly had never heard of XPS Transmit Packet Steering, reading the reference now. We generally will use That said, |
|
I'm going to have to spend some time learning more about how |
I think that whoever's running the other application use |
PLEASE NOTE the following text from the iperf3 license. Submitting a
pull request to the iperf3 repository constitutes "[making]
Enhancements available...publicly":
The complete iperf3 license is available in the
LICENSEfile in thetop directory of the iperf3 source tree.
Version of iperf3 (or development branch, such as
masteror3.1-STABLE) to which this pull request applies:masterIssues fixed (if any): Support affinity/pinning of parallel flows to different CPUs #1738
Brief description of code changes (suitable for use as a commit message):
This is an idea that expands on the enhancement request for supporting a list of CPUs to pin the the
iperf3process to now that multithreading is supported. At the time of raising these changes, this is not a complete feature, and the PR has been marked as a draft. There is already an open PR, iperf/#1778, which seeks to implement the enhancement, as requested. These code changes take a different approach in the sense that when the user uses the--parallelflag to create multiple streams for the tests, then they can additionally use the--stream-affinityflag to pin each stream (thread) to a target CPU. This enables me, the user, to create 8 streams/threads on my 8-core system and pin each stream/thread to 1 core. I'll leave the code here for reference, but continue the conversation in the feature request.