public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel•org>
To: Joe Damato <jdamato@fastly•com>
Cc: davem@davemloft•net, netdev@vger•kernel.org, edumazet@google•com,
	pabeni@redhat•com, andrew+netdev@lunn•ch, horms@kernel•org,
	shuah@kernel•org, hawk@kernel•org, petrm@nvidia•com,
	willemdebruijn.kernel@gmail•com
Subject: Re: [PATCH net-next 2/4] selftests: drv-net: add a way to wait for a local process
Date: Wed, 19 Feb 2025 14:48:44 -0800	[thread overview]
Message-ID: <20250219144844.1206b1fc@kernel.org> (raw)
In-Reply-To: <Z7Yld21sv_Ip3gQx@LQ3V64L9R2>

On Wed, 19 Feb 2025 13:39:51 -0500 Joe Damato wrote:
> On Tue, Feb 18, 2025 at 03:05:12PM -0800, Jakub Kicinski wrote:
> > On Tue, 18 Feb 2025 16:52:39 -0500 Joe Damato wrote:  
> > Then we can run the helper with no arguments, just to check if af_xdp
> > is supported. If that returns 0 we go on, otherwise we print your nice
> > error.
> > 
> > LMK if that sounds good, assuming a respin is needed I can add that :)  
> 
> That seems to fine; if you do decide to go this route in a re-spin,
> would you mind also adding a "\n" in the fprintf after "ifindex
> queue_id" ? Sorry I missed that on my initial implementation.
> 
> That missing \n was mentioned by Kurt in another thread:

Will do!

> > > Separately: I retested this on a machine with XDP enabled, both with
> > > and without NETIF set and the test seems to hang because the helper
> > > is blocked on:
> > > 
> > > read(STDIN_FILENO, &byte, 1);
> > > 
> > > according to strace:
> > > 
> > > strace: Process 14198 attached
> > > 21:50:02 read(0,
> > > 
> > > So, I think this patch needs to be tweaked to write a byte to the
> > > helper so it exits (I assume before the defer was killing it?) or
> > > the helper needs to be modified in way?  
> > 
> > What Python version do you have?   
> 
> Python 3.12.3 (via Ubuntu 24.04.1 LTS).
> 
> I can re-test with a different version using pyenv if you'd like?
> 
> Are there docs which mention which python version tests should be
> compatible with? If so, could you pass along a link? Sorry if I
> missed that.

You're good, sorry, tests are supposed to run on any non-EOL
version of python.

<snip>
> [pid 448278] 18:27:15 kill(448303, SIGTERM) = 0
> [...]
> [pid 448303] 18:27:15 +++ killed by SIGTERM +++
> 
> But pid 448304 is xdp_helper, which is still running and should be
> the one to get the TERM.

Very interesting. I dug deeper into this, and it turns out its shell
dependent. I'm guessing you're using one of the cool shells, I use
bash. bash does a direct exec for "sh -c X", other shells fork first.

I'll add a warning in bkg() for combining shell=True and terminate=True.

> I have no idea why this would be different on your system vs mine.
> Maybe something changed with Python between Python versions?

More digging still necessary here, as NIPA also runs on bash.
So your problem is different than NIPA's.
NIPA runs:

  make -C tools/testing/selftests TARGETS="drivers/net" \
	  TEST_PROGS=queues.py TEST_GEN_PROGS="" run_tests

which runs thru a layer of perl for output prefixing:

	tools/testing/selftests/kselftest/prefix.pl

which in turn send a SIGTTIN when we call read(), and hangs the helper.

> > We shall find out if NIPA agrees with my local system at 4p.  
> 
> Sorry for the noob question, but is there a NIPA url or something I
> can look at to see if this worked / if future tests I submit work?

https://netdev.bots.linux.dev/status.html

With the disclaimer that we discourage people from looking at it. 
It tests everything on  the list combined, we can't support the
corporate "try until CI is green" development model. Not that 
I'd accuse you of such practices :)

  reply	other threads:[~2025-02-19 22:48 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-18 19:50 [PATCH net-next 0/4] selftests: drv-net: improve the queue test for XSK Jakub Kicinski
2025-02-18 19:50 ` [PATCH net-next 1/4] selftests: drv-net: use cfg.rpath() in netlink xsk attr test Jakub Kicinski
2025-02-18 21:24   ` Joe Damato
2025-02-18 19:50 ` [PATCH net-next 2/4] selftests: drv-net: add a way to wait for a local process Jakub Kicinski
2025-02-18 21:10   ` Stanislav Fomichev
2025-02-18 21:21     ` Jakub Kicinski
2025-02-18 21:29       ` Stanislav Fomichev
2025-02-18 21:52   ` Joe Damato
2025-02-18 23:05     ` Jakub Kicinski
2025-02-19  1:37       ` Jakub Kicinski
2025-02-19 18:40         ` Joe Damato
2025-02-19 18:39       ` Joe Damato
2025-02-19 22:48         ` Jakub Kicinski [this message]
2025-02-20 17:45           ` Joe Damato
2025-02-18 19:50 ` [PATCH net-next 3/4] selftests: drv-net: improve the use of ksft helpers in XSK queue test Jakub Kicinski
2025-02-18 21:25   ` Joe Damato
2025-02-18 19:50 ` [PATCH net-next 4/4] selftests: drv-net: rename queues check_xdp to check_xsk Jakub Kicinski
2025-02-18 21:25   ` Joe Damato
2025-02-18 21:29 ` [PATCH net-next 0/4] selftests: drv-net: improve the queue test for XSK Stanislav Fomichev
2025-02-18 21:55 ` Joe Damato

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=20250219144844.1206b1fc@kernel.org \
    --to=kuba@kernel$(echo .)org \
    --cc=andrew+netdev@lunn$(echo .)ch \
    --cc=davem@davemloft$(echo .)net \
    --cc=edumazet@google$(echo .)com \
    --cc=hawk@kernel$(echo .)org \
    --cc=horms@kernel$(echo .)org \
    --cc=jdamato@fastly$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=pabeni@redhat$(echo .)com \
    --cc=petrm@nvidia$(echo .)com \
    --cc=shuah@kernel$(echo .)org \
    --cc=willemdebruijn.kernel@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox