Re: [PATCH v2 1/2] workqueue: add quiescent state between work items

From: Paul E. McKenney
Date: Tue Oct 07 2014 - 09:43:41 EST


On Tue, Oct 07, 2014 at 09:29:42AM +0200, Jiri Pirko wrote:
> Mon, Oct 06, 2014 at 06:21:58AM CEST, paulmck@xxxxxxxxxxxxxxxxxx wrote:
> >On Sun, Oct 05, 2014 at 03:47:48PM -0400, Tejun Heo wrote:
> >> On Sun, Oct 05, 2014 at 03:21:19PM -0400, Tejun Heo wrote:
> >> > On Sun, Oct 05, 2014 at 01:24:21PM -0400, Joe Lawrence wrote:
> >> > > Similar to the stop_machine deadlock scenario on !PREEMPT kernels
> >> > > addressed in b22ce2785d97 "workqueue: cond_resched() after processing
> >> > > each work item", kworker threads requeueing back-to-back with zero jiffy
> >> > > delay can stall RCU. The cond_resched call introduced in that fix will
> >> > > yield only iff there are other higher priority tasks to run, so force a
> >> > > quiescent RCU state between work items.
> >> > >
> >> > > Signed-off-by: Joe Lawrence <joe.lawrence@xxxxxxxxxxx>
> >> > > Link: https://lkml.kernel.org/r/20140926105227.01325697@xxxxxxxxxxxxxxxxxxxxxxxxxxxx
> >> > > Link: https://lkml.kernel.org/r/20140929115445.40221d8e@xxxxxxxxxxxxxxxxxxxxxxxxxxxx
> >> > > Fixes: b22ce2785d97 ("workqueue: cond_resched() after processing each work item")
> >> > > Cc: <stable@xxxxxxxxxxxxxxx>
> >> >
> >> > Applied to wq/for-3.17-fixes. If 3.17 comes out before this gets
> >> > merged, I'll send it as for-3.18.
> >>
> >> Oops, the rcu calls aren't in mainline yet. I think it'd be best to
> >> route these through the RCU tree. Paul, can you please route these
> >> two patches?
> >>
> >> Acked-by: Tejun Heo <tj@xxxxxxxxxx>
> >
> >Will do!
> >
> >I will try 3.17, failing that, 3.18.
>
>
> Paul, Tehun, how do you propose to fix this on older kernels which do
> not have rcu_note_voluntary_context_switch? I'm particullary interested
> in 3.10.

Hello, Jiri,

Older kernels can instead use rcu_note_context_switch().

Thanx, Paul

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/