• Lee Schermerhorn's avatar
    numa: add generic percpu var numa_node_id() implementation · 72812019
    Lee Schermerhorn authored
    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: default avatarLee Schermerhorn <lee.schermerhorn@hp.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Reviewed-by: default avatarChristoph Lameter <cl@linux-foundation.org>
    Cc: Nick Piggin <npiggin@suse.de>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Eric Whitney <eric.whitney@hp.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: "Luck, Tony" <tony.luck@intel.com>
    Cc: Pekka Enberg <penberg@cs.helsinki.fi>
    Cc: <linux-arch@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    72812019
page_alloc.c 149 KB