From: Ingo Molnar <mingo@elte.hu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andi Kleen <andi@firstfloor.org>,
fengguang.wu@intel.com, linux-kernel@vger.kernel.org,
akpm@linux-foundation.org, "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: [PATCH] x86: Fix hwpoison code related build failure on 32-bit NUMAQ
Date: Sat, 26 Sep 2009 19:35:22 +0200 [thread overview]
Message-ID: <20090926173522.GA22723@elte.hu> (raw)
In-Reply-To: <alpine.LFD.2.01.0909260930410.3303@localhost.localdomain>
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Sat, 26 Sep 2009, Andi Kleen wrote:
> >
> > Thanks for the report. The issue comes from NODES_SHIFT=4
> >
> > I think I tested the NUMA case, but perhaps not with full NODES_SHIFT.
> >
> > The easy fix would be to limit NODES_SHIFT to 3 for 32bit (8 nodes max). Do you
> > have any problems with that? I doubt there are any >8 nodes NUMAQs left.
> > (last time I heard the last machine at IBM was down to < 4)
>
> No, just say "we don't support HWPOISON on 32-bit NUMA".
>
> Maybe simply using something like this.
>
> TOTALLY UNTESTED!
>
> Linus
> ---
> arch/x86/Kconfig | 6 ++++++
> mm/Kconfig | 4 +++-
> 2 files changed, 9 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 9369879..be1bb44 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -432,6 +432,12 @@ config X86_NUMAQ
> of Flat Logical. You will need a new lynxer.elf file to flash your
> firmware with - send email to <Martin.Bligh@us.ibm.com>.
>
> +config X86_SUPPORTS_MEMORY_FAILURE
> + bool
> + depends on !X86_NUMAQ
> + select ARCH_SUPPORTS_MEMORY_FAILURE
> + default y
Thanks Linus, this patch fixed the NUMAQ build problem.
Meanwhile i also found another similar build problem: sparsemem alone
triggers the build bug on 32-bit as well:
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_SPARSEMEM_STATIC=y
So i added that to the X86_SUPPORTS_MEMORY_FAILURE rules as well - with
that it works fine. (and this validates the concept of your patch as we
keep excluding a new kernel feature in a well-documented way instead of
narrowing existing hardware support with much less clear dependencies.)
I've attached the updated patch and will keep testing it a bit more
(there might be more corner cases). If it goes fine i can send it to you
via x86/urgent later today so that it gets into -rc1.
Can i add your signoff?
Ingo
------------------->
>From 5e4000b6808ffca466f41c01442527f9fe4305bd Mon Sep 17 00:00:00 2001
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Sat, 26 Sep 2009 09:35:07 -0700
Subject: [PATCH] x86: Fix hwpoison code related build failure on 32-bit NUMAQ
This build failure triggers:
In file included from include/linux/suspend.h:8,
from arch/x86/kernel/asm-offsets_32.c:11,
from arch/x86/kernel/asm-offsets.c:2:
include/linux/mm.h:503:2: error: #error SECTIONS_WIDTH+NODES_WIDTH+ZONES_WIDTH > BITS_PER_LONG - NR_PAGEFLAGS
Because due to the hwpoison page flag we ran out of page
flags on 32-bit.
Dont turn on hwpoison on 32-bit NUMA (it's rare in any
case).
Also clean up the Kconfig dependencies in the generic MM
code by introducing ARCH_SUPPORTS_MEMORY_FAILURE.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/x86/Kconfig | 6 ++++++
mm/Kconfig | 4 +++-
2 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 9369879..ef95406 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -432,6 +432,12 @@ config X86_NUMAQ
of Flat Logical. You will need a new lynxer.elf file to flash your
firmware with - send email to <Martin.Bligh@us.ibm.com>.
+config X86_SUPPORTS_MEMORY_FAILURE
+ bool
+ depends on (!X86_NUMAQ && !(X86_32 && SPARSEMEM))
+ select ARCH_SUPPORTS_MEMORY_FAILURE
+ default y
+
config X86_VISWS
bool "SGI 320/540 (Visual Workstation)"
depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT
diff --git a/mm/Kconfig b/mm/Kconfig
index 2477607..edd300a 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -244,10 +244,12 @@ config DEFAULT_MMAP_MIN_ADDR
This value can be changed after boot using the
/proc/sys/vm/mmap_min_addr tunable.
+config ARCH_SUPPORTS_MEMORY_FAILURE
+ bool
config MEMORY_FAILURE
depends on MMU
- depends on X86_MCE
+ depends on ARCH_SUPPORTS_MEMORY_FAILURE
bool "Enable recovery from hardware memory errors"
help
Enables code to recover from some memory failures on systems
next prev parent reply other threads:[~2009-09-26 17:35 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-16 12:51 [PULL] Please pull hwpoison code for 2.6.32 Andi Kleen
2009-09-26 14:13 ` [origin tree build failure] " Ingo Molnar
2009-09-26 15:17 ` Andi Kleen
2009-09-26 16:20 ` Andi Kleen
2009-09-26 17:28 ` Andi Kleen
2009-09-26 18:20 ` Andi Kleen
2009-09-26 16:35 ` Linus Torvalds
2009-09-26 17:35 ` Ingo Molnar [this message]
2009-09-26 17:43 ` [PATCH] x86: Fix hwpoison code related build failure on 32-bit NUMAQ Linus Torvalds
2009-09-26 18:10 ` Ingo Molnar
2009-09-26 18:12 ` Ingo Molnar
2009-09-26 18:11 ` [origin tree build failure] Re: [PULL] Please pull hwpoison code for 2.6.32 Andi Kleen
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=20090926173522.GA22723@elte.hu \
--to=mingo@elte.hu \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=fengguang.wu@intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/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.