Re: [PATCH 1/4] rcu: Allow for page faults in NMI handlers

From: Linus Torvalds
Date: Sun Sep 24 2017 - 15:42:41 EST


On Sat, Sep 23, 2017 at 1:56 PM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> +
> + /* Page faults can happen in NMI handlers, so check... */
> + if (READ_ONCE(rdtp->dynticks_nmi_nesting))
> + return;
> +

What is the reason for the READ_ONCE() here (and in the other case)?

It doesn't seem to have any actual reason. It's a "stable" per-cpu
value in that even if an NMI were to happen, it gets incremented and
then decremented, so there is nothing really volatile about it
anywhere that I can see.

So the READ_ONCE() seems to be just pure confusion.

What am I missing?

Linus