On Thu, Sep 13, 2018 at 08:42:30PM +0200, Peter Zijlstra wrote: > > > +#define flush_tlb_range(vma, start, end) \ > > > + flush_tlb_mm_range((vma)->vm_mm, start, end, \ > > > + (vma)->vm_flags & VM_HUGETLB ? PMD_SHIFT : PAGE_SHIFT) > > > > This is safe. But, Couldn't this PMD_SHIFT also be PUD_SHIFT for a 1G > > hugetlb page? > > It could be, but can we tell at that point? I had me a look in higetlb.h, would something like so work? #define flush_tlb_range(vma, start, end) \ flush_tlb_mm_range((vma)->vm_mm, start, end, \ huge_page_shift(hstate_vma(vma)))