From: Frederic Weisbecker <frederic@kernel.org>
To: Puranjay Mohan <puranjay@kernel.org>
Cc: rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-trace-kernel@vger.kernel.org,
"Paul E. McKenney" <paulmck@kernel.org>,
Neeraj Upadhyay <neeraj.upadhyay@kernel.org>,
Joel Fernandes <joelagnelf@nvidia.com>,
Josh Triplett <josh@joshtriplett.org>,
Boqun Feng <boqun@kernel.org>,
Uladzislau Rezki <urezki@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Zqiang <qiang.zhang@linux.dev>,
Masami Hiramatsu <mhiramat@kernel.org>,
Davidlohr Bueso <dave@stgolabs.net>,
Breno Leitao <leitao@debian.org>
Subject: Re: [PATCH v1 08/11] rcu: Wake NOCB rcuog kthreads on expedited grace period completion
Date: Mon, 20 Jul 2026 17:56:54 +0200 [thread overview]
Message-ID: <al5FRi7Sl5FXPjON@localhost.localdomain> (raw)
In-Reply-To: <20260624132356.516959-9-puranjay@kernel.org>
Le Wed, Jun 24, 2026 at 06:23:50AM -0700, Puranjay Mohan a écrit :
> When an expedited grace period completes, rcu_exp_wait_wake() wakes
> waiters on rnp->exp_wq[] but does not notify the NOCB rcuog kthreads. An
> rcuog kthread that is waiting for a grace period sleeps on the leaf
> rcu_node's ->nocb_gp_wq[] with a wait condition based on the grace-period
> state, so without a wakeup, callbacks on offloaded CPUs that could
> benefit from the expedited GP wait until the rcuog kthread wakes for some
> other reason (e.g. the next normal GP or a timer).
>
> Make the rcuog grace-period wait honour expedited GPs and wake it when
> one completes:
>
> - nocb_gp_wait() now records the grace period to wait for as a struct
> rcu_gp_seq (both normal and expedited), tracks the earliest pending
> normal and expedited sequence across the group, and releases the wait
> via poll_state_synchronize_rcu_full() so it wakes for whichever
> completes first. ->nocb_gp_seq is widened to struct rcu_gp_seq
> accordingly.
>
> - rcu_exp_wait_wake() calls the new rcu_nocb_exp_cleanup() on leaf
> nodes, which wakes both ->nocb_gp_wq[0] and ->nocb_gp_wq[1] (the
> expedited sequence does not share parity with the normal ->gp_seq the
> waiter indexed with). Both this path and rcu_nocb_gp_cleanup() use
> the shared rcu_nocb_cleanup_wake() helper, which checks swait_active()
> first; the smp_mb() in rcu_gp_cleanup()/rcu_exp_wait_wake() orders the
> grace-period state update before that check.
>
> A stub rcu_nocb_exp_cleanup() is provided for CONFIG_RCU_NOCB_CPU=n.
>
> Signed-off-by: Puranjay Mohan <puranjay@kernel.org>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
--
Frederic Weisbecker
SUSE Labs
next prev parent reply other threads:[~2026-07-20 15:56 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-24 13:23 [PATCH v1 00/11] RCU: Enable callbacks to benefit from expedited grace periods Puranjay Mohan
2026-06-24 13:23 ` [PATCH v1 01/11] rcu: Rename struct rcu_gp_oldstate to rcu_gp_seq Puranjay Mohan
2026-07-09 11:47 ` Frederic Weisbecker
2026-06-24 13:23 ` [PATCH v1 02/11] rcu/segcblist: Add SRCU and Tasks RCU wrapper functions Puranjay Mohan
2026-07-09 11:51 ` Frederic Weisbecker
2026-06-24 13:23 ` [PATCH v1 03/11] rcu/segcblist: Factor out rcu_segcblist_advance_compact() helper Puranjay Mohan
2026-07-09 13:21 ` Frederic Weisbecker
2026-06-24 13:23 ` [PATCH v1 04/11] rcu/segcblist: Track segment grace periods with struct rcu_gp_seq Puranjay Mohan
2026-07-09 13:33 ` Frederic Weisbecker
2026-06-24 13:23 ` [PATCH v1 05/11] rcu: Add RCU_GET_STATE_NOT_TRACKED for subsystems without expedited GPs Puranjay Mohan
2026-07-09 13:48 ` Frederic Weisbecker
2026-06-24 13:23 ` [PATCH v1 06/11] rcu: Enable RCU callbacks to benefit from expedited grace periods Puranjay Mohan
2026-07-09 13:58 ` Frederic Weisbecker
2026-07-09 15:36 ` Puranjay Mohan
2026-07-10 13:58 ` Frederic Weisbecker
2026-07-14 18:48 ` Paul E. McKenney
2026-07-20 14:22 ` Frederic Weisbecker
2026-07-20 16:55 ` Paul E. McKenney
2026-07-21 12:06 ` Frederic Weisbecker
2026-06-24 13:23 ` [PATCH v1 07/11] rcu: Update comments for gp_seq and expedited GP tracking Puranjay Mohan
2026-07-20 14:56 ` Frederic Weisbecker
2026-06-24 13:23 ` [PATCH v1 08/11] rcu: Wake NOCB rcuog kthreads on expedited grace period completion Puranjay Mohan
2026-07-20 15:56 ` Frederic Weisbecker [this message]
2026-06-24 13:23 ` [PATCH v1 09/11] rcu: Detect expedited grace period completion in rcu_pending() Puranjay Mohan
2026-07-21 12:45 ` Frederic Weisbecker
2026-07-21 14:32 ` Paul E. McKenney
2026-06-24 13:23 ` [PATCH v1 10/11] rcu: Advance callbacks for expedited GP completion in rcu_core() Puranjay Mohan
2026-07-21 14:35 ` Frederic Weisbecker
2026-07-21 15:06 ` Puranjay Mohan
2026-06-24 13:23 ` [PATCH v1 11/11] rcuscale: Add concurrent expedited GP threads for callback scaling tests Puranjay Mohan
2026-07-20 18:02 ` [PATCH v1 00/11] RCU: Enable callbacks to benefit from expedited grace periods Paul E. McKenney
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=al5FRi7Sl5FXPjON@localhost.localdomain \
--to=frederic@kernel.org \
--cc=boqun@kernel.org \
--cc=dave@stgolabs.net \
--cc=jiangshanlai@gmail.com \
--cc=joelagnelf@nvidia.com \
--cc=josh@joshtriplett.org \
--cc=leitao@debian.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=neeraj.upadhyay@kernel.org \
--cc=paulmck@kernel.org \
--cc=puranjay@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 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.