Re: [PATCH v2 1/2] mm: free compound page with correct order

From: Kirill A. Shutemov
Date: Wed Oct 15 2014 - 16:05:39 EST


On Wed, Oct 15, 2014 at 12:30:44PM -0700, Andrew Morton wrote:
> > @@ -232,7 +232,7 @@ static unsigned long shrink_huge_zero_page_scan(struct shrinker *shrink,
> > if (atomic_cmpxchg(&huge_zero_refcount, 1, 0) == 1) {
> > struct page *zero_page = xchg(&huge_zero_page, NULL);
> > BUG_ON(zero_page == NULL);
> > - __free_page(zero_page);
> > + __free_pages(zero_page, compound_order(zero_page));
>
> But I'm surprised that this is also rare. It makes me wonder if this
> code is working correctly.

This should be rare too. To get here we need a situation when huge zero
page is allocated, but not mapped and we get memory presure to trigger
shrinker.

--
Kirill A. Shutemov
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/