Re: [PATCH RFC v2 tip/core/rcu] Maintain special bits at bottom of ->dynticks counter

From: Andy Lutomirski
Date: Mon Feb 13 2017 - 14:09:56 EST

On Mon, Feb 13, 2017 at 9:57 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> On Mon, Feb 13, 2017 at 09:01:04AM -0800, Paul E. McKenney wrote:
>> > I think I've asked this before, but why does this live in the guts of
>> > RCU?
>> >
>> > Should we lift this state tracking stuff out and make RCU and
>> > NOHZ(_FULL) users of it, or doesn't that make sense (reason)?
>> The dyntick-idle stuff is pretty specific to RCU. And what precisely
>> would be helped by moving it?
> Maybe untangle the inter-dependencies somewhat. It just seems a wee bit
> odd to have arch TLB invalidate depend on RCU implementation details
> like this.

This came out of a courtyard discussion at KS/LPC. The idea is that
this optimzation requires an atomic op that could be shared with RCU
and that we probably care a lot more about this optimization on
kernels with context tracking enabled, so putting it in RCU has nice
performance properties. Other than that, it doesn't make a huge
amount of sense.

Amusingly, Darwin appears to do something similar without an atomic
op, and I have no idea why that's safe.