Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm: Introduce pXX_leaf_size()

A number of architectures have non-pagetable aligned huge/large pages.
For such architectures a leaf can actually be part of a larger entry.

Provide generic helpers to determine the size of a page-table leaf.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Link: https://lkml.kernel.org/r/20201126121121.102580109@infradead.org

+16
+16
include/linux/pgtable.h
··· 1536 1536 #define pmd_leaf(x) 0 1537 1537 #endif 1538 1538 1539 + #ifndef pgd_leaf_size 1540 + #define pgd_leaf_size(x) (1ULL << PGDIR_SHIFT) 1541 + #endif 1542 + #ifndef p4d_leaf_size 1543 + #define p4d_leaf_size(x) P4D_SIZE 1544 + #endif 1545 + #ifndef pud_leaf_size 1546 + #define pud_leaf_size(x) PUD_SIZE 1547 + #endif 1548 + #ifndef pmd_leaf_size 1549 + #define pmd_leaf_size(x) PMD_SIZE 1550 + #endif 1551 + #ifndef pte_leaf_size 1552 + #define pte_leaf_size(x) PAGE_SIZE 1553 + #endif 1554 + 1539 1555 #endif /* _LINUX_PGTABLE_H */