Re: linux-next: manual merge of the rcu tree with the tip tree

From: Andy Lutomirski
Date: Tue Aug 01 2017 - 10:16:08 EST


On Tue, Aug 1, 2017 at 7:02 AM, Mathieu Desnoyers
<mathieu.desnoyers@xxxxxxxxxxxx> wrote:
> /*
> * The full memory barrier implied by mm_cpumask update operations
> * is required by the membarrier system call.
> */
>
> What we want to order here is:
>
> prev userspace memory accesses
> schedule
> <full mb> (it's already there) [A]
> update to rq->curr changing the rq->curr->mm value
> <full mb> (provided by mm_cpumask updates in switch_mm on x86) [B]

If I understand this right, the issue with relying on CR3 writes is
that the target CPU could switch to a kernel thread and back to the
same user mm white the membarrier caller is reading its mm, right?