Re: [PATCH 2/3] task: RCU protect tasks on the runqueue

From: Peter Zijlstra
Date: Tue Sep 03 2019 - 16:06:20 EST


On Tue, Sep 03, 2019 at 12:18:47PM -0700, Linus Torvalds wrote:
> Now, if you can point to some particular field where that ordering
> makes sense for the particular case of "make it active on the
> runqueue" vs "look up the task from the runqueue using RCU", then I do
> think that the whole release->acquire consistency makes sense.
>
> But it's not clear that such a field exists, particularly when this is
> in no way the *common* way to even get a task pointer, and other paths
> do *not* use the runqueue as the serialization point.

Even if we could find a case (and I'm not seeing one in a hurry), I
would try really hard to avoid adding extra barriers here and instead
make the consumer a little more complicated if at all possible.

The Power folks got rid of a SYNC (yes, more expensive than LWSYNC) from
their __switch_to() implementation and that had a measurable impact.

9145effd626d ("powerpc/64: Drop explicit hwsync in context switch")