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
prev parent 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®