Messages in this thread | | | Date | Wed, 22 Jul 2015 16:05:21 -0700 | From | Dave Hansen <> | Subject | Re: [PATCH] mm: Flush the TLB for a single address in a huge page |
| |
On 07/22/2015 03:48 PM, Catalin Marinas wrote: > You are right, on x86 the tlb_single_page_flush_ceiling seems to be > 33, so for an HPAGE_SIZE range the code does a local_flush_tlb() > always. I would say a single page TLB flush is more efficient than a > whole TLB flush but I'm not familiar enough with x86.
The last time I looked, the instruction to invalidate a single page is more expensive than the instruction to flush the entire TLB. We also don't bother doing ranged flushes _ever_ for hugetlbfs TLB invalidations, but that was just because the work done around commit e7b52ffd4 didn't see any benefit.
That said, I can't imagine this will hurt anything. We also have TLBs that can mix 2M and 4k pages and I don't think we did back when we put that code in originally.
| |