Messages in this thread | | | Date | Fri, 24 Jun 2022 16:41:47 +0800 | Subject | Re: [RFC PATCH v2 1/3] mm: Factor out the pagetable pages account into new helper function | From | Baolin Wang <> |
| |
On 6/24/2022 12:07 AM, Matthew Wilcox wrote: > 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))
Yes, seems need another patch to convert using compound_nr().
> > but it's probably better to change the API to pass in the number of > pages instead of recalculating it.
Lots of callers will not calculate the number of pages, so I think we can just add the compound_nr() in the API firstly, which also can avoid changing lots of callers.
> 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?
IMHO that means we will need another function like pgtable_kernel_pte_page_ctor/dtor() to account kernel pagetable, however they do the same thing. So a common function which only do '__SetPageTable' and account pagetable will be more helpful.
So how about pgtable_page_inc()/pgtable_page_dec()?
| |