From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
To: Qian Cai <cai@lca.pw>, Dan Williams <dan.j.williams@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Oscar Salvador <osalvador@suse.de>, Linux MM <linux-mm@kvack.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH -next] mm/hotplug: skip bad PFNs from pfn_to_online_page()
Date: Fri, 14 Jun 2019 14:28:40 +0530 [thread overview]
Message-ID: <87lfy4ilvj.fsf@linux.ibm.com> (raw)
In-Reply-To: <1560376072.5154.6.camel@lca.pw>
Qian Cai <cai@lca.pw> writes:
> 1) offline is busted [1]. It looks like test_pages_in_a_zone() missed the same
> pfn_section_valid() check.
>
> 2) powerpc booting is generating endless warnings [2]. In vmemmap_populated() at
> arch/powerpc/mm/init_64.c, I tried to change PAGES_PER_SECTION to
> PAGES_PER_SUBSECTION, but it alone seems not enough.
>
Can you check with this change on ppc64. I haven't reviewed this series yet.
I did limited testing with change . Before merging this I need to go
through the full series again. The vmemmap poplulate on ppc64 needs to
handle two translation mode (hash and radix). With respect to vmemap
hash doesn't setup a translation in the linux page table. Hence we need
to make sure we don't try to setup a mapping for a range which is
arleady convered by an existing mapping.
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c
index a4e17a979e45..15c342f0a543 100644
--- a/arch/powerpc/mm/init_64.c
+++ b/arch/powerpc/mm/init_64.c
@@ -88,16 +88,23 @@ static unsigned long __meminit vmemmap_section_start(unsigned long page)
* which overlaps this vmemmap page is initialised then this page is
* initialised already.
*/
-static int __meminit vmemmap_populated(unsigned long start, int page_size)
+static bool __meminit vmemmap_populated(unsigned long start, int page_size)
{
unsigned long end = start + page_size;
start = (unsigned long)(pfn_to_page(vmemmap_section_start(start)));
- for (; start < end; start += (PAGES_PER_SECTION * sizeof(struct page)))
- if (pfn_valid(page_to_pfn((struct page *)start)))
- return 1;
+ for (; start < end; start += (PAGES_PER_SECTION * sizeof(struct page))) {
- return 0;
+ struct mem_section *ms;
+ unsigned long pfn = page_to_pfn((struct page *)start);
+
+ if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
+ return 0;
+ ms = __nr_to_section(pfn_to_section_nr(pfn));
+ if (valid_section(ms))
+ return true;
+ }
+ return false;
}
/*
next prev parent reply other threads:[~2019-06-14 8:58 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-12 19:15 [PATCH -next] mm/hotplug: skip bad PFNs from pfn_to_online_page() Qian Cai
2019-06-12 19:37 ` Dan Williams
2019-06-12 19:38 ` Dan Williams
2019-06-12 21:47 ` Qian Cai
2019-06-12 21:52 ` Dan Williams
2019-06-12 23:13 ` Dan Williams
2019-06-13 0:06 ` Dan Williams
2019-06-14 8:58 ` Aneesh Kumar K.V [this message]
2019-06-14 14:59 ` Qian Cai
2019-06-14 18:03 ` Dan Williams
2019-06-14 18:57 ` Dan Williams
2019-06-14 19:40 ` Qian Cai
2019-06-14 19:48 ` Dan Williams
2019-06-14 20:43 ` Qian Cai
2019-06-16 15:42 ` Dan Williams
2019-06-17 2:25 ` Qian Cai
2019-06-14 15:35 ` Oscar Salvador
2019-06-14 16:18 ` Aneesh Kumar K.V
2019-06-14 16:22 ` Dan Williams
2019-06-14 16:26 ` Aneesh Kumar K.V
2019-06-14 16:36 ` Dan Williams
2019-06-14 16:36 ` Dan Williams
2019-06-14 16:50 ` Aneesh Kumar K.V
2019-06-14 16:55 ` Aneesh Kumar K.V
2019-06-14 17:08 ` Jeff Moyer
2019-06-14 17:08 ` Jeff Moyer
2019-06-14 17:14 ` Dan Williams
2019-06-14 17:14 ` Dan Williams
2019-06-14 17:40 ` Aneesh Kumar K.V
2019-06-16 3:49 ` Aneesh Kumar K.V
2019-06-17 17:21 ` Dan Williams
2019-06-13 18:42 ` Qian Cai
2019-06-14 1:17 ` Dan Williams
2019-06-14 1:29 ` Qian Cai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lfy4ilvj.fsf@linux.ibm.com \
--to=aneesh.kumar@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=cai@lca.pw \
--cc=dan.j.williams@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=osalvador@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.