On Wed, Jun 22, 2022 at 04:58:52PM +0800, Baolin Wang wrote: > +static inline void pgtable_set_and_inc(struct page *page) > +{ > + __SetPageTable(page); > + inc_lruvec_page_state(page, NR_PAGETABLE); > +} I don't like the names. The accounting is also wrong for non-order-0 allocations. It should be mod_lruvec_page_state(page, NR_PAGETABLE, compound_nr(page)) but it's probably better to change the API to pass in the number of pages instead of recalculating it. I can't think of a good name. What's wrong with just adding static inline bool pgtable_pud_page_ctor(struct page *page) to go along with the pte and pmd variants?