On Wed, Dec 18, 2024 at 09:04:38PM +0800, Qi Zheng wrote: > For these architectures, provide a generic implementation in > asm-generic/pgalloc.h and convert them to use it. And like other levels > of page tables, add statistics for P4D level page table. FWIW, introducing the generic implementation and adding ctor|dtors look as separate changes to me. ... > static inline void p4d_free(struct mm_struct *mm, p4d_t *p4d) > { > - if (!pgtable_l5_enabled()) > - return; > - BUG_ON((unsigned long)p4d & (PAGE_SIZE-1)); Or maybe? BUG_ON(!IS_ALIGNED((unsigned long)p4d, PAGE_SIZE)); > - free_page((unsigned long)p4d); > + if (pgtable_l5_enabled()) > + __p4d_free(mm, p4d); > }