diff options
-rw-r--r-- | meta-oe/recipes-benchmark/iperf3/iperf3/do-not-listen-to-old-udp-prot-listener.patch | 30 | ||||
-rw-r--r-- | meta-oe/recipes-benchmark/iperf3/iperf3_3.17.1.bb | 1 |
2 files changed, 31 insertions, 0 deletions
diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3/do-not-listen-to-old-udp-prot-listener.patch b/meta-oe/recipes-benchmark/iperf3/iperf3/do-not-listen-to-old-udp-prot-listener.patch new file mode 100644 index 0000000000..da1664ddcf --- /dev/null +++ b/meta-oe/recipes-benchmark/iperf3/iperf3/do-not-listen-to-old-udp-prot-listener.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From ac6b9f7fd335ddebc5212eed40083ef4cd3cb86d Mon Sep 17 00:00:00 2001 | ||
2 | From: David Bar-On <david.cdb004@gmail.com> | ||
3 | Date: Sun, 2 Jun 2024 11:52:03 +0300 | ||
4 | Subject: [PATCH] Do not listen to old pro_listener | ||
5 | |||
6 | Clear old UDP prot_listener from read_set, as currently the server's select() | ||
7 | always return when data (that is relevant only to the worker thread) is | ||
8 | received. This makes the main thread consume a lot of unnecessary CPU, which | ||
9 | reduces the total throughput - especially when only one stream is used. | ||
10 | |||
11 | In my single machine environment, with the this fix the throughput is | ||
12 | increased by about 40% for one stream test. | ||
13 | --- | ||
14 | Upstream-Status: Backport [3.18] | ||
15 | |||
16 | src/iperf_udp.c | 1 + | ||
17 | 1 file changed, 1 insertion(+) | ||
18 | |||
19 | diff --git a/src/iperf_udp.c b/src/iperf_udp.c | ||
20 | index a603236df..40f2b1ca7 100644 | ||
21 | --- a/src/iperf_udp.c | ||
22 | +++ b/src/iperf_udp.c | ||
23 | @@ -446,6 +446,7 @@ iperf_udp_accept(struct iperf_test *test) | ||
24 | /* | ||
25 | * Create a new "listening" socket to replace the one we were using before. | ||
26 | */ | ||
27 | + FD_CLR(test->prot_listener, &test->read_set); // No control messages from old listener | ||
28 | test->prot_listener = netannounce(test->settings->domain, Pudp, test->bind_address, test->bind_dev, test->server_port); | ||
29 | if (test->prot_listener < 0) { | ||
30 | i_errno = IESTREAMLISTEN; | ||
diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3_3.17.1.bb b/meta-oe/recipes-benchmark/iperf3/iperf3_3.17.1.bb index 44fae0255f..2a93109b9c 100644 --- a/meta-oe/recipes-benchmark/iperf3/iperf3_3.17.1.bb +++ b/meta-oe/recipes-benchmark/iperf3/iperf3_3.17.1.bb | |||
@@ -15,6 +15,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=f9873a72f714e240530e759e103ac7b2" | |||
15 | SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https \ | 15 | SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https \ |
16 | file://0002-Remove-pg-from-profile_CFLAGS.patch \ | 16 | file://0002-Remove-pg-from-profile_CFLAGS.patch \ |
17 | file://0001-configure.ac-check-for-CPP-prog.patch \ | 17 | file://0001-configure.ac-check-for-CPP-prog.patch \ |
18 | file://do-not-listen-to-old-udp-prot-listener.patch \ | ||
18 | " | 19 | " |
19 | 20 | ||
20 | SRCREV = "2acfcfe94e928e74542c9f107e02aa6dd4748a79" | 21 | SRCREV = "2acfcfe94e928e74542c9f107e02aa6dd4748a79" |