Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > On Tue, 27 Aug 2024 11:00:12 +0200 Florian Westphal wrote: > > The sctp selftest is very slow on debug kernels. > > I think there may be something more going on here? :( > > For reference net-next-2024-08-27--12-00 is when this fix got queued: > > https://netdev.bots.linux.dev/contest.html?executor=vmksft-nf-dbg&test=nft-queue-sh > > Since then we still see occasional flakes. But take a look at > the runtime. If it's happy the test case takes under a minute. > When it's unhappy it times out (after 5 minutes). I'll increase > the timeout to 10 minutes, but 1min vs 5min feels like it may > be getting stuck rather than being slow.. Yes, its stuck. Only reason I could imagine is that there is a 2s delay between starting the nf_queue test prog and the first packet getting sent. That would make the listener exit early and then socat sender would hang. I'll test following tomorrow on an old / slow machine: diff --git a/tools/testing/selftests/net/netfilter/nft_queue.sh b/tools/testing/selftests/net/netfilter/nft_queue.sh --- a/tools/testing/selftests/net/netfilter/nft_queue.sh +++ b/tools/testing/selftests/net/netfilter/nft_queue.sh @@ -39,7 +39,10 @@ TMPFILE2=$(mktemp) TMPFILE3=$(mktemp) TMPINPUT=$(mktemp) -dd conv=sparse status=none if=/dev/zero bs=1M count=200 of="$TMPINPUT" + +COUNT=200 +[ "$KSFT_MACHINE_SLOW" = "yes" ] && COUNT=25 +dd conv=sparse status=none if=/dev/zero bs=1M count=$COUNT of="$TMPINPUT" if ! ip link add veth0 netns "$nsrouter" type veth peer name eth0 netns "$ns1" > /dev/null 2>&1; then echo "SKIP: No virtual ethernet pair device support in kernel" @@ -398,7 +401,7 @@ EOF busywait "$BUSYWAIT_TIMEOUT" sctp_listener_ready "$ns2" - ip netns exec "$nsrouter" ./nf_queue -q 10 -G -t "$timeout" & + ip netns exec "$nsrouter" ./nf_queue -q 10 -G & local nfqpid=$! ip netns exec "$ns1" socat -u STDIN SCTP:10.0.2.99:12345 <"$TMPINPUT" >/dev/null @@ -409,6 +412,7 @@ EOF fi wait "$rpid" && echo "PASS: sctp and nfqueue in forward chain" + kill "$nfqpid" if ! diff -u "$TMPINPUT" "$TMPFILE1" ; then echo "FAIL: lost packets?!" 1>&2 @@ -434,7 +438,7 @@ EOF busywait "$BUSYWAIT_TIMEOUT" sctp_listener_ready "$ns2" - ip netns exec "$ns1" ./nf_queue -q 11 -t "$timeout" & + ip netns exec "$ns1" ./nf_queue -q 11 & local nfqpid=$! ip netns exec "$ns1" socat -u STDIN SCTP:10.0.2.99:12345 <"$TMPINPUT" >/dev/null @@ -446,6 +450,7 @@ EOF # must wait before checking completeness of output file. wait "$rpid" && echo "PASS: sctp and nfqueue in output chain with GSO" + kill "$nfqpid" if ! diff -u "$TMPINPUT" "$TMPFILE1" ; then echo "FAIL: lost packets?!" 1>&2 -- 2.46.0