[PATCH] Configurable NODES_SHIFT
Current implementations define NODES_SHIFT in include/asm-xxx/numnodes.h for each arch. Its definition is sometimes configurable. Indeed, ia64 defines 5 NODES_SHIFT values in the current git tree. But it looks a bit messy. SGI-SN2(ia64) system requires 1024 nodes, and the number of nodes already has been changeable by config. Suitable node's number may be changed in the future even if it is other architecture. So, I wrote configurable node's number. This patch set defines just default value for each arch which needs multi nodes except ia64. But, it is easy to change to configurable if necessary. On ia64 the number of nodes can be already configured in generic ia64 and SN2 config. But, NODES_SHIFT is defined for DIG64 and HP'S machine too. So, I changed it so that all platforms can be configured via CONFIG_NODES_SHIFT. It would be simpler. See also: http://marc.theaimsgroup.com/?l=linux-kernel&m=114358010523896&w=2 Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Cc: Hirokazu Takata <takata@linux-m32r.org> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Andi Kleen <ak@muc.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Richard Henderson <rth@twiddle.net> Cc: Kyle McMartin <kyle@mcmartin.ca> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Jack Steiner <steiner@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
653edba1a8
commit
c80d79d746
@@ -1,7 +0,0 @@
|
||||
#ifndef _ASM_MAX_NUMNODES_H
|
||||
#define _ASM_MAX_NUMNODES_H
|
||||
|
||||
/* Max 128 Nodes - Marvel */
|
||||
#define NODES_SHIFT 7
|
||||
|
||||
#endif /* _ASM_MAX_NUMNODES_H */
|
||||
@@ -31,8 +31,6 @@
|
||||
|
||||
#ifdef CONFIG_DISCONTIGMEM
|
||||
|
||||
#define NODES_SHIFT 4 /* Up to 16 nodes */
|
||||
|
||||
/*
|
||||
* Given a kernel address, find the home node of the underlying memory.
|
||||
*/
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* linux/include/asm-arm/numnodes.h
|
||||
*
|
||||
* Copyright (C) 2002 Russell King
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
/* This declaration for the size of the NUMA (CONFIG_DISCONTIGMEM)
|
||||
* memory node table is the default.
|
||||
*
|
||||
* A good place to override this value is include/asm/arch/memory.h.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARM_NUMNODES_H
|
||||
#define __ASM_ARM_NUMNODES_H
|
||||
|
||||
#include <asm/memory.h>
|
||||
|
||||
#ifndef NODES_SHIFT
|
||||
# define NODES_SHIFT 2 /* Normally, Max 4 Nodes */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,18 +0,0 @@
|
||||
#ifndef _ASM_MAX_NUMNODES_H
|
||||
#define _ASM_MAX_NUMNODES_H
|
||||
|
||||
#include <linux/config.h>
|
||||
|
||||
#ifdef CONFIG_X86_NUMAQ
|
||||
|
||||
/* Max 16 Nodes */
|
||||
#define NODES_SHIFT 4
|
||||
|
||||
#elif defined(CONFIG_ACPI_SRAT)
|
||||
|
||||
/* Max 8 Nodes */
|
||||
#define NODES_SHIFT 3
|
||||
|
||||
#endif /* CONFIG_X86_NUMAQ */
|
||||
|
||||
#endif /* _ASM_MAX_NUMNODES_H */
|
||||
@@ -1,20 +0,0 @@
|
||||
#ifndef _ASM_MAX_NUMNODES_H
|
||||
#define _ASM_MAX_NUMNODES_H
|
||||
|
||||
#ifdef CONFIG_IA64_DIG
|
||||
/* Max 8 Nodes */
|
||||
# define NODES_SHIFT 3
|
||||
#elif defined(CONFIG_IA64_HP_ZX1) || defined(CONFIG_IA64_HP_ZX1_SWIOTLB)
|
||||
/* Max 32 Nodes */
|
||||
# define NODES_SHIFT 5
|
||||
#elif defined(CONFIG_IA64_SGI_SN2) || defined(CONFIG_IA64_GENERIC)
|
||||
# if CONFIG_IA64_NR_NODES == 256
|
||||
# define NODES_SHIFT 8
|
||||
# elif CONFIG_IA64_NR_NODES <= 512
|
||||
# define NODES_SHIFT 9
|
||||
# elif CONFIG_IA64_NR_NODES <= 1024
|
||||
# define NODES_SHIFT 10
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_MAX_NUMNODES_H */
|
||||
@@ -1,15 +0,0 @@
|
||||
#ifndef _ASM_NUMNODES_H_
|
||||
#define _ASM_NUMNODES_H_
|
||||
|
||||
#include <linux/config.h>
|
||||
|
||||
#ifdef CONFIG_DISCONTIGMEM
|
||||
|
||||
#if defined(CONFIG_CHIP_M32700)
|
||||
#define NODES_SHIFT 1 /* Max 2 Nodes */
|
||||
#endif /* CONFIG_CHIP_M32700 */
|
||||
|
||||
#endif /* CONFIG_DISCONTIGMEM */
|
||||
|
||||
#endif /* _ASM_NUMNODES_H_ */
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _ASM_MAX_NUMNODES_H
|
||||
#define _ASM_MAX_NUMNODES_H
|
||||
|
||||
/* Max 128 Nodes */
|
||||
#define NODES_SHIFT 6
|
||||
|
||||
#endif /* _ASM_MAX_NUMNODES_H */
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _ASM_MAX_NUMNODES_H
|
||||
#define _ASM_MAX_NUMNODES_H
|
||||
|
||||
/* Max 8 Nodes */
|
||||
#define NODES_SHIFT 3
|
||||
|
||||
#endif /* _ASM_MAX_NUMNODES_H */
|
||||
@@ -1,9 +0,0 @@
|
||||
#ifndef _ASM_POWERPC_MAX_NUMNODES_H
|
||||
#define _ASM_POWERPC_MAX_NUMNODES_H
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/* Max 16 Nodes */
|
||||
#define NODES_SHIFT 4
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _ASM_POWERPC_MAX_NUMNODES_H */
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _ASM_MAX_NUMNODES_H
|
||||
#define _ASM_MAX_NUMNODES_H
|
||||
|
||||
/* Max 2 Nodes */
|
||||
#define NODES_SHIFT 1
|
||||
|
||||
#endif /* _ASM_MAX_NUMNODES_H */
|
||||
@@ -2,7 +2,6 @@
|
||||
#define _ASM_X8664_NUMA_H 1
|
||||
|
||||
#include <linux/nodemask.h>
|
||||
#include <asm/numnodes.h>
|
||||
|
||||
struct bootnode {
|
||||
u64 start,end;
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#ifndef _ASM_X8664_NUMNODES_H
|
||||
#define _ASM_X8664_NUMNODES_H 1
|
||||
|
||||
#include <linux/config.h>
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
#define NODES_SHIFT 6
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -3,11 +3,9 @@
|
||||
|
||||
#include <linux/config.h>
|
||||
|
||||
#ifndef CONFIG_FLATMEM
|
||||
#include <asm/numnodes.h>
|
||||
#endif
|
||||
|
||||
#ifndef NODES_SHIFT
|
||||
#ifdef CONFIG_NODES_SHIFT
|
||||
#define NODES_SHIFT CONFIG_NODES_SHIFT
|
||||
#else
|
||||
#define NODES_SHIFT 0
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user