Thread (20 messages) 20 messages, 4 authors, 2019-10-16

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

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.cz
So 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help