Messages in this thread | | | Subject | Re: [PATCH tip/core/rcu 07/23] rcu: Provide OOM handler to motivate lazy RCU callbacks | From | Peter Zijlstra <> | Date | Thu, 06 Sep 2012 19:46:16 +0200 |
| |
On Thu, 2012-09-06 at 10:41 -0700, Paul E. McKenney wrote: > On Thu, Sep 06, 2012 at 09:52:53AM -0400, Steven Rostedt wrote: > > On Thu, 2012-09-06 at 15:46 +0200, Peter Zijlstra wrote: > > > On Thu, 2012-08-30 at 11:18 -0700, Paul E. McKenney wrote: > > > > + get_online_cpus(); > > > > + for_each_online_cpu(cpu) > > > > + for_each_rcu_flavor(rsp) > > > > + smp_call_function_single(cpu, rcu_oom_notify_cpu, > > > > + rsp, 1); > > > > + put_online_cpus(); > > > > > > I guess blasting IPIs around is better than OOM but still.. do you > > > really need to wait for each cpu individually, or would a construct > > > using on_each_cpu() be possible, or better yet, on_each_cpu_cond()? > > I rejected on_each_cpu_cond() because it disables preemption across > a scan of all CPUs. Probably need to fix that at some point...
It would be rather straight fwd to make a variant that does get_online_cpus() though.. but even then there's smp_call_function() that does a broadcast, avoiding the need to spray individual IPIs and wait for each CPU individually.
| |