On 11/5/18 12:58 AM, Aaron Lu wrote: > We have multiple places of freeing a page, most of them doing similar > things and a common function can be used to reduce code duplicate. > > It also avoids bug fixed in one function and left in another. Haha, should have read the next patch. :) > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 91a9a6af41a2..2b330296e92a 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -4425,9 +4425,17 @@ unsigned long get_zeroed_page(gfp_t gfp_mask) > } > EXPORT_SYMBOL(get_zeroed_page); > > -void __free_pages(struct page *page, unsigned int order) > +/* > + * Free a page by reducing its ref count by @nr. > + * If its refcount reaches 0, then according to its order: > + * order0: send to PCP; > + * high order: directly send to Buddy. > + */ FWIW, I'm not a fan of comments on the function like this. Please just comment the *code* that's doing what you describe. It's easier to read and less likely to diverge from the code. The rest of the patch looks great, though.