Messages in this thread | | | Date | Thu, 28 Sep 2017 10:38:01 +0200 | From | Peter Zijlstra <> | Subject | Re: [RFC PATCH 1/2] arm64: mm: Use READ_ONCE/WRITE_ONCE when accessing page tables |
| |
On Wed, Sep 27, 2017 at 04:49:28PM +0100, Will Deacon wrote: > In many cases, page tables can be accessed concurrently by either another > CPU (due to things like fast gup) or by the hardware page table walker > itself, which may set access/dirty bits. In such cases, it is important > to use READ_ONCE/WRITE_ONCE when accessing page table entries so that > entries cannot be torn, merged or subject to apparent loss of coherence.
In fact, we should use lockless_dereference() for many of them. Yes Alpha is the only one that cares about the difference between that and READ_ONCE() and they do have the extra barrier, but if we're going to do this, we might as well do it 'right' :-)
Also, a very long standing item on my TODO list is to see how much of it we can unify across the various architectures, because there's a giant amount of boiler plate involved with all this.
| |