Re: [PATCH] ppc64: Fix possible race with set_pte on a present PTE

Benjamin Herrenschmidt
2004-05-25T22:05:36Z

On Wed, 2004-05-26 at 07:54, Linus Torvalds wrote:
> On Wed, 26 May 2004, Benjamin Herrenschmidt wrote:
> >
> > Well, just setting one of those 2 bits doesn't require a hash table
> > invalidate as long as nothing else changes.
>
> Ok. And nothing ever writes to the SW page tables outside the page table
> lock, right? So on ppc64, we could just do
>
> #define ptep_update_dirty_accessed(ptep, entry, dirty) \
> *(ptep) = (entry)
>
> and be done with it. No?
>
> I'm not going to do it without a big ack from you.

No. The hash fault path will update the PTE dirty/accessed on a hash miss
exception without holding the page table lock (acts a bit like a HW TLB
as far as linux is concerned). That's why it needs to be atomic.

Ben.