You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Operating system (and distribution, if any): Arch Linux
Bug Report
Expected Behavior
Minimal CPU utilization for a limited rate bandwidth test; 1 packet per second
Actual Behavior
100% CPU utilization
Steps to Reproduce
iperf3 -c server -b 7776 -l 972 -t 0
This limits iperf3 to send 1 packet per second of size 972. UDP or TCP doesn't matter.
With strace we observe that a function is called many times (over 1000) in a loop between each packet output: strace -f -p $(pidof iperf3) [pid 185030] pselect6(5, [4], [], NULL, {tv_sec=0, tv_nsec=911000}, NULL) = 0 (Timeout)
The text was updated successfully, but these errors were encountered:
With strace we observe that a function is called many times (over 1000) in a loop between each packet output:
This is the result of the --pacing_timer interrupt - the default is 1000us and this is the reason for the1000 calls per second to the timer interrupt handler..
The CPU overload is because with the move to multi-threads, the sending function is now running in a loop that does not include any mechanism for waiting if nothing should be sent (in the non-multi-threads version this was done by select()). Submitted PR #1743 with a suggested fix.
Context
Version of iperf3: 3.17.1
Hardware: i7-1165G7
Operating system (and distribution, if any): Arch Linux
Bug Report
Minimal CPU utilization for a limited rate bandwidth test; 1 packet per second
100% CPU utilization
iperf3 -c server -b 7776 -l 972 -t 0
This limits iperf3 to send 1 packet per second of size 972. UDP or TCP doesn't matter.
With strace we observe that a function is called many times (over 1000) in a loop between each packet output:
strace -f -p $(pidof iperf3)
[pid 185030] pselect6(5, [4], [], NULL, {tv_sec=0, tv_nsec=911000}, NULL) = 0 (Timeout)
The text was updated successfully, but these errors were encountered: