Re: [PATCH V6 1/2] mm/page_alloc: Make alloc_gigantic_page() available for general use
From: Michal Hocko <mhocko@kernel.org>
Date: 2019-10-15 12:11:49
Also in:
linux-arm-kernel, linux-mm
From: Michal Hocko <mhocko@kernel.org>
Date: 2019-10-15 12:11:49
Also in:
linux-arm-kernel, linux-mm
On Tue 15-10-19 14:09:56, Michal Hocko wrote:
On Tue 15-10-19 13:50:02, David Hildenbrand wrote:quoted
On 15.10.19 13:47, Michal Hocko wrote:quoted
On Tue 15-10-19 13:42:03, David Hildenbrand wrote: [...]quoted
quoted
-static bool pfn_range_valid_gigantic(struct zone *z, - unsigned long start_pfn, unsigned long nr_pages) -{ - unsigned long i, end_pfn = start_pfn + nr_pages; - struct page *page; - - for (i = start_pfn; i < end_pfn; i++) { - if (!pfn_valid(i)) - return false; - - page = pfn_to_page(i);Am I missing something or should here really be a pfn_to_online_page() here instead of a pfn_valid() ?http://lkml.kernel.org/r/20180423000943.GO17484@dhcp22.suse.czSo we managed to add PageReserved(page) but not pfn_to_online_page(). But it is the right thing to do? (or am I missing something?)Yeah, pfn_to_online_page is better. But please note that this is an optimistic check. The real check has to be done when isolating the pageblock because things might change in the meantime.
Except I have missed that we do get zone from the page and other undefined state. Scratch my above comment. -- Michal Hocko SUSE Labs