[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aRdXhE0a-P3Ep1YE@mini-arch>
Date: Fri, 14 Nov 2025 08:23:32 -0800
From: Stanislav Fomichev <stfomichev@...il.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: davem@...emloft.net, netdev@...r.kernel.org, edumazet@...gle.com,
pabeni@...hat.com, andrew+netdev@...n.ch, horms@...nel.org,
shuah@...nel.org, ast@...nel.org, hawk@...nel.org,
john.fastabend@...il.com, sdf@...ichev.me,
linux-kselftest@...r.kernel.org
Subject: Re: [PATCH net-next] selftests: drv-net: xdp: make the XDP qstats
tests less flaky
On 11/13, Jakub Kicinski wrote:
> The XDP qstats tests send 2k packets over a single socket.
> Looks like when netdev CI is busy running those tests in QEMU
> occasionally flakes. The target doesn't get to run at all
> before all 2000 packets are sent.
>
> Lower the number of packets to 1000 and reopen the socket
> every 50 packets, to give RSS a chance to spread the packets
> to multiple queues.
>
> For the netdev CI testing either lowering the count or using
> multiple sockets is enough, but let's do both for extra resiliency.
>
> Signed-off-by: Jakub Kicinski <kuba@...nel.org>
> ---
> CC: shuah@...nel.org
> CC: ast@...nel.org
> CC: hawk@...nel.org
> CC: john.fastabend@...il.com
> CC: sdf@...ichev.me
> CC: linux-kselftest@...r.kernel.org
> ---
> tools/testing/selftests/drivers/net/xdp.py | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/tools/testing/selftests/drivers/net/xdp.py b/tools/testing/selftests/drivers/net/xdp.py
> index a148004e1c36..834a37ae7d0d 100755
> --- a/tools/testing/selftests/drivers/net/xdp.py
> +++ b/tools/testing/selftests/drivers/net/xdp.py
> @@ -687,9 +687,12 @@ from lib.py import ip, bpftool, defer
> "/dev/null"
> # Listener runs on "remote" in case of XDP_TX
> rx_host = cfg.remote if act == XDPAction.TX else None
> - # We want to spew 2000 packets quickly, bash seems to do a good enough job
> - tx_udp = f"exec 5<>/dev/udp/{cfg.addr}/{port}; " \
> - "for i in `seq 2000`; do echo a >&5; done; exec 5>&-"
> + # We want to spew 1000 packets quickly, bash seems to do a good enough job
> + # Each reopening of the socket gives us a differenot local port (for RSS)
> + tx_udp = "for _ in `seq 20`; do " \
> + f"exec 5<>/dev/udp/{cfg.addr}/{port}; " \
> + "for i in `seq 50`; do echo a >&5; done; " \
> + "exec 5>&-; done"
TIL about bash's /dev/udp, interesting..
Acked-by: Stanislav Fomichev <sdf@...ichev.me>
Powered by blists - more mailing lists