Messages in this thread | | | Date | Wed, 15 Oct 2014 23:05:01 +0300 | From | "Kirill A. Shutemov" <> | Subject | Re: [PATCH v2 1/2] mm: free compound page with correct order |
| |
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
| |