Re: [PATCH] ppc64: Fix possible race with set_pte on a present PTE
From: Linus Torvalds <torvalds@osdl.org>
Date: 2004-05-25 22:16:55
Also in:
linux-mm, lkml
From: Linus Torvalds <torvalds@osdl.org>
Date: 2004-05-25 22:16:55
Also in:
linux-mm, lkml
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.
I'm starting to doubt this, because:
We do dirty by mapping r/o in the hash table, and accessed on hash faults (our clear_young triggers a flush). So just setting those bits in the linux PTE without touching the hash table is fine, we'll just possibly take an extra fault on the next write or access, but that might not be much slower than going to the hash update the permissions directly.
But if we don't update the hash tables, how will the TLB entry _ever_ say that the page is writable? So we won't take just _one_ extra fault on the next write, we'll _keep_ taking them, since the hash tables will continue to claim that the page is read-only, even if the linux sw page tables say it is writable. So I think the code needs to invalidate the hash after having updated the pte. No? Linus