On Thu 15-04-21 12:35:40, Oscar Salvador wrote: > Pages allocated after boot get its private field cleared by means > of post_alloc_hook(). You surely meant to say s@boot@page/cma allocator@ here > Pages allocated during boot, that is directly from the memblock allocator, > get cleared by paging_init()->..->memmap_init_zone->..->__init_single_page() > before any memblock allocation. > > Based on this ground, let us remove the clearing of the flag from > prep_new_huge_page() as it is not needed. I would also mention that this is a leftover from 6c0371490140 ("hugetlb: convert PageHugeFreed to HPageFreed flag"). Previously the explicit clearing was necessary because compound allocations do not get this initialization (see prep_compound_page). > Signed-off-by: Oscar Salvador <osalvador@xxxxxxx> with that Acked-by: Michal Hocko <mhocko@xxxxxxxx> > --- > mm/hugetlb.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 54d81d5947ed..2cb9fa79cbaa 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -1493,7 +1493,6 @@ static void prep_new_huge_page(struct hstate *h, struct page *page, int nid) > spin_lock_irq(&hugetlb_lock); > h->nr_huge_pages++; > h->nr_huge_pages_node[nid]++; > - ClearHPageFreed(page); > spin_unlock_irq(&hugetlb_lock); > } > > -- > 2.16.3 -- Michal Hocko SUSE Labs