From: "Jan Beulich" <JBeulich@novell.com>
To: <mingo@elte.hu>, <tglx@linutronix.de>, <hpa@zytor.com>
Cc: <linux-kernel@vger.kernel.org>
Subject: [PATCH] x86: unify "numa=" command line option handling
Date: Thu, 06 Jan 2011 17:02:39 +0000 [thread overview]
Message-ID: <4D2603BF020000780002ACA7@vpn.id2.novell.com> (raw)
In order to be able to suppress the use of SRAT tables that 32-bit
Linux can't deal with (possibly leading to a non-bootable system,
without disabling ACPI altogether), move the "numa=" option handling
to common code.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
---
arch/x86/include/asm/numa_32.h | 2 ++
arch/x86/include/asm/numa_64.h | 1 +
arch/x86/mm/numa.c | 22 ++++++++++++++++++++++
arch/x86/mm/numa_64.c | 24 +++++-------------------
arch/x86/mm/srat_32.c | 1 -
5 files changed, 30 insertions(+), 20 deletions(-)
--- 2.6.37/arch/x86/include/asm/numa_32.h
+++ 2.6.37-x86-numa-option/arch/x86/include/asm/numa_32.h
@@ -1,6 +1,8 @@
#ifndef _ASM_X86_NUMA_32_H
#define _ASM_X86_NUMA_32_H
+extern int numa_off;
+
extern int pxm_to_nid(int pxm);
extern void numa_remove_cpu(int cpu);
--- 2.6.37/arch/x86/include/asm/numa_64.h
+++ 2.6.37-x86-numa-option/arch/x86/include/asm/numa_64.h
@@ -40,6 +40,7 @@ extern void __cpuinit numa_remove_cpu(in
#ifdef CONFIG_NUMA_EMU
#define FAKE_NODE_MIN_SIZE ((u64)64 << 20)
#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL))
+void numa_emu_cmdline(char *);
#endif /* CONFIG_NUMA_EMU */
#else
static inline void init_cpu_to_node(void) { }
--- 2.6.37/arch/x86/mm/numa.c
+++ 2.6.37-x86-numa-option/arch/x86/mm/numa.c
@@ -2,6 +2,28 @@
#include <linux/topology.h>
#include <linux/module.h>
#include <linux/bootmem.h>
+#include <asm/numa.h>
+#include <asm/acpi.h>
+
+int __initdata numa_off;
+
+static __init int numa_setup(char *opt)
+{
+ if (!opt)
+ return -EINVAL;
+ if (!strncmp(opt, "off", 3))
+ numa_off = 1;
+#ifdef CONFIG_NUMA_EMU
+ if (!strncmp(opt, "fake=", 5))
+ numa_emu_cmdline(opt + 5);
+#endif
+#ifdef CONFIG_ACPI_NUMA
+ if (!strncmp(opt, "noacpi", 6))
+ acpi_numa = -1;
+#endif
+ return 0;
+}
+early_param("numa", numa_setup);
/*
* Which logical CPUs are on which nodes
--- 2.6.37/arch/x86/mm/numa_64.c
+++ 2.6.37-x86-numa-option/arch/x86/mm/numa_64.c
@@ -30,7 +30,6 @@ s16 apicid_to_node[MAX_LOCAL_APIC] __cpu
[0 ... MAX_LOCAL_APIC-1] = NUMA_NO_NODE
};
-int numa_off __initdata;
static unsigned long __initdata nodemap_addr;
static unsigned long __initdata nodemap_size;
@@ -263,6 +262,11 @@ static struct bootnode nodes[MAX_NUMNODE
static struct bootnode physnodes[MAX_NUMNODES] __initdata;
static char *cmdline __initdata;
+void __init numa_emu_cmdline(char *str)
+{
+ cmdline = str;
+}
+
static int __init setup_physnodes(unsigned long start, unsigned long end,
int acpi, int k8)
{
@@ -661,24 +665,6 @@ unsigned long __init numa_free_all_bootm
return pages;
}
-static __init int numa_setup(char *opt)
-{
- if (!opt)
- return -EINVAL;
- if (!strncmp(opt, "off", 3))
- numa_off = 1;
-#ifdef CONFIG_NUMA_EMU
- if (!strncmp(opt, "fake=", 5))
- cmdline = opt + 5;
-#endif
-#ifdef CONFIG_ACPI_NUMA
- if (!strncmp(opt, "noacpi", 6))
- acpi_numa = -1;
-#endif
- return 0;
-}
-early_param("numa", numa_setup);
-
#ifdef CONFIG_NUMA
static __init int find_near_online_node(int node)
--- 2.6.37/arch/x86/mm/srat_32.c
+++ 2.6.37-x86-numa-option/arch/x86/mm/srat_32.c
@@ -59,7 +59,6 @@ static struct node_memory_chunk_s __init
static int __initdata num_memory_chunks; /* total number of memory chunks */
static u8 __initdata apicid_to_pxm[MAX_APICID];
-int numa_off __initdata;
int acpi_numa __initdata;
static __init void bad_srat(void)
next reply other threads:[~2011-01-06 17:02 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-06 17:02 Jan Beulich [this message]
2011-01-06 20:36 ` [PATCH] x86: unify "numa=" command line option handling David Rientjes
2011-01-07 7:51 ` Jan Beulich
2011-01-07 9:58 ` David Rientjes
2011-01-07 10:06 ` Jan Beulich
2011-01-07 12:57 ` Ingo Molnar
2011-01-07 13:32 ` Jan Beulich
2011-01-07 14:22 ` Ingo Molnar
2011-01-07 14:26 ` Jan Beulich
2011-01-07 15:12 ` Ingo Molnar
2011-01-07 19:55 ` David Rientjes
2011-01-10 8:14 ` Jan Beulich
2011-01-07 20:37 ` Tejun Heo
2011-01-07 20:33 ` Tejun Heo
2011-01-07 20:36 ` David Rientjes
2011-01-07 20:43 ` Tejun Heo
2011-01-07 20:46 ` David Rientjes
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=4D2603BF020000780002ACA7@vpn.id2.novell.com \
--to=jbeulich@novell.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--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.