Fix Altix boot breakage in ACPI
PATCH 1/1 Fix Altix boot breakage in ACPI
A recent ACPI change (commit 5dc90c0b2d4bd0127624bab67cec159b2c6c4daf) inadvertently broke Altix boot. This patch allow Altix to boot.
--- arch/ia64/Kconfig | 4 ++++ include/linux/acpi.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-)
Index: 2.6.26-rc2/arch/ia64/Kconfig
=================================--- 2.6.26-rc2.orig/arch/ia64/Kconfig 2008-05-16 09:36:37.285558037 -0500
+++ 2.6.26-rc2/arch/ia64/Kconfig 2008-05-16 09:37:39.149204580 -0500
@@ -60,6 +60,10 @@ config RWSEM_XCHGADD_ALGORITHM
bool
default y
+config HAVE_ARCH_PARSE_SRAT
+ bool
+ default y
+
config ARCH_HAS_ILOG2_U32
bool
default n
Index: 2.6.26-rc2/include/linux/acpi.h
=================================--- 2.6.26-rc2.orig/include/linux/acpi.h 2008-05-16 09:37:12.989971159 -0500
+++ 2.6.26-rc2/include/linux/acpi.h 2008-05-16 09:50:17.082906375 -0500
@@ -93,7 +93,7 @@ int acpi_parse_mcfg (struct acpi_table_h
void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
/* the following four functions are architecture-dependent */
-#ifdef CONFIG_HAVE_ARCH_PARSE_SRAT
+#if defined(CONFIG_HAVE_ARCH_PARSE_SRAT) && !defined(NR_NODE_MEMBLKS)
#define NR_NODE_MEMBLKS MAX_NUMNODES
#define acpi_numa_slit_init(slit) do {} while (0)
#define acpi_numa_processor_affinity_init(pa) do {} while (0)
Signature · 2 lines
Russ Anderson, OS RAS/Partitioning Project Lead SGI - Silicon Graphics Inc [email protected]
Quoted 1 line
A recent ACPI change (commit
5dc90c0b2d4bd0127624bab67cec159b2c6c4daf)
-ENOSUCHCOMMIT ... well I can't see it in Linus' tree.
-Tony
Quoted 3 lines · Tony
Quoted 1 line
A recent ACPI change (commit
5dc90c0b2d4bd0127624bab67cec159b2c6c4daf)
-ENOSUCHCOMMIT... well I can't see it in Linus' tree.
Sorry, I should have added more information.
It is in Andrew's tree (2.6.26-rc2-mm1). It has yet to make it to Linus' tree.
http://lkml.org/lkml/2008/5/14/366
The patch name is acpi-acpi_numa_init-build-fix
http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.26-rc2/2.6.26-rc2-mm1/patch-list
git bisect found:
------------------------------------------------------------------------------------5dc90c0b2d4bd0127624bab67cec159b2c6c4daf is first bad commit commit 5dc90c0b2d4bd0127624bab67cec159b2c6c4daf
Author: Ingo Molnar <[email protected]> Date: Thu May 1 09:51:47 2008 +0000
acpi-acpi_numa_init-build-fix
x86.git testing found the following build error on latest -git:
drivers/acpi/numa.c: In function 'acpi_numa_init':
drivers/acpi/numa.c:226: error: 'NR_NODE_MEMBLKS' undeclared (first use in this function) drivers/acpi/numa.c:226: error: (Each undeclared identifier is reported only once drivers/acpi/numa.c:226: error: for each function it appears in.)
with this config:
http://redhat.com/~mingo/misc/config-Wed_Apr_30_22_42_42_CEST_2008.bad
i suspect we dont want SRAT parsing when CONFIG_HAVE_ARCH_PARSE_SRAT is unset - but the fix looks a bit ugly. Perhaps we should define NR_NODE_MEMBLKS even in this case and just let the code fall back to some sane behavior?
:040000 040000 65397f028a8bc082be2bde667554c9115e88064b 58d35b65618fafdcbb449dd114e0381df467431d M drivers
------------------------------------------------------------------------------------
The inadvertent breakage is the patch puts #ifdef CONFIG_HAVE_ARCH_PARSE_SRAT around acpi_parse_memory_affinity() and acpi_table_parse_srat(), but Altix needs to parse the SRAT. The result is that Altix dies early in boot in the ACPI code.
The fix defines CONFIG_HAVE_ARCH_PARSE_SRAT in ia64 config and prevents the parsing routines from being defined as stubs if NR_NODE_MEMBLKS is defined.
Since the problem effects Altix, I sent the fix to linux-ia64. Would it have been better to send the fix directly to lkml & Andrew?
This patch fixes the problem
------------------------------------------------------------------------------------
A recent ACPI change (commit 5dc90c0b2d4bd0127624bab67cec159b2c6c4daf) inadvertently broke Altix boot. This patch allow Altix to boot.
--- arch/ia64/Kconfig | 4 ++++ include/linux/acpi.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-)
Index: 2.6.26-rc2/arch/ia64/Kconfig
=================================--- 2.6.26-rc2.orig/arch/ia64/Kconfig 2008-05-16 09:36:37.285558037 -0500
+++ 2.6.26-rc2/arch/ia64/Kconfig 2008-05-16 09:37:39.149204580 -0500
@@ -60,6 +60,10 @@ config RWSEM_XCHGADD_ALGORITHM
bool
default y
+config HAVE_ARCH_PARSE_SRAT
+ bool
+ default y
+
config ARCH_HAS_ILOG2_U32
bool
default n
Index: 2.6.26-rc2/include/linux/acpi.h
=================================--- 2.6.26-rc2.orig/include/linux/acpi.h 2008-05-16 09:37:12.989971159 -0500
+++ 2.6.26-rc2/include/linux/acpi.h 2008-05-16 09:50:17.082906375 -0500
@@ -93,7 +93,7 @@ int acpi_parse_mcfg (struct acpi_table_h
void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
/* the following four functions are architecture-dependent */
-#ifdef CONFIG_HAVE_ARCH_PARSE_SRAT
+#if defined(CONFIG_HAVE_ARCH_PARSE_SRAT) && !defined(NR_NODE_MEMBLKS)
#define NR_NODE_MEMBLKS MAX_NUMNODES
#define acpi_numa_slit_init(slit) do {} while (0)
#define acpi_numa_processor_affinity_init(pa) do {} while (0)
------------------------------------------------------------------------------------
Signature · 2 lines
Russ Anderson, OS RAS/Partitioning Project Lead SGI - Silicon Graphics Inc [email protected]
Quoted 5 lines · On Sat, 17 May 2008 09:10:35 -0500 Russ Anderson <[email protected]> wrote:
Quoted 3 lines · Tony
Quoted 1 line
A recent ACPI change (commit
5dc90c0b2d4bd0127624bab67cec159b2c6c4daf)
-ENOSUCHCOMMIT... well I can't see it in Linus' tree.
Quoted 8 lines
Sorry, I should have added more information.
It is in Andrew's tree (2.6.26-rc2-mm1). It has yet to make it to Linus' tree.
http://lkml.org/lkml/2008/5/14/366
The patch name is acpi-acpi_numa_init-build-fix
http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.26-rc2/2.6.26-rc2-mm1/patch-list
That was dropped because it broke things. umm...
From: "Torsten Kaiser" <[email protected]> To: "Andrew Morton" <[email protected]> Cc: [email protected] Subject: Re: 2.6.26-rc2-mm1 Date: Wed, 14 May 2008 21:12:13 +0200 Sender: [email protected] ... But somehow the NUMAness of my system is gone.
Quoted 30 lines
A recent ACPI change (commit
5dc90c0b2d4bd0127624bab67cec159b2c6c4daf) inadvertently broke Altix boot. This patch allow Altix to boot.Signed-off-by Russ Anderson <[email protected]>Acked-by Ingo Molnar <[email protected]>--- arch/ia64/Kconfig | 4 ++++ include/linux/acpi.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-)Index: 2.6.26-rc2/arch/ia64/Kconfig
=================================> --- 2.6.26-rc2.orig/arch/ia64/Kconfig 2008-05-16 09:36:37.285558037 -0500
+++ 2.6.26-rc2/arch/ia64/Kconfig 2008-05-16 09:37:39.149204580 -0500(quoted diff) +4
-0@@ -60,6 +60,10 @@ config RWSEM_XCHGADD_ALGORITHM bool default y +config HAVE_ARCH_PARSE_SRAT + bool + default y + config ARCH_HAS_ILOG2_U32 bool default nIndex:
2.6.26-rc2/include/linux/acpi.h
=================================> ---2.6.26-rc2.orig/include/linux/acpi.h2008-05-16 09:37:12.989971159 -0500
+++2.6.26-rc2/include/linux/acpi.h2008-05-16 09:50:17.082906375 -0500
Review int acpi_parse_mcfg (struct acpi_table_h · line 99
Quoted 8 lines
(quoted diff) +1
-1@@ -93,7 +93,7 @@ int acpi_parse_mcfg (struct acpi_table_h void acpi_table_print_madt_entry (struct acpi_subtable_header *madt); /* the following four functions are architecture-dependent */ -#ifdef CONFIG_HAVE_ARCH_PARSE_SRAT +#if defined(CONFIG_HAVE_ARCH_PARSE_SRAT) && !defined(NR_NODE_MEMBLKS) #define NR_NODE_MEMBLKS MAX_NUMNODES #define acpi_numa_slit_init(slit) do {} while (0) #define acpi_numa_processor_affinity_init(pa) do {} while (0)
So this affects machines other than altix?
Who gets to merge this? I'll plan on sending it in on Mondayish unless I hear otherwise.
(I wish the changelog was more specific than "inadvertently broke". It should explain what the failure was).
Hi Russ,
Quoted 6 lines
------------------------------------------------------------------------------------
The inadvertent breakage is the patch puts #ifdef
CONFIG_HAVE_ARCH_PARSE_SRATaroundacpi_parse_memory_affinity()andacpi_table_parse_srat(), but Altix needs to parse the SRAT. The result is that Altix dies early in boot in the ACPI code.
your patch fix fujitsu box problem too.
I think almost IA64 box use ACPI SRAT, not only altrix.
and IMHO, your patch is not altrix independent. it is generic more.
if possible, I hope change patch description. What do you think it?