public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: passt-dev@passt.top, Stefano Brivio <sbrivio@redhat.com>
Cc: David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCH 4/8] test/perf: Small MTUs for spliced TCP aren't interesting
Date: Mon,  6 Nov 2023 18:08:29 +1100	[thread overview]
Message-ID: <20231106070834.1270986-5-david@gibson.dropbear.id.au> (raw)
In-Reply-To: <20231106070834.1270986-1-david@gibson.dropbear.id.au>

Currently we make TCP throughput measurements for spliced connections with
a number of different MTU values.  However, the results from this aren't
really interesting.

Unlike with tap connections, spliced connections only involve the loopback
interface on host and container, not a "real" external interface.  lo
typically has an MTU of 65535 and there is very little reason to ever
change that.  So, the measurements for smaller MTUs are rarely going to be
relevant.

In addition, the fact that we can offload all the {de,}packetization to the
kernel with splice(2) means that the throughput difference between these
MTUs isn't very great anyway.

Remove the short MTUs and only show spliced throughput for the normal
65535 byte loopback MTU.  This reduces runtime of the performance tests on
my laptop by about 1 minute (out of ~24 minutes).

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 test/perf/pasta_tcp | 53 +--------------------------------------------
 1 file changed, 1 insertion(+), 52 deletions(-)

diff --git a/test/perf/pasta_tcp b/test/perf/pasta_tcp
index a8938c3..3a8ad40 100644
--- a/test/perf/pasta_tcp
+++ b/test/perf/pasta_tcp
@@ -35,39 +35,23 @@ hout	FREQ [ -n "__FREQ_CPUFREQ__" ] && echo __FREQ_CPUFREQ__ || echo __FREQ_PROC
 info	Throughput in Gbps, latency in µs, __THREADS__ threads at __FREQ__ GHz, __STREAMS__ streams each
 report	pasta lo_tcp __THREADS__ __FREQ__
 
-th	MTU 1500B 4000B 16384B 65535B
+th	MTU 65535B
 
 tr	TCP throughput over IPv6: ns to host
 iperf3s	host 100${i}3 __THREADS__
 
-ns	ip link set dev lo mtu 1500
-iperf3	BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 4000
-iperf3	BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 16384
-iperf3	BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 65535
 iperf3	BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__
 bw	__BW__ 15.0 20.0
 
 iperf3k	host
 
 tl	TCP RR latency over IPv6: ns to host
-lat	-
-lat	-
-lat	-
 hostb	tcp_rr --nolog -P 10003 -C 10013 -6
 nsout	LAT tcp_rr --nolog -P 10003 -C 10013 -6 -c -H ::1 | sed -n 's/^throughput=\(.*\)/\1/p'
 hostw
 lat	__LAT__ 150 100
 
 tl	TCP CRR latency over IPv6: ns to host
-lat	-
-lat	-
-lat	-
 hostb	tcp_crr --nolog -P 10003 -C 10013 -6
 nsout	LAT tcp_crr --nolog -P 10003 -C 10013 -6 -c -H ::1 | sed -n 's/^throughput=\(.*\)/\1/p'
 hostw
@@ -77,34 +61,18 @@ lat	__LAT__ 500 350
 tr	TCP throughput over IPv4: ns to host
 iperf3s	host 100${i}3 __THREADS__
 
-ns	ip link set dev lo mtu 1500
-iperf3	BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 4000
-iperf3	BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 16384
-iperf3	BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 65535
 iperf3	BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__
 bw	__BW__ 15.0 20.0
 
 iperf3k	host
 
 tl	TCP RR latency over IPv4: ns to host
-lat	-
-lat	-
-lat	-
 hostb	tcp_rr --nolog -P 10003 -C 10013 -4
 nsout	LAT tcp_rr --nolog -P 10003 -C 10013 -4 -c -H 127.0.0.1 | sed -n 's/^throughput=\(.*\)/\1/p'
 hostw
 lat	__LAT__ 150 100
 
 tl	TCP CRR latency over IPv4: ns to host
-lat	-
-lat	-
-lat	-
 hostb	tcp_crr --nolog -P 10003 -C 10013 -4
 nsout	LAT tcp_crr --nolog -P 10003 -C 10013 -4 -c -H 127.0.0.1 | sed -n 's/^throughput=\(.*\)/\1/p'
 hostw
@@ -113,27 +81,18 @@ lat	__LAT__ 500 350
 tr	TCP throughput over IPv6: host to ns
 iperf3s	ns 100${i}2 __THREADS__
 
