path: root/mm
diff options
authorLee Schermerhorn <>2010-05-26 14:44:56 -0700
committerLinus Torvalds <>2010-05-27 09:12:57 -0700
commit7281201922a0063fa60804ce39c277fc98142a47 (patch)
tree4bf089d077b1055e54bc1411dcc0db121d01d9fa /mm
parent866707fc2721df8fee637fcf0239628b9231f9ea (diff)
numa: add generic percpu var numa_node_id() implementation
Rework the generic version of the numa_node_id() function to use the new generic percpu variable infrastructure. Guard the new implementation with a new config option: CONFIG_USE_PERCPU_NUMA_NODE_ID. Archs which support this new implemention will default this option to 'y' when NUMA is configured. This config option could be removed if/when all archs switch over to the generic percpu implementation of numa_node_id(). Arch support involves: 1) converting any existing per cpu variable implementations to use this implementation. x86_64 is an instance of such an arch. 2) archs that don't use a per cpu variable for numa_node_id() will need to initialize the new per cpu variable "numa_node" as cpus are brought on-line. ia64 is an example. 3) Defining USE_PERCPU_NUMA_NODE_ID in arch dependent Kconfig--e.g., when NUMA is configured. This is required because I have retained the old implementation by default to allow archs to be modified incrementally, as desired. Subsequent patches will convert x86_64 and ia64 to use this implemenation. Signed-off-by: Lee Schermerhorn <> Cc: Tejun Heo <> Cc: Mel Gorman <> Reviewed-by: Christoph Lameter <> Cc: Nick Piggin <> Cc: David Rientjes <> Cc: Eric Whitney <> Cc: KAMEZAWA Hiroyuki <> Cc: Ingo Molnar <> Cc: Thomas Gleixner <> Cc: "H. Peter Anvin" <> Cc: "Luck, Tony" <> Cc: Pekka Enberg <> Cc: <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'mm')
1 files changed, 5 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 08b349931ebc..6fe1b65ee1a8 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -57,6 +57,11 @@
#include <asm/div64.h>
#include "internal.h"
+DEFINE_PER_CPU(int, numa_node);
* Array of node states.