From: Yinghai Lu <yinghai@kernel.org>
To: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: mel@csn.ul.ie,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [PATCH] x86: fix nodes_cover_memory
Date: Wed, 06 May 2009 09:53:35 -0700 [thread overview]
Message-ID: <4A01C08F.8020607@kernel.org> (raw)
found one system that missed one entry for one node in SRAT, and that SRAT is not
rejected by nodes_cover_memory()
it turns out that we can not use absent_page_in_range to calaulate
e820ram, bacause that will use early_node_map and that is AND result of
e820 and SRAT.
revert back to use e820_hole_size instead.
also change that difference checking to 1M instead of 4G,
because e820ram, and pxmram are in pages.
[ Impact: reject wrong SRAT tables ]
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: Mel Gorman <mel@csn.ul.ie>
---
arch/x86/mm/srat_64.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/arch/x86/mm/srat_64.c
===================================================================
--- linux-2.6.orig/arch/x86/mm/srat_64.c
+++ linux-2.6/arch/x86/mm/srat_64.c
@@ -345,9 +345,9 @@ static int __init nodes_cover_memory(con
pxmram = 0;
}
- e820ram = max_pfn - absent_pages_in_range(0, max_pfn);
+ e820ram = max_pfn - (e820_hole_size(0, max_pfn<<PAGE_SHIFT)>>PAGE_SHIFT);
/* We seem to lose 3 pages somewhere. Allow a bit of slack. */
- if ((long)(e820ram - pxmram) >= 1*1024*1024) {
+ if ((long)(e820ram - pxmram) >= (1<<(20 - PAGE_SHIFT))) {
printk(KERN_ERR
"SRAT: PXMs only cover %luMB of your %luMB e820 RAM. Not used.\n",
(pxmram << PAGE_SHIFT) >> 20,
next reply other threads:[~2009-05-06 16:55 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-06 16:53 Yinghai Lu [this message]
2009-05-07 13:47 ` [PATCH] x86: fix nodes_cover_memory Mel Gorman
2009-05-07 14:21 ` Ingo Molnar
2009-05-07 14:47 ` Mel Gorman
2009-05-08 7:36 ` [PATCH 1/2] x86: Sanity check the e820 against the SRAT table using e820 map only Yinghai Lu
2009-05-08 7:37 ` [PATCH 2/2] x86: Allow 1MB of slack between the e820 map and SRAT, not 4GB Yinghai Lu
2009-05-11 9:54 ` [tip:x86/mm] " tip-bot for Yinghai Lu
2009-05-11 9:36 ` [PATCH 1/2] x86: Sanity check the e820 against the SRAT table using e820 map only Ingo Molnar
2009-05-11 15:51 ` Yinghai Lu
2009-05-11 9:54 ` [tip:x86/mm] " tip-bot for Yinghai Lu
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=4A01C08F.8020607@kernel.org \
--to=yinghai@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mel@csn.ul.ie \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.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.