Message ID | 20201113113426.465239104@infradead.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | perf/mm: Fix PERF_SAMPLE_*_PAGE_SIZE | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (80ecbe16c827714ce3741ed1f1d34488b903e717) |
snowpatch_ozlabs/checkpatch | warning | total: 0 errors, 0 warnings, 1 checks, 20 lines checked |
snowpatch_ozlabs/needsstable | success | Patch has no Fixes tags |
On Fri, Nov 13, 2020 at 12:19:03PM +0100, Peter Zijlstra wrote: > A number of architectures have non-pagetable aligned huge/large pages. > For such architectures a leaf can actually be part of a larger TLB > entry. > > Provide generic helpers to determine the TLB size of a page-table > leaf. > > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > --- > include/linux/pgtable.h | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > --- a/include/linux/pgtable.h > +++ b/include/linux/pgtable.h > @@ -1536,4 +1536,20 @@ typedef unsigned int pgtbl_mod_mask; > #define pmd_leaf(x) 0 > #endif > > +#ifndef pgd_leaf_size > +#define pgd_leaf_size(x) PGD_SIZE Argh, I lost a refresh, that should've been: +#define pgd_leaf_size(x) (1ULL << PGDIR_SHIFT) > +#endif > +#ifndef p4d_leaf_size > +#define p4d_leaf_size(x) P4D_SIZE > +#endif > +#ifndef pud_leaf_size > +#define pud_leaf_size(x) PUD_SIZE > +#endif > +#ifndef pmd_leaf_size > +#define pmd_leaf_size(x) PMD_SIZE > +#endif > +#ifndef pte_leaf_size > +#define pte_leaf_size(x) PAGE_SIZE > +#endif > + > #endif /* _LINUX_PGTABLE_H */ > >
--- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -1536,4 +1536,20 @@ typedef unsigned int pgtbl_mod_mask; #define pmd_leaf(x) 0 #endif +#ifndef pgd_leaf_size +#define pgd_leaf_size(x) PGD_SIZE +#endif +#ifndef p4d_leaf_size +#define p4d_leaf_size(x) P4D_SIZE +#endif +#ifndef pud_leaf_size +#define pud_leaf_size(x) PUD_SIZE +#endif +#ifndef pmd_leaf_size +#define pmd_leaf_size(x) PMD_SIZE +#endif +#ifndef pte_leaf_size +#define pte_leaf_size(x) PAGE_SIZE +#endif + #endif /* _LINUX_PGTABLE_H */
A number of architectures have non-pagetable aligned huge/large pages. For such architectures a leaf can actually be part of a larger TLB entry. Provide generic helpers to determine the TLB size of a page-table leaf. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> --- include/linux/pgtable.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)