mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-17 04:37:19 +00:00
iperf3: throughput fix
This is a backport of a fix to iperf3. The author saw a 40% improvement in their network throughput, we've seen around a 55% improvement in our tests. Link: https://github.com/esnet/iperf/pull/1708/commits/ac6b9f7fd335ddebc5212eed40083ef4cd3cb86d Signed-off-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
committed by
Armin Kuster
parent
48980f26fe
commit
c204166dac
@@ -0,0 +1,30 @@
|
|||||||
|
From ac6b9f7fd335ddebc5212eed40083ef4cd3cb86d Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Bar-On <david.cdb004@gmail.com>
|
||||||
|
Date: Sun, 2 Jun 2024 11:52:03 +0300
|
||||||
|
Subject: [PATCH] Do not listen to old pro_listener
|
||||||
|
|
||||||
|
Clear old UDP prot_listener from read_set, as currently the server's select()
|
||||||
|
always return when data (that is relevant only to the worker thread) is
|
||||||
|
received. This makes the main thread consume a lot of unnecessary CPU, which
|
||||||
|
reduces the total throughput - especially when only one stream is used.
|
||||||
|
|
||||||
|
In my single machine environment, with the this fix the throughput is
|
||||||
|
increased by about 40% for one stream test.
|
||||||
|
---
|
||||||
|
Upstream-Status: Backport [3.18]
|
||||||
|
|
||||||
|
src/iperf_udp.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/src/iperf_udp.c b/src/iperf_udp.c
|
||||||
|
index a603236df..40f2b1ca7 100644
|
||||||
|
--- a/src/iperf_udp.c
|
||||||
|
+++ b/src/iperf_udp.c
|
||||||
|
@@ -446,6 +446,7 @@ iperf_udp_accept(struct iperf_test *test)
|
||||||
|
/*
|
||||||
|
* Create a new "listening" socket to replace the one we were using before.
|
||||||
|
*/
|
||||||
|
+ FD_CLR(test->prot_listener, &test->read_set); // No control messages from old listener
|
||||||
|
test->prot_listener = netannounce(test->settings->domain, Pudp, test->bind_address, test->bind_dev, test->server_port);
|
||||||
|
if (test->prot_listener < 0) {
|
||||||
|
i_errno = IESTREAMLISTEN;
|
||||||
@@ -15,6 +15,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=dc6301c8256ceb8f71c9e3c2ae9096b9"
|
|||||||
SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https \
|
SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https \
|
||||||
file://0002-Remove-pg-from-profile_CFLAGS.patch \
|
file://0002-Remove-pg-from-profile_CFLAGS.patch \
|
||||||
file://0001-configure.ac-check-for-CPP-prog.patch \
|
file://0001-configure.ac-check-for-CPP-prog.patch \
|
||||||
|
file://do-not-listen-to-old-udp-prot-listener.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRCREV = "f9481e1cd35159929458513692e4a8f9fdd1bd6f"
|
SRCREV = "f9481e1cd35159929458513692e4a8f9fdd1bd6f"
|
||||||
|
|||||||
Reference in New Issue
Block a user