Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2021-01-22 Thread Paul E. McKenney
On Fri, Jan 22, 2021 at 09:31:37AM +0100, Peter Zijlstra wrote: > On Thu, Jan 21, 2021 at 04:20:12PM -0800, Paul E. McKenney wrote: > > > > --- > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > > index 368749008ae8..2c8d4c3e341e 100644 > > > --- a/kernel/rcu/tree.c > > > +++

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2021-01-22 Thread Peter Zijlstra
On Thu, Jan 21, 2021 at 04:20:12PM -0800, Paul E. McKenney wrote: > > --- > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > index 368749008ae8..2c8d4c3e341e 100644 > > --- a/kernel/rcu/tree.c > > +++ b/kernel/rcu/tree.c > > @@ -445,7 +445,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2021-01-21 Thread Paul E. McKenney
On Thu, Jan 21, 2021 at 05:56:53PM +0100, Peter Zijlstra wrote: > On Wed, May 27, 2020 at 07:12:36PM +0200, Peter Zijlstra wrote: > > Subject: rcu: Allow for smp_call_function() running callbacks from idle > > > > Current RCU hard relies on smp_call_function() callbacks running from > > interrupt

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2021-01-21 Thread Peter Zijlstra
On Wed, May 27, 2020 at 07:12:36PM +0200, Peter Zijlstra wrote: > Subject: rcu: Allow for smp_call_function() running callbacks from idle > > Current RCU hard relies on smp_call_function() callbacks running from > interrupt context. A pending optimization is going to break that, it > will allow

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2020-05-29 Thread Frederic Weisbecker
On Tue, May 26, 2020 at 06:11:01PM +0200, Peter Zijlstra wrote: > +void flush_smp_call_function_from_idle(void) > +{ > + unsigned long flags; > + > + if (llist_empty(this_cpu_ptr(_single_queue))) > + return; Now it seems weird that sched_ttwu_pending() didn't have that

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2020-05-27 Thread Joel Fernandes
On Wed, May 27, 2020 at 12:39:14PM -0700, Paul E. McKenney wrote: > On Wed, May 27, 2020 at 07:12:36PM +0200, Peter Zijlstra wrote: > > On Wed, May 27, 2020 at 06:35:43PM +0200, Peter Zijlstra wrote: > > > Right, I went though them, didn't find anything obvious amiss. OK, let > > > me do a nicer

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2020-05-27 Thread Paul E. McKenney
On Wed, May 27, 2020 at 07:12:36PM +0200, Peter Zijlstra wrote: > On Wed, May 27, 2020 at 06:35:43PM +0200, Peter Zijlstra wrote: > > Right, I went though them, didn't find anything obvious amiss. OK, let > > me do a nicer patch. > > something like so then? > > --- > Subject: rcu: Allow for

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2020-05-27 Thread Peter Zijlstra
On Wed, May 27, 2020 at 06:35:43PM +0200, Peter Zijlstra wrote: > Right, I went though them, didn't find anything obvious amiss. OK, let > me do a nicer patch. something like so then? --- Subject: rcu: Allow for smp_call_function() running callbacks from idle Current RCU hard relies on

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2020-05-27 Thread Peter Zijlstra
On Wed, May 27, 2020 at 08:56:56AM -0700, Paul E. McKenney wrote: > On Wed, May 27, 2020 at 12:15:13PM +0200, Peter Zijlstra wrote: > > At first glance, something like the below could work. But obviously I > > might have overlooked something more subtle than a brick :-) > > This can work, but

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2020-05-27 Thread Paul E. McKenney
On Wed, May 27, 2020 at 12:15:13PM +0200, Peter Zijlstra wrote: > On Wed, May 27, 2020 at 11:56:45AM +0200, Peter Zijlstra wrote: > > > This is rcu_is_cpu_rrupt_from_idle()'s lockdep_assert_in_irq() tripping > > up (it's comment is obviously a bit antiquated). > > > > Now, if I read that code

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2020-05-27 Thread Peter Zijlstra
On Wed, May 27, 2020 at 11:56:45AM +0200, Peter Zijlstra wrote: > This is rcu_is_cpu_rrupt_from_idle()'s lockdep_assert_in_irq() tripping > up (it's comment is obviously a bit antiquated). > > Now, if I read that code correctly, it actually relies on > rcu_irq_enter() and thus really wants to be

Re: [RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2020-05-27 Thread Peter Zijlstra
On Tue, May 26, 2020 at 06:11:01PM +0200, Peter Zijlstra wrote: > Just like the ttwu_queue_remote() IPI, make use of _TIF_POLLING_NRFLAG > to avoid sending IPIs to idle CPUs. > > Signed-off-by: Peter Zijlstra (Intel) > --- > kernel/sched/core.c | 10 ++ > kernel/sched/idle.c |1

[RFC][PATCH 4/7] smp: Optimize send_call_function_single_ipi()

2020-05-26 Thread Peter Zijlstra
Just like the ttwu_queue_remote() IPI, make use of _TIF_POLLING_NRFLAG to avoid sending IPIs to idle CPUs. Signed-off-by: Peter Zijlstra (Intel) --- kernel/sched/core.c | 10 ++ kernel/sched/idle.c |1 + kernel/sched/sched.h |2 ++ kernel/smp.c | 16