-bw	-
-bw	-
-bw	-
 iperf3	BW host ::1 100${i}2 __THREADS__ __TIME__ __OPTS__
 bw	__BW__ 15.0 20.0
 
 iperf3k	ns
 
 tl	TCP RR latency over IPv6: host to ns
-lat	-
-lat	-
-lat	-
 nsb	tcp_rr --nolog -P 10002 -C 10012 -6
 hout	LAT tcp_rr --nolog -P 10002 -C 10012 -6 -c -H ::1 | sed -n 's/^throughput=\(.*\)/\1/p'
 nsw
 lat	__LAT__ 150 100
 
 tl	TCP CRR latency over IPv6: host to ns
-lat	-
-lat	-
-lat	-
 nsb	tcp_crr --nolog -P 10002 -C 10012 -6
 hout	LAT tcp_crr --nolog -P 10002 -C 10012 -6 -c -H ::1 | sed -n 's/^throughput=\(.*\)/\1/p'
 nsw
@@ -143,28 +102,18 @@ lat	__LAT__ 1000 700
 tr	TCP throughput over IPv4: host to ns
 iperf3s	ns 100${i}2 __THREADS__
 
-bw	-
-bw	-
-bw	-
 iperf3	BW host 127.0.0.1 100${i}2 __THREADS__ __TIME__ __OPTS__
 bw	__BW__ 15.0 20.0
 
 iperf3k	ns
 
 tl	TCP RR latency over IPv4: host to ns
-lat	-
-lat	-
-lat	-
 nsb	tcp_rr --nolog -P 10002 -C 10012 -4
 hout	LAT tcp_rr --nolog -P 10002 -C 10012 -4 -c -H 127.0.0.1 | sed -n 's/^throughput=\(.*\)/\1/p'
 nsw
 lat	__LAT__ 150 100
 
 tl	TCP CRR latency over IPv4: host to ns
-lat	-
-lat	-
-lat	-
-sleep	1
 nsb	tcp_crr --nolog -P 10002 -C 10012 -4
 hout	LAT tcp_crr --nolog -P 10002 -C 10012 -4 -c -H 127.0.0.1 | sed -n 's/^throughput=\(.*\)/\1/p'
 nsw
-- 
@@ -35,39 +35,23 @@ hout	FREQ [ -n "__FREQ_CPUFREQ__" ] && echo __FREQ_CPUFREQ__ || echo __FREQ_PROC
 info	Throughput in Gbps, latency in µs, __THREADS__ threads at __FREQ__ GHz, __STREAMS__ streams each
 report	pasta lo_tcp __THREADS__ __FREQ__
 
-th	MTU 1500B 4000B 16384B 65535B
+th	MTU 65535B
 
 tr	TCP throughput over IPv6: ns to host
 iperf3s	host 100${i}3 __THREADS__
 
-ns	ip link set dev lo mtu 1500
-iperf3	BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 4000
-iperf3	BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 16384
-iperf3	BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 65535
 iperf3	BW ns ::1 100${i}3 __THREADS__ __TIME__ __OPTS__
 bw	__BW__ 15.0 20.0
 
 iperf3k	host
 
 tl	TCP RR latency over IPv6: ns to host
-lat	-
-lat	-
-lat	-
 hostb	tcp_rr --nolog -P 10003 -C 10013 -6
 nsout	LAT tcp_rr --nolog -P 10003 -C 10013 -6 -c -H ::1 | sed -n 's/^throughput=\(.*\)/\1/p'
 hostw
 lat	__LAT__ 150 100
 
 tl	TCP CRR latency over IPv6: ns to host
-lat	-
-lat	-
-lat	-
 hostb	tcp_crr --nolog -P 10003 -C 10013 -6
 nsout	LAT tcp_crr --nolog -P 10003 -C 10013 -6 -c -H ::1 | sed -n 's/^throughput=\(.*\)/\1/p'
 hostw
@@ -77,34 +61,18 @@ lat	__LAT__ 500 350
 tr	TCP throughput over IPv4: ns to host
 iperf3s	host 100${i}3 __THREADS__
 
-ns	ip link set dev lo mtu 1500
-iperf3	BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 4000
-iperf3	BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 16384
-iperf3	BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__
-bw	__BW__ 15.0 20.0
-ns	ip link set dev lo mtu 65535
 iperf3	BW ns 127.0.0.1 100${i}3 __THREADS__ __TIME__ __OPTS__
 bw	__BW__ 15.0 20.0
 
 iperf3k	host
 
 tl	TCP RR latency over IPv4: ns to host
