From: Pablo Neira Ayuso <pablo@netfilter.org>
To: "Paul E. McKenney" <paulmck@kernel.org>
Cc: netfilter-devel@vger.kernel.org, davem@davemloft.net,
netdev@vger.kernel.org, kuba@kernel.org, pabeni@redhat.com,
edumazet@google.com, fw@strlen.de, horms@kernel.org,
joelagnelf@nvidia.com, josh@joshtriplett.org, boqun@kernel.org,
urezki@gmail.com, rostedt@goodmis.org,
mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com,
qiang.zhang@linux.dev, rcu@vger.kernel.org
Subject: Re: [PATCH nf,v2 1/3] rculist: add list_splice_rcu() for private lists
Date: Wed, 15 Apr 2026 22:25:27 +0200 [thread overview]
Message-ID: <ad_0N6yAOenXeXR7@chamomile> (raw)
In-Reply-To: <9210a276-8158-40f4-b3b5-6431f5f13541@paulmck-laptop>
On Wed, Apr 15, 2026 at 10:39:33AM -0700, Paul E. McKenney wrote:
> On Wed, Apr 15, 2026 at 07:08:44PM +0200, Pablo Neira Ayuso wrote:
> > This patch adds a helper function, list_splice_rcu(), to safely splice
> > a private (non-RCU-protected) list into an RCU-protected list.
> >
> > The function ensures that only the pointer visible to RCU readers
> > (prev->next) is updated using rcu_assign_pointer(), while the rest of
> > the list manipulations are performed with regular assignments, as the
> > source list is private and not visible to concurrent RCU readers.
> >
> > This is useful for moving elements from a private list into a global
> > RCU-protected list, ensuring safe publication for RCU readers.
> > Subsystems with some sort of batching mechanism from userspace can
> > benefit from this new function.
> >
> > The function __list_splice_rcu() has been added for clarity and to
> > follow the same pattern as in the existing list_splice*() interfaces,
> > where there is a check to ensure that that the list to splice is not
> > empty. Note that __list_splice_rcu() has no documentation for this
> > reason.
> >
> > Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
> > ---
> > v2: including comments by Paul McKenney.
> >
> > Except, I have deliberately keep back the suggestion to squash
> > __list_splice_rcu() into list_splice_rcu(), I instead removed
> > the documentation for __list_splice_rcu(). I am looking
> > at other existing list_splice*() function in list.h and rculist.h
> > to get this aligned with __list_splice(), which also has no users
> > in the tree and no documentation. I find it easier to read with
> > __list_splice(), but if this explaination is not sound so...
> >
> > @Paul: I can post v3 squashing __list_splice_rcu(), just let me
> > know.
>
> Removing the comment addresses most of my concerns. I do have a slight
> but not overwhelming preference for the squashed version, but either way:
>
> Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
>
> Or if you want this to go in via RCU, please let us know. My guess is
> that it would be easier for you to take it in with the code using it.
I'd prefer to take it through nf.git, I need this as a fix for an
invalid use of list_splice() on a RCU-protected list.
Thanks for your quick review Paul!
prev parent reply other threads:[~2026-04-15 20:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-15 17:08 [PATCH nf,v2 1/3] rculist: add list_splice_rcu() for private lists Pablo Neira Ayuso
2026-04-15 17:39 ` Paul E. McKenney
2026-04-15 20:25 ` Pablo Neira Ayuso [this message]
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=ad_0N6yAOenXeXR7@chamomile \
--to=pablo@netfilter.org \
--cc=boqun@kernel.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fw@strlen.de \
--cc=horms@kernel.org \
--cc=jiangshanlai@gmail.com \
--cc=joelagnelf@nvidia.com \
--cc=josh@joshtriplett.org \
--cc=kuba@kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=paulmck@kernel.org \
--cc=qiang.zhang@linux.dev \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=urezki@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox