Re: [RFC PATCH 2/7] mm/vmalloc: Track which page-table levels were modified

From: Peter Zijlstra
Date: Fri May 08 2020 - 15:11:17 EST


On Fri, May 08, 2020 at 04:40:38PM +0200, Joerg Roedel wrote:

> +/*
> + * Architectures can set this mask to a combination of PGTBL_P?D_MODIFIED values
> + * and let generic vmalloc and ioremap code know when arch_sync_kernel_mappings()
> + * needs to be called.
> + */
> +#ifndef ARCH_PAGE_TABLE_SYNC_MASK
> +#define ARCH_PAGE_TABLE_SYNC_MASK 0
> +#endif
> +
> +void arch_sync_kernel_mappings(unsigned long start, unsigned long end);


> + if (mask & ARCH_PAGE_TABLE_SYNC_MASK)
> + arch_sync_kernel_mappings(start, end);

So you're relying on the compiler DCE'ing the call in the 'normal' case.

Works I suppose, but I went over the patches twice to look for a default
implementation of it before I figured that out ...