Message ID | 20210415103544.6791-4-osalvador@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Make alloc_contig_range handle Hugetlb pages | expand |
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@suse.de> with that Acked-by: Michal Hocko <mhocko@suse.com> > --- > 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
On 15.04.21 13:41, Michal Hocko wrote: > 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 I think this also includes allocating gigantic pages via alloc_contig_pages() directly. post_alloc_hook() covers both. > >> 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@suse.de> > > with that > Acked-by: Michal Hocko <mhocko@suse.com> > Reviewed-by: David Hildenbrand <david@redhat.com>
On 4/15/21 3:35 AM, Oscar Salvador wrote: > Pages allocated after boot get its private field cleared by means > of post_alloc_hook(). > 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. > > Signed-off-by: Oscar Salvador <osalvador@suse.de> The comment "allocated after boot" made sense to me, but I can see where Michal's suggestion was coming from (list the allocators that do the clearing). Also, listing this as a left over would be a good idea. Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
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); }
Pages allocated after boot get its private field cleared by means of post_alloc_hook(). 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. Signed-off-by: Oscar Salvador <osalvador@suse.de> --- mm/hugetlb.c | 1 - 1 file changed, 1 deletion(-)