From: Jakub Kicinski <kuba@kernel•org>
To: Lorenzo Bianconi <lorenzo@kernel•org>
Cc: Tariq Toukan <ttoukan.linux@gmail•com>,
davem@davemloft•net, netdev@vger•kernel.org, edumazet@google•com,
pabeni@redhat•com, ast@kernel•org, daniel@iogearbox•net,
hawk@kernel•org, john.fastabend@gmail•com, tariqt@nvidia•com,
bpf@vger•kernel.org
Subject: Re: [PATCH net] net: xdp: don't call notifiers during driver init
Date: Thu, 16 Mar 2023 14:54:18 -0700 [thread overview]
Message-ID: <20230316145418.3af738c3@kernel.org> (raw)
In-Reply-To: <ZBL3nVZ4LVWUPRva@localhost.localdomain>
On Thu, 16 Mar 2023 12:03:57 +0100 Lorenzo Bianconi wrote:
> > I maybe need to dig deeper, but, it looks strange to still
> > call_netdevice_notifiers in cases > NETREG_REGISTERED.
> >
> > Isn't it problematic to call it with NETREG_UNREGISTERED ?
> >
> > For comparison, netif_set_real_num_tx_queues has this ASSERT_RTNL() only
> > under dev->reg_state == NETREG_REGISTERED || dev->reg_state ==
> > NETREG_UNREGISTERING.
>
> does it make sense to run call_netdevice_notifiers() in xdp_set_features_flag()
> just if dev->reg_state is NETREG_REGISTERED?
I was thinking - we'll adjust it if someone complains, but indeed
the detection is somewhat weak, a call on a dead device but under
rtnl_lock won't warn. Let me just copy what the queue helpers do,
exactly, then.
> Moreover, looking at the code it seems netdev code can run with dev->reg_state
> set to NETREG_UNREGISTERED and without holding RTNL lock, right?
You mean - part of unregistration is done without rtnl lock held?
next prev parent reply other threads:[~2023-03-16 21:54 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-16 0:29 [PATCH net] net: xdp: don't call notifiers during driver init Jakub Kicinski
2023-03-16 5:31 ` John Fastabend
2023-03-16 6:49 ` Tariq Toukan
2023-03-16 11:03 ` Lorenzo Bianconi
2023-03-16 21:54 ` Jakub Kicinski [this message]
2023-03-16 21:59 ` Jakub Kicinski
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=20230316145418.3af738c3@kernel.org \
--to=kuba@kernel$(echo .)org \
--cc=ast@kernel$(echo .)org \
--cc=bpf@vger$(echo .)kernel.org \
--cc=daniel@iogearbox$(echo .)net \
--cc=davem@davemloft$(echo .)net \
--cc=edumazet@google$(echo .)com \
--cc=hawk@kernel$(echo .)org \
--cc=john.fastabend@gmail$(echo .)com \
--cc=lorenzo@kernel$(echo .)org \
--cc=netdev@vger$(echo .)kernel.org \
--cc=pabeni@redhat$(echo .)com \
--cc=tariqt@nvidia$(echo .)com \
--cc=ttoukan.linux@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