From: Joe Damato <jdamato@fastly.com>
To: Paolo Abeni <pabeni@redhat.com>
Cc: netdev@vger.kernel.org, mkarsten@uwaterloo.ca,
skhawaja@google.com, sdf@fomichev.me, bjorn@rivosinc.com,
amritha.nambiar@intel.com, sridhar.samudrala@intel.com,
willemdebruijn.kernel@gmail.com, edumazet@google.com,
Jakub Kicinski <kuba@kernel.org>,
Donald Hunter <donald.hunter@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Jesper Dangaard Brouer <hawk@kernel.org>,
Mina Almasry <almasrymina@google.com>,
Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [net-next v6 6/9] netdev-genl: Support setting per-NAPI config values
Date: Tue, 12 Nov 2024 09:12:29 -0800 [thread overview]
Message-ID: <ZzOMfec9pRhfua-6@LQ3V64L9R2> (raw)
In-Reply-To: <719083c2-e277-447b-b6ea-ca3acb293a03@redhat.com>
On Tue, Nov 12, 2024 at 10:17:40AM +0100, Paolo Abeni wrote:
> On 10/11/24 20:45, Joe Damato wrote:
> > +int netdev_nl_napi_set_doit(struct sk_buff *skb, struct genl_info *info)
> > +{
> > + struct napi_struct *napi;
> > + unsigned int napi_id;
> > + int err;
> > +
> > + if (GENL_REQ_ATTR_CHECK(info, NETDEV_A_NAPI_ID))
> > + return -EINVAL;
> > +
> > + napi_id = nla_get_u32(info->attrs[NETDEV_A_NAPI_ID]);
> > +
> > + rtnl_lock();
> > +
> > + napi = napi_by_id(napi_id);
>
> AFAICS the above causes a RCU splat in the selftests:
>
> https://netdev-3.bots.linux.dev/vmksft-net-dbg/results/856342/61-busy-poll-test-sh/stderr
>
> because napi_by_id() only checks for the RCU lock.
>
> Could you please have a look?
Thanks for letting me know.
I rebuilt my kernel with CONFIG_PROVE_RCU_LIST and a couple other
debugging options and I was able to reproduce the splat you
mentioned.
I took a look and it looks like there might be two things:
- netdev_nl_napi_set_doit needs to call rcu_read_lock /
rcu_read_unlock, which would be a Fixes on the commit in the
series just merged, and
- netdev_nl_napi_get_doit also has the same issue and should be
fixed in a separate commit with its own fixes tag.
If that sounds right to you, I'll propose a short series of 2
patches, 1 to fix each.
Let me know if that sounds OK?
In the meantime, I'm rebuilding a kernel now to ensure my proposed
fix fixes the splat.
next prev parent reply other threads:[~2024-11-12 17:12 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-11 18:44 [net-next v6 0/9] Add support for per-NAPI config via netlink Joe Damato
2024-10-11 18:44 ` [net-next v6 1/9] net: napi: Make napi_defer_hard_irqs per-NAPI Joe Damato
2024-10-11 18:44 ` [net-next v6 2/9] netdev-genl: Dump napi_defer_hard_irqs Joe Damato
2024-10-11 18:44 ` [net-next v6 3/9] net: napi: Make gro_flush_timeout per-NAPI Joe Damato
2024-10-11 18:44 ` [net-next v6 4/9] netdev-genl: Dump gro_flush_timeout Joe Damato
2024-10-11 18:47 ` Eric Dumazet
2024-10-11 18:45 ` [net-next v6 5/9] net: napi: Add napi_config Joe Damato
2024-10-11 18:49 ` Eric Dumazet
2024-11-27 17:43 ` Guenter Roeck
2024-11-27 18:51 ` Joe Damato
2024-11-27 20:00 ` Joe Damato
2024-11-27 22:48 ` Guenter Roeck
2024-11-30 20:45 ` Jakub Kicinski
2024-12-02 17:34 ` Joe Damato
2024-11-27 21:43 ` Guenter Roeck
2024-11-28 1:17 ` Joe Damato
2024-11-28 1:34 ` Guenter Roeck
2024-10-11 18:45 ` [net-next v6 6/9] netdev-genl: Support setting per-NAPI config values Joe Damato
2024-10-11 18:49 ` Eric Dumazet
2024-11-12 9:17 ` Paolo Abeni
2024-11-12 17:12 ` Joe Damato [this message]
2024-10-11 18:45 ` [net-next v6 7/9] bnxt: Add support for persistent NAPI config Joe Damato
2024-10-11 18:45 ` [net-next v6 8/9] mlx5: " Joe Damato
2024-10-11 18:45 ` [net-next v6 9/9] mlx4: Add support for persistent NAPI config to RX CQs Joe Damato
2024-10-15 1:10 ` [net-next v6 0/9] Add support for per-NAPI config via netlink patchwork-bot+netdevbpf
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=ZzOMfec9pRhfua-6@LQ3V64L9R2 \
--to=jdamato@fastly.com \
--cc=almasrymina@google.com \
--cc=amritha.nambiar@intel.com \
--cc=bjorn@rivosinc.com \
--cc=davem@davemloft.net \
--cc=donald.hunter@gmail.com \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mkarsten@uwaterloo.ca \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sdf@fomichev.me \
--cc=skhawaja@google.com \
--cc=sridhar.samudrala@intel.com \
--cc=willemdebruijn.kernel@gmail.com \
--cc=xuanzhuo@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.