Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-11 Thread Paul E. McKenney
On Mon, Aug 11, 2014 at 01:57:06PM +0200, Peter Zijlstra wrote: > On Sun, Aug 10, 2014 at 08:30:48PM -0700, Paul E. McKenney wrote: > > On Sun, Aug 10, 2014 at 10:14:25AM +0200, Peter Zijlstra wrote: > > > > want want want, I want a damn pony but somehow I'm not getting one. Why > > > are they

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-11 Thread Peter Zijlstra
On Sun, Aug 10, 2014 at 08:30:48PM -0700, Paul E. McKenney wrote: > On Sun, Aug 10, 2014 at 10:14:25AM +0200, Peter Zijlstra wrote: > > want want want, I want a damn pony but somehow I'm not getting one. Why > > are they getting this? > > We can only be glad that my daughters' old My Little Pony

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-11 Thread Peter Zijlstra
On Sun, Aug 10, 2014 at 08:30:48PM -0700, Paul E. McKenney wrote: On Sun, Aug 10, 2014 at 10:14:25AM +0200, Peter Zijlstra wrote: want want want, I want a damn pony but somehow I'm not getting one. Why are they getting this? We can only be glad that my daughters' old My Little Pony toys

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-11 Thread Paul E. McKenney
On Mon, Aug 11, 2014 at 01:57:06PM +0200, Peter Zijlstra wrote: On Sun, Aug 10, 2014 at 08:30:48PM -0700, Paul E. McKenney wrote: On Sun, Aug 10, 2014 at 10:14:25AM +0200, Peter Zijlstra wrote: want want want, I want a damn pony but somehow I'm not getting one. Why are they getting

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Paul E. McKenney
On Sun, Aug 10, 2014 at 05:00:05PM +0200, Peter Zijlstra wrote: > On Sat, Aug 09, 2014 at 06:38:29PM -0700, Paul E. McKenney wrote: > > On Sat, Aug 09, 2014 at 08:33:55PM +0200, Peter Zijlstra wrote: > > > On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: > > > > > > > > > And on

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Paul E. McKenney
On Sun, Aug 10, 2014 at 10:12:54AM +0200, Peter Zijlstra wrote: > On Sat, Aug 09, 2014 at 06:26:12PM -0700, Paul E. McKenney wrote: > > On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: > > > On Sat, Aug 09, 2014 at 09:01:37AM -0700, Paul E. McKenney wrote: > > > > > That's so wrong

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Paul E. McKenney
On Sun, Aug 10, 2014 at 10:14:25AM +0200, Peter Zijlstra wrote: > On Sat, Aug 09, 2014 at 06:29:24PM -0700, Paul E. McKenney wrote: > > On Sat, Aug 09, 2014 at 08:24:00PM +0200, Peter Zijlstra wrote: > > > On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: > > > > How about we simply

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Paul E. McKenney
On Sun, Aug 10, 2014 at 06:46:33PM +0200, Peter Zijlstra wrote: > On Sun, Aug 10, 2014 at 10:12:54AM +0200, Peter Zijlstra wrote: > > > Steven covered this earlier in this thread. One addition might be "For > > > the same reason that event tracing provides the _rcuidle suffix." > > > > I really

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Peter Zijlstra
On Sun, Aug 10, 2014 at 10:12:54AM +0200, Peter Zijlstra wrote: > > Steven covered this earlier in this thread. One addition might be "For > > the same reason that event tracing provides the _rcuidle suffix." > > I really don't think its worth the cost. Entirely untested, but something like the

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 06:38:29PM -0700, Paul E. McKenney wrote: > On Sat, Aug 09, 2014 at 08:33:55PM +0200, Peter Zijlstra wrote: > > On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: > > > > > > > And on that, you probably should change rcu_sched_rq() to read: > > > > > > > >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 06:29:24PM -0700, Paul E. McKenney wrote: > On Sat, Aug 09, 2014 at 08:24:00PM +0200, Peter Zijlstra wrote: > > On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: > > > How about we simply assume 'idle' code, as defined by the rcu idle hooks > > > are safe? Why

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 06:26:12PM -0700, Paul E. McKenney wrote: > On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: > > On Sat, Aug 09, 2014 at 09:01:37AM -0700, Paul E. McKenney wrote: > > > > That's so wrong its not funny. If you need some abortion to deal with > > > > NOHZ_FULL

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 06:26:12PM -0700, Paul E. McKenney wrote: On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: On Sat, Aug 09, 2014 at 09:01:37AM -0700, Paul E. McKenney wrote: That's so wrong its not funny. If you need some abortion to deal with NOHZ_FULL then put it

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 06:29:24PM -0700, Paul E. McKenney wrote: On Sat, Aug 09, 2014 at 08:24:00PM +0200, Peter Zijlstra wrote: On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: How about we simply assume 'idle' code, as defined by the rcu idle hooks are safe? Why do we

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 06:38:29PM -0700, Paul E. McKenney wrote: On Sat, Aug 09, 2014 at 08:33:55PM +0200, Peter Zijlstra wrote: On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: And on that, you probably should change rcu_sched_rq() to read:

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Peter Zijlstra
On Sun, Aug 10, 2014 at 10:12:54AM +0200, Peter Zijlstra wrote: Steven covered this earlier in this thread. One addition might be For the same reason that event tracing provides the _rcuidle suffix. I really don't think its worth the cost. Entirely untested, but something like the below

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Paul E. McKenney
On Sun, Aug 10, 2014 at 06:46:33PM +0200, Peter Zijlstra wrote: On Sun, Aug 10, 2014 at 10:12:54AM +0200, Peter Zijlstra wrote: Steven covered this earlier in this thread. One addition might be For the same reason that event tracing provides the _rcuidle suffix. I really don't think

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Paul E. McKenney
On Sun, Aug 10, 2014 at 10:14:25AM +0200, Peter Zijlstra wrote: On Sat, Aug 09, 2014 at 06:29:24PM -0700, Paul E. McKenney wrote: On Sat, Aug 09, 2014 at 08:24:00PM +0200, Peter Zijlstra wrote: On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: How about we simply assume

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Paul E. McKenney
On Sun, Aug 10, 2014 at 10:12:54AM +0200, Peter Zijlstra wrote: On Sat, Aug 09, 2014 at 06:26:12PM -0700, Paul E. McKenney wrote: On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: On Sat, Aug 09, 2014 at 09:01:37AM -0700, Paul E. McKenney wrote: That's so wrong its not

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-10 Thread Paul E. McKenney
On Sun, Aug 10, 2014 at 05:00:05PM +0200, Peter Zijlstra wrote: On Sat, Aug 09, 2014 at 06:38:29PM -0700, Paul E. McKenney wrote: On Sat, Aug 09, 2014 at 08:33:55PM +0200, Peter Zijlstra wrote: On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: And on that, you

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:33:55PM +0200, Peter Zijlstra wrote: > On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: > > > > > And on that, you probably should change rcu_sched_rq() to read: > > > > > > this_cpu_inc(rcu_sched_data.passed_quiesce); > > > > > > That avoids

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:24:00PM +0200, Peter Zijlstra wrote: > On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: > > How about we simply assume 'idle' code, as defined by the rcu idle hooks > > are safe? Why do we want to bend over backwards to cover this? > > The thing is, we

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: > On Sat, Aug 09, 2014 at 09:01:37AM -0700, Paul E. McKenney wrote: > > > That's so wrong its not funny. If you need some abortion to deal with > > > NOHZ_FULL then put it under CONFIG_NOHZ_FULL, don't burden the entire > > > world

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Peter Zijlstra
On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: > > > And on that, you probably should change rcu_sched_rq() to read: > > > > this_cpu_inc(rcu_sched_data.passed_quiesce); > > > > That avoids touching the per-cpu data offset. > > Hmmm... Interrupts are disabled, No they

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: > How about we simply assume 'idle' code, as defined by the rcu idle hooks > are safe? Why do we want to bend over backwards to cover this? The thing is, we already have the special rcu trace hooks for tracing inside this rcu-idle

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 09:01:37AM -0700, Paul E. McKenney wrote: > > That's so wrong its not funny. If you need some abortion to deal with > > NOHZ_FULL then put it under CONFIG_NOHZ_FULL, don't burden the entire > > world with it. > > Peter, the polling approach actually -reduces- the

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:44:39AM -0400, Steven Rostedt wrote: > On Sat, 9 Aug 2014 08:15:14 +0200 > Peter Zijlstra wrote: > > > > As for idle tasks, I'm not sure about those, I think that we should say > > NO to anything that would require waking idle CPUs, push the pain to > >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:15:14AM +0200, Peter Zijlstra wrote: > On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: > > On Fri, Aug 08, 2014 at 09:13:26PM +0200, Peter Zijlstra wrote: > > > > > > > > > So I think you can make the entire thing work with > > >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Steven Rostedt
On Sat, 9 Aug 2014 08:15:14 +0200 Peter Zijlstra wrote: > As for idle tasks, I'm not sure about those, I think that we should say > NO to anything that would require waking idle CPUs, push the pain to > ftrace/kprobes, we should _not_ be waking idle cpus. I agree, but I haven't had a chance

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Peter Zijlstra
On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: > On Fri, Aug 08, 2014 at 09:13:26PM +0200, Peter Zijlstra wrote: > > > > > > So I think you can make the entire thing work with > > rcu_note_context_switch(). > > > > If we have the sync thing do something like: > > > > > >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Peter Zijlstra
On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: On Fri, Aug 08, 2014 at 09:13:26PM +0200, Peter Zijlstra wrote: So I think you can make the entire thing work with rcu_note_context_switch(). If we have the sync thing do something like: for_each_task(t)

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Steven Rostedt
On Sat, 9 Aug 2014 08:15:14 +0200 Peter Zijlstra pet...@infradead.org wrote: As for idle tasks, I'm not sure about those, I think that we should say NO to anything that would require waking idle CPUs, push the pain to ftrace/kprobes, we should _not_ be waking idle cpus. I agree, but I

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:15:14AM +0200, Peter Zijlstra wrote: On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: On Fri, Aug 08, 2014 at 09:13:26PM +0200, Peter Zijlstra wrote: So I think you can make the entire thing work with rcu_note_context_switch(). If

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:44:39AM -0400, Steven Rostedt wrote: On Sat, 9 Aug 2014 08:15:14 +0200 Peter Zijlstra pet...@infradead.org wrote: As for idle tasks, I'm not sure about those, I think that we should say NO to anything that would require waking idle CPUs, push the pain to

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 09:01:37AM -0700, Paul E. McKenney wrote: That's so wrong its not funny. If you need some abortion to deal with NOHZ_FULL then put it under CONFIG_NOHZ_FULL, don't burden the entire world with it. Peter, the polling approach actually -reduces- the common-case

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Peter Zijlstra
On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: How about we simply assume 'idle' code, as defined by the rcu idle hooks are safe? Why do we want to bend over backwards to cover this? The thing is, we already have the special rcu trace hooks for tracing inside this rcu-idle

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Peter Zijlstra
On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: And on that, you probably should change rcu_sched_rq() to read: this_cpu_inc(rcu_sched_data.passed_quiesce); That avoids touching the per-cpu data offset. Hmmm... Interrupts are disabled, No they are not,

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: On Sat, Aug 09, 2014 at 09:01:37AM -0700, Paul E. McKenney wrote: That's so wrong its not funny. If you need some abortion to deal with NOHZ_FULL then put it under CONFIG_NOHZ_FULL, don't burden the entire world with it.

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:24:00PM +0200, Peter Zijlstra wrote: On Sat, Aug 09, 2014 at 08:19:20PM +0200, Peter Zijlstra wrote: How about we simply assume 'idle' code, as defined by the rcu idle hooks are safe? Why do we want to bend over backwards to cover this? The thing is, we already

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-09 Thread Paul E. McKenney
On Sat, Aug 09, 2014 at 08:33:55PM +0200, Peter Zijlstra wrote: On Fri, Aug 08, 2014 at 01:58:26PM -0700, Paul E. McKenney wrote: And on that, you probably should change rcu_sched_rq() to read: this_cpu_inc(rcu_sched_data.passed_quiesce); That avoids touching the per-cpu

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-08 Thread Paul E. McKenney
On Fri, Aug 08, 2014 at 09:13:26PM +0200, Peter Zijlstra wrote: > > > So I think you can make the entire thing work with > rcu_note_context_switch(). > > If we have the sync thing do something like: > > > for_each_task(t) { > atomic_inc(_tasks); >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-08 Thread Peter Zijlstra
So I think you can make the entire thing work with rcu_note_context_switch(). If we have the sync thing do something like: for_each_task(t) { atomic_inc(_tasks); atomic_or(>rcu_attention, RCU_TASK); smp_mb__after_atomic();

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-08 Thread Peter Zijlstra
So I think you can make the entire thing work with rcu_note_context_switch(). If we have the sync thing do something like: for_each_task(t) { atomic_inc(rcu_tasks); atomic_or(t-rcu_attention, RCU_TASK); smp_mb__after_atomic();

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-08 Thread Paul E. McKenney
On Fri, Aug 08, 2014 at 09:13:26PM +0200, Peter Zijlstra wrote: So I think you can make the entire thing work with rcu_note_context_switch(). If we have the sync thing do something like: for_each_task(t) { atomic_inc(rcu_tasks);

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Paul E. McKenney
On Thu, Aug 07, 2014 at 06:32:28PM +0200, Peter Zijlstra wrote: > On Thu, Aug 07, 2014 at 08:43:58AM -0700, Paul E. McKenney wrote: > > On Thu, Aug 07, 2014 at 10:49:21AM +0200, Peter Zijlstra wrote: > > > On Tue, Aug 05, 2014 at 02:55:10PM -0700, Paul E. McKenney wrote: > > > > +/* Check for

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Peter Zijlstra
On Thu, Aug 07, 2014 at 08:43:58AM -0700, Paul E. McKenney wrote: > On Thu, Aug 07, 2014 at 10:49:21AM +0200, Peter Zijlstra wrote: > > On Tue, Aug 05, 2014 at 02:55:10PM -0700, Paul E. McKenney wrote: > > > +/* Check for nohz_full CPUs executing in userspace. */ > > > +static void

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Paul E. McKenney
On Thu, Aug 07, 2014 at 10:49:21AM +0200, Peter Zijlstra wrote: > On Tue, Aug 05, 2014 at 02:55:10PM -0700, Paul E. McKenney wrote: > > +/* Check for nohz_full CPUs executing in userspace. */ > > +static void check_no_hz_full_tasks(void) > > +{ > > +#ifdef CONFIG_NO_HZ_FULL > > + int cpu; > > +

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Peter Zijlstra
On Tue, Aug 05, 2014 at 02:55:10PM -0700, Paul E. McKenney wrote: > +/* Check for nohz_full CPUs executing in userspace. */ > +static void check_no_hz_full_tasks(void) > +{ > +#ifdef CONFIG_NO_HZ_FULL > + int cpu; > + struct task_struct *t; > + > + for_each_online_cpu(cpu) { > +

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Paul E. McKenney
On Tue, Aug 05, 2014 at 05:51:01PM -0700, Paul E. McKenney wrote: > On Wed, Aug 06, 2014 at 08:33:29AM +0800, Lai Jiangshan wrote: > > On 08/06/2014 05:55 AM, Paul E. McKenney wrote: > > > On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: > > >> On 08/04/2014 10:56 PM, Peter Zijlstra

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Paul E. McKenney
On Tue, Aug 05, 2014 at 05:51:01PM -0700, Paul E. McKenney wrote: On Wed, Aug 06, 2014 at 08:33:29AM +0800, Lai Jiangshan wrote: On 08/06/2014 05:55 AM, Paul E. McKenney wrote: On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: On 08/04/2014 10:56 PM, Peter Zijlstra wrote:

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Peter Zijlstra
On Tue, Aug 05, 2014 at 02:55:10PM -0700, Paul E. McKenney wrote: +/* Check for nohz_full CPUs executing in userspace. */ +static void check_no_hz_full_tasks(void) +{ +#ifdef CONFIG_NO_HZ_FULL + int cpu; + struct task_struct *t; + + for_each_online_cpu(cpu) { +

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Paul E. McKenney
On Thu, Aug 07, 2014 at 10:49:21AM +0200, Peter Zijlstra wrote: On Tue, Aug 05, 2014 at 02:55:10PM -0700, Paul E. McKenney wrote: +/* Check for nohz_full CPUs executing in userspace. */ +static void check_no_hz_full_tasks(void) +{ +#ifdef CONFIG_NO_HZ_FULL + int cpu; + struct

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Peter Zijlstra
On Thu, Aug 07, 2014 at 08:43:58AM -0700, Paul E. McKenney wrote: On Thu, Aug 07, 2014 at 10:49:21AM +0200, Peter Zijlstra wrote: On Tue, Aug 05, 2014 at 02:55:10PM -0700, Paul E. McKenney wrote: +/* Check for nohz_full CPUs executing in userspace. */ +static void

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-07 Thread Paul E. McKenney
On Thu, Aug 07, 2014 at 06:32:28PM +0200, Peter Zijlstra wrote: On Thu, Aug 07, 2014 at 08:43:58AM -0700, Paul E. McKenney wrote: On Thu, Aug 07, 2014 at 10:49:21AM +0200, Peter Zijlstra wrote: On Tue, Aug 05, 2014 at 02:55:10PM -0700, Paul E. McKenney wrote: +/* Check for nohz_full CPUs

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Paul E. McKenney
On Wed, Aug 06, 2014 at 08:33:29AM +0800, Lai Jiangshan wrote: > On 08/06/2014 05:55 AM, Paul E. McKenney wrote: > > On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: > >> On 08/04/2014 10:56 PM, Peter Zijlstra wrote: > >>> On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Paul E. McKenney
On Wed, Aug 06, 2014 at 08:27:51AM +0800, Lai Jiangshan wrote: > On 08/06/2014 05:55 AM, Paul E. McKenney wrote: > > On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: > >> On 08/04/2014 10:56 PM, Peter Zijlstra wrote: > >>> On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Lai Jiangshan
On 08/06/2014 05:55 AM, Paul E. McKenney wrote: > On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: >> On 08/04/2014 10:56 PM, Peter Zijlstra wrote: >>> On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Lai Jiangshan
On 08/06/2014 05:55 AM, Paul E. McKenney wrote: > On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: >> On 08/04/2014 10:56 PM, Peter Zijlstra wrote: >>> On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Paul E. McKenney
On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: > On 08/04/2014 10:56 PM, Peter Zijlstra wrote: > > On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: > >> On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: > >>> OK, I will bite... > >>> > >>> What kinds

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Paul E. McKenney
On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: On 08/04/2014 10:56 PM, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: OK, I will bite... What kinds of tasks are on a

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Lai Jiangshan
On 08/06/2014 05:55 AM, Paul E. McKenney wrote: On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: On 08/04/2014 10:56 PM, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: OK, I

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Lai Jiangshan
On 08/06/2014 05:55 AM, Paul E. McKenney wrote: On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: On 08/04/2014 10:56 PM, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: OK, I

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Paul E. McKenney
On Wed, Aug 06, 2014 at 08:27:51AM +0800, Lai Jiangshan wrote: On 08/06/2014 05:55 AM, Paul E. McKenney wrote: On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: On 08/04/2014 10:56 PM, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-05 Thread Paul E. McKenney
On Wed, Aug 06, 2014 at 08:33:29AM +0800, Lai Jiangshan wrote: On 08/06/2014 05:55 AM, Paul E. McKenney wrote: On Tue, Aug 05, 2014 at 08:47:55AM +0800, Lai Jiangshan wrote: On 08/04/2014 10:56 PM, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Lai Jiangshan
On 08/04/2014 10:56 PM, Peter Zijlstra wrote: > On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: >> On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: >>> OK, I will bite... >>> >>> What kinds of tasks are on a runqueue, but neither ->on_cpu nor >>> PREEMPT_ACTIVE? >>

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Oleg Nesterov
On 08/04, Paul E. McKenney wrote: > > OK, so I checked out my earlier concern about the group leader going away. > It looks like the group leader now sticks around until all threads in > the group have exited, which is a nice change from the behavior I was > (perhaps incorrectly) recalling! Ah, I

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 03:32:21PM +0200, Oleg Nesterov wrote: > On 08/03, Paul E. McKenney wrote: > > > > On Sun, Aug 03, 2014 at 03:33:18PM +0200, Oleg Nesterov wrote: > > > It seems that you need another global list, a task should be visible on > > > that > > > list until exit_rcu(). > > > >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Oleg Nesterov
On 08/03, Paul E. McKenney wrote: > > On Sun, Aug 03, 2014 at 03:33:18PM +0200, Oleg Nesterov wrote: > > It seems that you need another global list, a task should be visible on that > > list until exit_rcu(). > > As in create another global list that all tasks are added to when created > and then

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Peter Zijlstra
On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: > On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: > > OK, I will bite... > > > > What kinds of tasks are on a runqueue, but neither ->on_cpu nor > > PREEMPT_ACTIVE? > > Userspace tasks, they don't necessarily get

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 06:51:04AM -0700, Paul E. McKenney wrote: > On Mon, Aug 04, 2014 at 03:25:25PM +0200, Oleg Nesterov wrote: > > On 08/03, Paul E. McKenney wrote: > > > > > > On Mon, Aug 04, 2014 at 08:37:37AM +0800, Lai Jiangshan wrote: > > > > An alternative solution: > > > >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 03:25:25PM +0200, Oleg Nesterov wrote: > On 08/03, Paul E. McKenney wrote: > > > > On Mon, Aug 04, 2014 at 08:37:37AM +0800, Lai Jiangshan wrote: > > > An alternative solution: > > > srcu_read_lock() before exit_notify(), srcu_read_unlock() after the last > > >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 03:29:27PM +0200, Oleg Nesterov wrote: > On 08/03, Paul E. McKenney wrote: > > > > If I understand correctly, your goal is to remove a synchronize_sched() > > worth of latency from the overall RCU-tasks callback latency. Or am I > > still confused? > > Yes, exactly. But

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Oleg Nesterov
On 08/03, Paul E. McKenney wrote: > > If I understand correctly, your goal is to remove a synchronize_sched() > worth of latency from the overall RCU-tasks callback latency. Or am I > still confused? Yes, exactly. But again, I am not sure this minor optimization makes sense, mostly I tried to

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Oleg Nesterov
On 08/03, Paul E. McKenney wrote: > > On Mon, Aug 04, 2014 at 08:37:37AM +0800, Lai Jiangshan wrote: > > An alternative solution: > > srcu_read_lock() before exit_notify(), srcu_read_unlock() after the last > > preempt_disable() > > in the do_exit, and synchronize_srcu() in rcu_tasks_kthread(). >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: > On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: > > OK, I will bite... > > > > What kinds of tasks are on a runqueue, but neither ->on_cpu nor > > PREEMPT_ACTIVE? > > Userspace tasks, they don't necessarily get

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Peter Zijlstra
On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: > OK, I will bite... > > What kinds of tasks are on a runqueue, but neither ->on_cpu nor > PREEMPT_ACTIVE? Userspace tasks, they don't necessarily get PREEMPT_ACTIVE when preempted. Now obviously you're not _that_ interested in

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 04:18:53PM +0800, Lai Jiangshan wrote: > On 08/04/2014 03:46 PM, Peter Zijlstra wrote: > > On Mon, Aug 04, 2014 at 09:28:45AM +0800, Lai Jiangshan wrote: > >> On 08/01/2014 05:55 AM, Paul E. McKenney wrote: > >>> + rcu_read_lock(); > >>> +

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Lai Jiangshan
On 08/04/2014 03:46 PM, Peter Zijlstra wrote: > On Mon, Aug 04, 2014 at 09:28:45AM +0800, Lai Jiangshan wrote: >> On 08/01/2014 05:55 AM, Paul E. McKenney wrote: >>> + rcu_read_lock(); >>> + for_each_process_thread(g, t) { >>> + if (t != current &&

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Peter Zijlstra
On Mon, Aug 04, 2014 at 09:28:45AM +0800, Lai Jiangshan wrote: > On 08/01/2014 05:55 AM, Paul E. McKenney wrote: > > + rcu_read_lock(); > > + for_each_process_thread(g, t) { > > + if (t != current && ACCESS_ONCE(t->on_rq) && > > +

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Peter Zijlstra
On Mon, Aug 04, 2014 at 09:28:45AM +0800, Lai Jiangshan wrote: On 08/01/2014 05:55 AM, Paul E. McKenney wrote: + rcu_read_lock(); + for_each_process_thread(g, t) { + if (t != current ACCESS_ONCE(t-on_rq) + !is_idle_task(t)) {

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Lai Jiangshan
On 08/04/2014 03:46 PM, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 09:28:45AM +0800, Lai Jiangshan wrote: On 08/01/2014 05:55 AM, Paul E. McKenney wrote: + rcu_read_lock(); + for_each_process_thread(g, t) { + if (t != current ACCESS_ONCE(t-on_rq) +

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 04:18:53PM +0800, Lai Jiangshan wrote: On 08/04/2014 03:46 PM, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 09:28:45AM +0800, Lai Jiangshan wrote: On 08/01/2014 05:55 AM, Paul E. McKenney wrote: + rcu_read_lock(); + for_each_process_thread(g, t) {

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Peter Zijlstra
On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: OK, I will bite... What kinds of tasks are on a runqueue, but neither -on_cpu nor PREEMPT_ACTIVE? Userspace tasks, they don't necessarily get PREEMPT_ACTIVE when preempted. Now obviously you're not _that_ interested in

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: OK, I will bite... What kinds of tasks are on a runqueue, but neither -on_cpu nor PREEMPT_ACTIVE? Userspace tasks, they don't necessarily get

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Oleg Nesterov
On 08/03, Paul E. McKenney wrote: On Mon, Aug 04, 2014 at 08:37:37AM +0800, Lai Jiangshan wrote: An alternative solution: srcu_read_lock() before exit_notify(), srcu_read_unlock() after the last preempt_disable() in the do_exit, and synchronize_srcu() in rcu_tasks_kthread(). That is a

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Oleg Nesterov
On 08/03, Paul E. McKenney wrote: If I understand correctly, your goal is to remove a synchronize_sched() worth of latency from the overall RCU-tasks callback latency. Or am I still confused? Yes, exactly. But again, I am not sure this minor optimization makes sense, mostly I tried to check

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 03:29:27PM +0200, Oleg Nesterov wrote: On 08/03, Paul E. McKenney wrote: If I understand correctly, your goal is to remove a synchronize_sched() worth of latency from the overall RCU-tasks callback latency. Or am I still confused? Yes, exactly. But again, I am

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 03:25:25PM +0200, Oleg Nesterov wrote: On 08/03, Paul E. McKenney wrote: On Mon, Aug 04, 2014 at 08:37:37AM +0800, Lai Jiangshan wrote: An alternative solution: srcu_read_lock() before exit_notify(), srcu_read_unlock() after the last preempt_disable() in

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 06:51:04AM -0700, Paul E. McKenney wrote: On Mon, Aug 04, 2014 at 03:25:25PM +0200, Oleg Nesterov wrote: On 08/03, Paul E. McKenney wrote: On Mon, Aug 04, 2014 at 08:37:37AM +0800, Lai Jiangshan wrote: An alternative solution: srcu_read_lock() before

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Peter Zijlstra
On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: OK, I will bite... What kinds of tasks are on a runqueue, but neither -on_cpu nor PREEMPT_ACTIVE? Userspace tasks, they don't necessarily get

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Oleg Nesterov
On 08/03, Paul E. McKenney wrote: On Sun, Aug 03, 2014 at 03:33:18PM +0200, Oleg Nesterov wrote: It seems that you need another global list, a task should be visible on that list until exit_rcu(). As in create another global list that all tasks are added to when created and then remved

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 03:32:21PM +0200, Oleg Nesterov wrote: On 08/03, Paul E. McKenney wrote: On Sun, Aug 03, 2014 at 03:33:18PM +0200, Oleg Nesterov wrote: It seems that you need another global list, a task should be visible on that list until exit_rcu(). As in create

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Oleg Nesterov
On 08/04, Paul E. McKenney wrote: OK, so I checked out my earlier concern about the group leader going away. It looks like the group leader now sticks around until all threads in the group have exited, which is a nice change from the behavior I was (perhaps incorrectly) recalling! Ah, I

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-04 Thread Lai Jiangshan
On 08/04/2014 10:56 PM, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 02:25:15PM +0200, Peter Zijlstra wrote: On Mon, Aug 04, 2014 at 04:50:44AM -0700, Paul E. McKenney wrote: OK, I will bite... What kinds of tasks are on a runqueue, but neither -on_cpu nor PREEMPT_ACTIVE? Userspace tasks,

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-03 Thread Lai Jiangshan
On 08/01/2014 05:55 AM, Paul E. McKenney wrote: > + rcu_read_lock(); > + for_each_process_thread(g, t) { > + if (t != current && ACCESS_ONCE(t->on_rq) && > + !is_idle_task(t)) { > + get_task_struct(t);

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-03 Thread Paul E. McKenney
On Mon, Aug 04, 2014 at 08:37:37AM +0800, Lai Jiangshan wrote: > On 08/04/2014 06:05 AM, Paul E. McKenney wrote: > > On Sun, Aug 03, 2014 at 03:33:18PM +0200, Oleg Nesterov wrote: > >> On 08/02, Paul E. McKenney wrote: > >>> > >>> On Sat, Aug 02, 2014 at 04:56:16PM +0200, Oleg Nesterov wrote: >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-03 Thread Lai Jiangshan
On 08/04/2014 06:05 AM, Paul E. McKenney wrote: > On Sun, Aug 03, 2014 at 03:33:18PM +0200, Oleg Nesterov wrote: >> On 08/02, Paul E. McKenney wrote: >>> >>> On Sat, Aug 02, 2014 at 04:56:16PM +0200, Oleg Nesterov wrote: On 07/31, Paul E. McKenney wrote: > > + rcu_read_lock();

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-03 Thread Paul E. McKenney
On Sun, Aug 03, 2014 at 03:33:18PM +0200, Oleg Nesterov wrote: > On 08/02, Paul E. McKenney wrote: > > > > On Sat, Aug 02, 2014 at 04:56:16PM +0200, Oleg Nesterov wrote: > > > On 07/31, Paul E. McKenney wrote: > > > > > > > > + rcu_read_lock(); > > > > +

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-03 Thread Paul E. McKenney
On Sun, Aug 03, 2014 at 02:57:58PM +0200, Oleg Nesterov wrote: > On 08/02, Paul E. McKenney wrote: > > > > On Fri, Aug 01, 2014 at 08:40:59PM +0200, Oleg Nesterov wrote: > > > On 08/01, Paul E. McKenney wrote: > > > > > > > > On Fri, Aug 01, 2014 at 04:11:44PM +0200, Oleg Nesterov wrote: > > > > >

Re: [PATCH v3 tip/core/rcu 1/9] rcu: Add call_rcu_tasks()

2014-08-03 Thread Oleg Nesterov
On 08/02, Paul E. McKenney wrote: > > On Sat, Aug 02, 2014 at 04:56:16PM +0200, Oleg Nesterov wrote: > > On 07/31, Paul E. McKenney wrote: > > > > > > + rcu_read_lock(); > > > + for_each_process_thread(g, t) { > > > + if (t != current && ACCESS_ONCE(t->on_rq) && > >

  1   2   >