Messages in this thread | | | Date | Thu, 25 Oct 2012 23:57:01 -0400 | From | Rik van Riel <> | Subject | Re: [PATCH 05/31] x86/mm: Reduce tlb flushes from ptep_set_access_flags() |
| |
On 10/25/2012 10:56 PM, Linus Torvalds wrote:
> Guess what? If you want to optimize the function to not do remote TLB > flushes, then just do that! None of the garbage. Just change the > > flush_tlb_page(vma, address); > > line to > > __flush_tlb_one(address);
That may not even be needed. Apparently Intel chips automatically flush an entry from the TLB when it causes a page fault. I assume AMD chips do the same, because flush_tlb_fix_spurious_fault evaluates to nothing on x86.
> and it should damn well work. Because everything I see about > "flush_remote" looks just wrong, wrong, wrong.
Are there architectures where we do need to flush remote TLBs on upgrading the permissions on a PTE?
Because that is what the implementation in pgtable-generic.c seems to be doing as well...
> And if there really is some reason for that whole flush_remote > braindamage, then we have much bigger problems, namely the fact that > we've broken the documented semantics of that function, and we're > doing various other things that are completely and utterly invalid > unless the above semantics hold.
Want to just remove the TLB flush entirely and see if anything breaks in 3.8-rc1?
From reading the code again, it looks like things should indeed work ok.
| |