[PATCH 0/3] timers & RCU: Fix TREE03 stalls

Frederic Weisbecker posted 3 patches 2 years ago
include/linux/hrtimer.h |  3 ++-
kernel/rcu/tree.c       | 34 +++++++++++++++++++++++++++++++++-
kernel/rcu/tree_exp.h   |  8 +++-----
kernel/time/hrtimer.c   |  3 +++
4 files changed, 41 insertions(+), 7 deletions(-)
[PATCH 0/3] timers & RCU: Fix TREE03 stalls
Posted by Frederic Weisbecker 2 years ago
5c0930ccaad5 ("hrtimers: Push pending hrtimers away from outgoing CPU earlier")
has introduced an issue with RCU. This is a proposal to solve the
situation after realizing that fixing that on the timers side wouldn't
be pretty to say the least.

Oh and the last patch is absolutely irrelevant to the issue...

Frederic Weisbecker (3):
  hrtimer: Report offline hrtimer enqueue
  rcu: Defer RCU kthreads wakeup when CPU is dying
  rcu/exp: Remove full barrier upon main thread wakeup

 include/linux/hrtimer.h |  3 ++-
 kernel/rcu/tree.c       | 34 +++++++++++++++++++++++++++++++++-
 kernel/rcu/tree_exp.h   |  8 +++-----
 kernel/time/hrtimer.c   |  3 +++
 4 files changed, 41 insertions(+), 7 deletions(-)

-- 
2.42.1
Re: [PATCH 0/3] timers & RCU: Fix TREE03 stalls
Posted by Paul E. McKenney 2 years ago
On Tue, Dec 19, 2023 at 12:19:13AM +0100, Frederic Weisbecker wrote:
> 5c0930ccaad5 ("hrtimers: Push pending hrtimers away from outgoing CPU earlier")
> has introduced an issue with RCU. This is a proposal to solve the
> situation after realizing that fixing that on the timers side wouldn't
> be pretty to say the least.
> 
> Oh and the last patch is absolutely irrelevant to the issue...

I pulled all three in and started testing.

That last one will need some careful review, but you knew that already.  ;-)

							Thanx, Paul

> Frederic Weisbecker (3):
>   hrtimer: Report offline hrtimer enqueue
>   rcu: Defer RCU kthreads wakeup when CPU is dying
>   rcu/exp: Remove full barrier upon main thread wakeup
> 
>  include/linux/hrtimer.h |  3 ++-
>  kernel/rcu/tree.c       | 34 +++++++++++++++++++++++++++++++++-
>  kernel/rcu/tree_exp.h   |  8 +++-----
>  kernel/time/hrtimer.c   |  3 +++
>  4 files changed, 41 insertions(+), 7 deletions(-)
> 
> -- 
> 2.42.1
>