linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH rcu 0/3] Expedited-grace-period updates for v5.18
@ 2022-02-04 22:54 Paul E. McKenney
  2022-02-04 22:55 ` [PATCH rcu 1/3] rcu/exp: Fix check for idle context in rcu_exp_handler Paul E. McKenney
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Paul E. McKenney @ 2022-02-04 22:54 UTC (permalink / raw)
  To: rcu; +Cc: linux-kernel, kernel-team, rostedt

Hello!

This series provides updates for RCU expedited grace periods:

1.	Fix check for idle context in rcu_exp_handler, courtesy of
	Neeraj Upadhyay.

2.	Mark ->expmask access in synchronize_rcu_expedited_wait().

3.	Allow expedited RCU grace periods on incoming CPUs.

						Thanx, Paul

------------------------------------------------------------------------

 b/kernel/rcu/tree_exp.h |    2 +-
 kernel/rcu/tree_exp.h   |   17 ++++++++++++-----
 2 files changed, 13 insertions(+), 6 deletions(-)

^ permalink raw reply	[flat|nested] 19+ messages in thread
* Re: [PATCH rcu 3/3] rcu: Allow expedited RCU grace periods on incoming CPUs
@ 2022-02-09 23:38 Frederic Weisbecker
  2022-02-14 16:44 ` Paul E. McKenney
  0 siblings, 1 reply; 19+ messages in thread
From: Frederic Weisbecker @ 2022-02-09 23:38 UTC (permalink / raw)
  To: paulmck
  Cc: kernel-team, linux-kernel, quic_mojha, rcu, rostedt, tj, Peter Zijlstra

On Fri, Feb 04, 2022 at 02:55:07PM -0800, Paul E. McKenney wrote:
> Although it is usually safe to invoke synchronize_rcu_expedited() from a
> preemption-enabled CPU-hotplug notifier, if it is invoked from a notifier
> between CPUHP_AP_RCUTREE_ONLINE and CPUHP_AP_ACTIVE, its attempts to
> invoke a workqueue handler will hang due to RCU waiting on a CPU that
> the scheduler is not paying attention to.  This commit therefore expands
> use of the existing workqueue-independent synchronize_rcu_expedited()
> from early boot to also include CPUs that are being hotplugged.
> 
> Link: https://lore.kernel.org/lkml/7359f994-8aaf-3cea-f5cf-c0d3929689d6@quicinc.com/
> Reported-by: Mukesh Ojha <quic_mojha@quicinc.com>
> Cc: Tejun Heo <tj@kernel.org>
> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>

I'm surprised by this scheduler behaviour.

Since sched_cpu_activate() hasn't been called yet,
rq->balance_callback = balance_push_callback. As a result, balance_push() should
be called at the end of schedule() when the workqueue is picked as the next task.
Then eventually the workqueue should be immediately preempted by the stop task to
be migrated elsewhere.

So I must be missing something. For the fun, I booted the following and it
didn't produce any issue:

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 80faf2273ce9..b1e74a508881 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -4234,6 +4234,8 @@ int rcutree_online_cpu(unsigned int cpu)
 
 	// Stop-machine done, so allow nohz_full to disable tick.
 	tick_dep_clear(TICK_DEP_BIT_RCU);
+	if (cpu != 0)
+		synchronize_rcu_expedited();
 	return 0;
 }
 

^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2022-02-18 18:09 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-04 22:54 [PATCH rcu 0/3] Expedited-grace-period updates for v5.18 Paul E. McKenney
2022-02-04 22:55 ` [PATCH rcu 1/3] rcu/exp: Fix check for idle context in rcu_exp_handler Paul E. McKenney
2022-02-04 22:55 ` [PATCH rcu 2/3] rcu: Mark ->expmask access in synchronize_rcu_expedited_wait() Paul E. McKenney
2022-02-04 22:55 ` [PATCH rcu 3/3] rcu: Allow expedited RCU grace periods on incoming CPUs Paul E. McKenney
2022-02-08 18:56   ` Tejun Heo
2022-02-09 18:23   ` Mukesh Ojha
2022-02-09 22:06     ` Paul E. McKenney
2022-02-11 18:44       ` Mukesh Ojha
2022-02-11 22:14         ` Paul E. McKenney
2022-02-12  8:47           ` Mukesh Ojha
2022-02-12 11:28             ` Neeraj Upadhyay
2022-02-12 13:56               ` Mukesh Ojha
2022-02-09 23:38 Frederic Weisbecker
2022-02-14 16:44 ` Paul E. McKenney
2022-02-15 14:28   ` Mukesh Ojha
     [not found]   ` <f8cff19c-5e8f-a7ed-c2ff-49a264b4e342@quicinc.com>
2022-02-15 17:39     ` Paul E. McKenney
2022-02-17 16:13       ` Mukesh Ojha
2022-02-18 17:33       ` Mukesh Ojha
2022-02-18 18:09         ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).