mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Uladzislau Rezki <urezki@gmail.com>
To: Frederic Weisbecker <frederic@kernel.org>
Cc: "Paul E. McKenney" <paulmck@kernel.org>,
	rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
	kernel-team@meta.com, rostedt@goodmis.org,
	kernel test robot <oliver.sang@intel.com>
Subject: Re: [PATCH rcu 2/2] rcu/nocb: Fix rcuog wake-up from offline softirq
Date: Sat, 14 Dec 2024 17:16:27 +0100	[thread overview]
Message-ID: <Z12vW37q35hvP5n6@pc636> (raw)
In-Reply-To: <Z1y-LbA1UFLb314l@pavilion.home>

On Sat, Dec 14, 2024 at 12:07:25AM +0100, Frederic Weisbecker wrote:
> Le Thu, Dec 12, 2024 at 10:42:14AM -0800, Paul E. McKenney a écrit :
> > From: Frederic Weisbecker <frederic@kernel.org>
> > 
> > After a CPU has set itself offline and before it eventually calls
> > rcutree_report_cpu_dead(), there are still opportunities for callbacks
> > to be enqueued, for example from an IRQ. When that happens on NOCB, the
> > rcuog wake-up is deferred through an IPI to an online CPU in order not
> > to call into the scheduler and risk arming the RT-bandwidth after
> > hrtimers have been migrated out and disabled.
> > 
> > But performing a synchronized IPI from an IRQ is buggy as reported in
> > the following scenario:
> > 
> > 	WARNING: CPU: 1 PID: 26 at kernel/smp.c:633 smp_call_function_single
> > 	Modules linked in: rcutorture torture
> > 	CPU: 1 UID: 0 PID: 26 Comm: migration/1 Not tainted 6.11.0-rc1-00012-g9139f93209d1 #1
> > 	Stopper: multi_cpu_stop+0x0/0x320 <- __stop_cpus+0xd0/0x120
> > 	RIP: 0010:smp_call_function_single
> > 	<IRQ>
> > 	swake_up_one_online
> > 	__call_rcu_nocb_wake
> > 	__call_rcu_common
> > 	? rcu_torture_one_read
> > 	call_timer_fn
> > 	__run_timers
> > 	run_timer_softirq
> > 	handle_softirqs
> > 	irq_exit_rcu
> > 	? tick_handle_periodic
> > 	sysvec_apic_timer_interrupt
> > 	</IRQ>
> > 
> > The periodic tick must be shutdown when the CPU is offline, just like is
> > done for oneshot tick. This must be fixed but this is not enough:
> > softirqs can happen on any hardirq tail and reproduce the above scenario.
> > 
> > Fix this with introducing a special deferred rcuog wake up mode when the
> > CPU is offline. This deferred wake up doesn't arm any timer and simply
> > wait for rcu_report_cpu_dead() to be called in order to flush any
> > pending rcuog wake up.
> > 
> > Reported-by: kernel test robot <oliver.sang@intel.com>
> > Closes: https://lore.kernel.org/oe-lkp/202409231644.4c55582d-lkp@intel.com
> > Fixes: 9139f93209d1 ("rcu/nocb: Fix RT throttling hrtimer armed from offline CPU")
> > Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
> > Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
> 
> You can drop this patch, it has been replaced with another version upstream.
> 
Dropped. Thank you!

--
Uladzislau Rezki

      reply	other threads:[~2024-12-14 16:16 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-12 18:42 [PATCH rcu 0/2] No-CB changes for v6.14 Paul E. McKenney
2024-12-12 18:42 ` [PATCH rcu 1/2] rcu/nocb: Use switch/case on NOCB timer state machine Paul E. McKenney
2024-12-13 23:08   ` Frederic Weisbecker
2024-12-13 23:29     ` Paul E. McKenney
2024-12-14 16:20       ` Uladzislau Rezki
2024-12-12 18:42 ` [PATCH rcu 2/2] rcu/nocb: Fix rcuog wake-up from offline softirq Paul E. McKenney
2024-12-13 23:07   ` Frederic Weisbecker
2024-12-14 16:16     ` Uladzislau Rezki [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=Z12vW37q35hvP5n6@pc636 \
    --to=urezki@gmail.com \
    --cc=frederic@kernel.org \
    --cc=kernel-team@meta.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oliver.sang@intel.com \
    --cc=paulmck@kernel.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /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

all inboxes | Powered by JetHome®