Messages in this thread | | | Subject | Re: [PATCH tip/core/rcu 11/26] rcu: Exit RCU extended QS on user preemption | From | Peter Zijlstra <> | Date | Wed, 12 Sep 2012 16:09:26 +0200 |
| |
On Wed, 2012-09-12 at 15:54 +0200, Frederic Weisbecker wrote: > On Wed, Sep 12, 2012 at 02:52:40PM +0200, Peter Zijlstra wrote: > > On Wed, 2012-09-12 at 14:41 +0200, Peter Zijlstra wrote: > > > > > We could of course mandate that all remote wakeups to special nohz cpus > > > get queued. That would just leave us with RCU and it would simply not > > > send resched IPIs to extended quiescent CPUs anyway, right? > > > > > > So at that point all return to user schedule() calls have nr_running > 1 > > > and the tick is running and RCU is not in extended quiescent state. > > > Since either we had nr_running > 1 and pre and post state are the same, > > > or we had nr_running == 1 and we just got a fresh wakeup pushing it to > > > 2, the wakeup will have executed on our cpu and have re-started the tick > > > and kicked RCU into active gear again. > > > > > > We cannot hit return to user schedule() with nr_running == 0, simply > > > because in that case there's no userspace to return to, only the idle > > > thread and that's very much not userspace :-) > > > > > > Hmm ? > > > > Crap.. this will screw over -rt, since the wakeups batch the IPI can > > take forever so we had to disable this. > > I don't know that part of -rt. Probably we can deal with that later once > we have some upstream code in place?
Yeah maybe.. its going to be hard though, anyway, I'm going to stare at wtf drm is doing for a bit :-)
| |