From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Brivio To: passt-dev@passt.top Subject: [PATCH 7/7] test/perf: Disable periodic throughput reports to avoid vhost hang Date: Wed, 21 Sep 2022 22:55:07 +0200 Message-ID: <20220921205507.2742203-8-sbrivio@redhat.com> In-Reply-To: <20220921205507.2742203-1-sbrivio@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8323352275459241808==" --===============8323352275459241808== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable It appears that if we run throughput tests with one-second periodic reports, the sending side of the vhost channel used for SSH-based command dispatch occasionally stops working altogether. I haven't investigated this further, all I see is that output is truncated at some point, and doesn't resume. If we use gzip compression (ssh -C) this happens less frequently, but it still happens, seemingly indicating the issue is probably related to vhost itself. Disable periodic reports in iperf3 clients. The -i options were actually redundant, so remove them from both test files as well as from test_iperf3(). Signed-off-by: Stefano Brivio --- test/lib/test | 2 +- test/perf/passt_tcp | 2 +- test/perf/passt_udp | 2 +- test/perf/pasta_tcp | 2 +- test/perf/pasta_udp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/lib/test b/test/lib/test index b69d519..d68ade4 100755 --- a/test/lib/test +++ b/test/lib/test @@ -44,7 +44,7 @@ test_iperf3() { '(' \ ' for i in $(seq 0 '${__procs}'); do' \ ' iperf3 -c '${__dest}' -p '${__port} \ - ' -t'${__time}' -T s${i} '"${@}"' &' \ + ' -t'${__time}' -i0 -T s${i} '"${@}"' &' \ ' done;' \ ' wait' \ ')' diff --git a/test/perf/passt_tcp b/test/perf/passt_tcp index 5f0aa3a..5ba5450 100644 --- a/test/perf/passt_tcp +++ b/test/perf/passt_tcp @@ -46,7 +46,7 @@ set THREADS 1 set STREAMS 8 set TIME 10 hout OMIT echo __TIME__ / 6 | bc -l -set OPTS -Z -P __STREAMS__ -l 1M -i1 -O__OMIT__ --pacing-timer 1000000 +set OPTS -Z -P __STREAMS__ -l 1M -O__OMIT__ --pacing-timer 1000000 =20 info Throughput in Gbps, latency in =C2=B5s, one thread at __FREQ__ GHz, __S= TREAMS__ streams report passt tcp __THREADS__ __FREQ__ diff --git a/test/perf/passt_udp b/test/perf/passt_udp index 6bd86ff..fd2ddc1 100644 --- a/test/perf/passt_udp +++ b/test/perf/passt_udp @@ -38,7 +38,7 @@ hout FREQ [ -n "__FREQ_CPUFREQ__" ] && echo __FREQ_CPUFREQ_= _ || echo __FREQ_PROC set THREADS 4 set STREAMS 1 set TIME 10 -set OPTS -u -i1 -P __STREAMS__ --pacing-timer 1000 +set OPTS -u -P __STREAMS__ --pacing-timer 1000 =20 info Throughput in Gbps, latency in =C2=B5s, __THREADS__ threads at __FREQ__= GHz, one stream each =20 diff --git a/test/perf/pasta_tcp b/test/perf/pasta_tcp index 44c5e54..1847c83 100644 --- a/test/perf/pasta_tcp +++ b/test/perf/pasta_tcp @@ -25,7 +25,7 @@ set THREADS 2 set STREAMS 2 set TIME 10 hout OMIT echo __TIME__ / 6 | bc -l -set OPTS -Z -w 4M -l 1M -P __STREAMS__ -i1 -O__OMIT__ --pacing-timer 10000 +set OPTS -Z -w 4M -l 1M -P __STREAMS__ -O__OMIT__ --pacing-timer 10000 =20 hout FREQ_PROCFS (echo "scale=3D1"; sed -n 's/cpu MHz.*: \([0-9]*\)\..*$/(\1= +10^2\/2)\/10^3/p' /proc/cpuinfo) | bc -l | head -n1 hout FREQ_CPUFREQ (echo "scale=3D1"; printf '( %i + 10^5 / 2 ) / 10^6\n' $(c= at /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq) ) | bc -l diff --git a/test/perf/pasta_udp b/test/perf/pasta_udp index abb88b0..27ea724 100644 --- a/test/perf/pasta_udp +++ b/test/perf/pasta_udp @@ -23,7 +23,7 @@ hout FREQ [ -n "__FREQ_CPUFREQ__" ] && echo __FREQ_CPUFREQ_= _ || echo __FREQ_PROC set THREADS 1 set STREAMS 4 set TIME 10 -set OPTS -u -i1 -P __STREAMS__ +set OPTS -u -P __STREAMS__ =20 info Throughput in Gbps, latency in =C2=B5s, one thread at __FREQ__ GHz, __S= TREAMS__ streams =20 --=20 2.35.1 --===============8323352275459241808==--