Re: [RFC PATCH 09/11] asm-generic/tlb: Track which levels of the page tables have been cleared

From: Peter Zijlstra
Date: Mon Aug 27 2018 - 03:53:48 EST


On Fri, Aug 24, 2018 at 04:52:44PM +0100, Will Deacon wrote:
> +static inline unsigned long tlb_get_unmap_granule(struct mmu_gather *tlb)
> +{
> + if (tlb->cleared_ptes)
> + return PAGE_SIZE;
> + if (tlb->cleared_pmds)
> + return PMD_SIZE;
> + if (tlb->cleared_puds)
> + return PUD_SIZE;
> + if (tlb->cleared_p4ds)
> + return P4D_SIZE;
> +
> + return PAGE_SIZE;
> +}

When doing the x86 patch; I found _SHIFT more useful than _SIZE.