-lat	-
-lat	-
-lat	-
 hostb	tcp_rr --nolog -P 10003 -C 10013 -4
 nsout	LAT tcp_rr --nolog -P 10003 -C 10013 -4 -c -H 127.0.0.1 | sed -n 's/^throughput=\(.*\)/\1/p'
 hostw
 lat	__LAT__ 150 100
 
 tl	TCP CRR latency over IPv4: ns to host
-lat	-
-lat	-
-lat	-
 hostb	tcp_crr --nolog -P 10003 -C 10013 -4
 nsout	LAT tcp_crr --nolog -P 10003 -C 10013 -4 -c -H 127.0.0.1 | sed -n 's/^throughput=\(.*\)/\1/p'
 hostw
@@ -113,27 +81,18 @@ lat	__LAT__ 500 350
 tr	TCP throughput over IPv6: host to ns
 iperf3s	ns 100${i}2 __THREADS__
 
-bw	-
-bw	-
-bw	-
 iperf3	BW host ::1 100${i}2 __THREADS__ __TIME__ __OPTS__
 bw	__BW__ 15.0 20.0
 
 iperf3k	ns
 
 tl	TCP RR latency over IPv6: host to ns
-lat	-
-lat	-
-lat	-
 nsb	tcp_rr --nolog -P 10002 -C 10012 -6
 hout	LAT tcp_rr --nolog -P 10002 -C 10012 -6 -c -H ::1 | sed -n 's/^throughput=\(.*\)/\1/p'
 nsw
 lat	__LAT__ 150 100
 
 tl	TCP CRR latency over IPv6: host to ns
-lat	-
-lat	-
-lat	-
 nsb	tcp_crr --nolog -P 10002 -C 10012 -6
 hout	LAT tcp_crr --nolog -P 10002 -C 10012 -6 -c -H ::1 | sed -n 's/^throughput=\(.*\)/\1/p'
 nsw
@@ -143,28 +102,18 @@ lat	__LAT__ 1000 700
 tr	TCP throughput over IPv4: host to ns
 iperf3s	ns 100${i}2 __THREADS__
 
-bw	-
-bw	-
-bw	-
 iperf3	BW host 127.0.0.1 100${i}2 __THREADS__ __TIME__ __OPTS__
 bw	__BW__ 15.0 20.0
 
 iperf3k	ns
 
 tl	TCP RR latency over IPv4: host to ns
-lat	-
-lat	-
-lat	-
 nsb	tcp_rr --nolog -P 10002 -C 10012 -4
 hout	LAT tcp_rr --nolog -P 10002 -C 10012 -4 -c -H 127.0.0.1 | sed -n 's/^throughput=\(.*\)/\1/p'
 nsw
 lat	__LAT__ 150 100
 
 tl	TCP CRR latency over IPv4: host to ns
-lat	-
-lat	-
-lat	-
-sleep	1
 nsb	tcp_crr --nolog -P 10002 -C 10012 -4
 hout	LAT tcp_crr --nolog -P 10002 -C 10012 -4 -c -H 127.0.0.1 | sed -n 's/^throughput=\(.*\)/\1/p'
 nsw
-- 
2.41.0


  parent reply	other threads:[~2023-11-06  7:08 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-06  7:08 [PATCH 0/8] Clean ups and speed ups to benchmarks David Gibson
2023-11-06  7:08 ` [PATCH 1/8] test/perf: Remove stale iperf3c/iperf3s directives David Gibson
2023-11-06  7:08 ` [PATCH 2/8] test/perf: Get iperf3 stats from client side David Gibson
2023-11-06  7:08 ` [PATCH 3/8] test/perf: Start iperf3 server less often David Gibson
2023-11-06  7:08 ` David Gibson [this message]
2023-11-06  7:08 ` [PATCH 5/8] test/perf: Explicitly control UDP packet length, instead of MTU David Gibson
2023-11-06  7:08 ` [PATCH 6/8] test/perf: "MTU" changes in passt_tcp host to guest aren't useful David Gibson
2023-11-06  7:08 ` [PATCH 7/8] test/perf: Remove unnecessary --pacing-timer options David Gibson
2023-11-06  7:08 ` [PATCH 8/8] test/perf: Simplify calculation of "omit" time for TCP throughput David Gibson
2023-11-07 12:45 ` [PATCH 0/8] Clean ups and speed ups to benchmarks Stefano Brivio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231106070834.1270986-5-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --cc=passt-dev@passt.top \
    --cc=sbrivio@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).