Subject: Re: [PATCH net] selftests: tc_actions: don't dump 2MB of \0 to stdout

From: Simon Horman <[email-masked]>
Date: Mon, 16 Feb 2026 12:11:40 +0000

On Fri, Feb 13, 2026 at 07:51:59PM -0800, Jakub Kicinski wrote:
> Since we started running selftests in NIPA we have been seeing
> tc_actions.sh generate a soft lockup warning on ~20% of the runs.
> On the pre-netdev foundation setup it was actually a missed irq
> splat from the console. Now it's either that or a lockup.
> 
> I initially suspected a socket locking issue since the test
> is exercising local loopback with act_mirred.
> After hours of staring at this I noticed in strace that ncat

Ouch!

> when -o $file is specified _both_ saves the output to the file
> and still prints it to stdout. Because the file being sent
> is constructed with:
> 
>   dd conv=sparse status=none if=/dev/zero bs=1M count=2 of=$mirred
>                                 ^^^^^^^^^
> 
> the data printed is all \0. Most terminals don't display nul
> characters (and neither does vng output capture save them).
> But QEMU's serial console still has to poke them thru which
> is very slow and causes the lockup (if the file is >600kB).
> 
> Replace the '-o $file' with '> $file'. This speeds the test up
> from 2m20s to 18s on debug kernels, and prevents the warnings.
> 
> Fixes: ca22da2fbd69 ("act_mirred: use the backlog for nested calls to mirred ingress")
> Signed-off-by: Jakub Kicinski <[email-masked]>

I exercise this by running ncat locally on Fedora 43.

$ ncat --version
Ncat: Version 7.92 ( https://nmap.org/ncat )

And confirmed the behaviour you describe.

Reviewed-by: Simon Horman <[email-masked]>