Messages in this thread | | | Subject | Re: [PATCH v4 0/4] Make alloc_contig_range handle Hugetlb pages | From | David Hildenbrand <> | Date | Wed, 17 Mar 2021 10:48:31 +0100 |
| |
On 17.03.21 10:43, Oscar Salvador wrote: > On 2021-03-15 10:06, David Hildenbrand wrote: >> BTW, I stumbled yesterday over >> >> alloc_contig_pages()->pfn_range_valid_contig(): >> >> if (page_count(page) > 0) >> rerurn false; >> if (PageHuge(page)) >> return false; >> >> As used by memtrace and for gigantic pages. We can now >> >> a) Drop these check completely, as it's best-effort only and racy. >> alloc_contig_pages()/alloc_contig_range() will handle it properly. > > I was preparing v5, and I wanted to be sure I understood you here. > > Right you are that the in-use page check can be dropped, as those pages > can > be migrated away, and the Hugetlb page check can also be dropped since > isolate_migratepages_range is now capable of dealing with those kind of > pages. > >> b) Similarly, check for gigantic pages and/or movability/migratability. > > I lost you here. > > isolate_or_dissolve_huge_page() already bails out on hugetlb-gigantic > pages. > > Or do you mean to place an upfront check here? (hstate_is_gigantic())?
Yes. But I prefer a) and keeping it simple here -- just doing basic sanity checks (online, zone, PageReserved()) that are absolutely necessary.
-- Thanks,
David / dhildenb
| |