Re: [PATCH 3/8] numa: ia64: use generic percpu var numa_node_id() implementation

KAMEZAWA Hiroyuki <[email protected]>
Newsgroups org.kernel.vger.linux-numa,org.kvack.linux-mm
Message-ID <[email protected]>
On Thu, 15 Apr 2010 13:30:09 -0400
Lee Schermerhorn <[email protected]> wrote:

> Against:  2.6.34-rc3-mmotm-100405-1609
> 
> ia64:  Use generic percpu implementation of numa_node_id()
>    + intialize per cpu 'numa_node'
>    + remove ia64 cpu_to_node() macro;  use generic
>    + define CONFIG_USE_PERCPU_NUMA_NODE_ID when NUMA configured
> 
> Signed-off-by: Lee Schermerhorn <[email protected]>
> Reviewed-by: Christoph Lameter <[email protected]>
> 

Reviewd-by: KAMEZAWA Hiroyuki <[email protected]>

BTW, Could add some explanation about "when numa_node_id() turns to be available" ?

IIUC,
 - BOOT cpu ...  after smp_prepare_boot_cpu()
 - Other cpu ..  after smp_init() (i.e. always.)

Right ? I'm sorry if it's well-known.

Thanks,
-Kame



> ---
> 
> New in V2
> 
> V3, V4: no change
> 
>  arch/ia64/Kconfig                |    4 ++++
>  arch/ia64/include/asm/topology.h |    5 -----
>  arch/ia64/kernel/smpboot.c       |    6 ++++++
>  3 files changed, 10 insertions(+), 5 deletions(-)
> 
> Index: linux-2.6.34-rc3-mmotm-100405-1609/arch/ia64/kernel/smpboot.c
> ===================================================================
> --- linux-2.6.34-rc3-mmotm-100405-1609.orig/arch/ia64/kernel/smpboot.c	2010-04-07 10:03:38.000000000 -0400
> +++ linux-2.6.34-rc3-mmotm-100405-1609/arch/ia64/kernel/smpboot.c	2010-04-07 10:10:27.000000000 -0400
> @@ -390,6 +390,11 @@ smp_callin (void)
>  
>  	fix_b0_for_bsp();
>  
> +	/*
> +	 * numa_node_id() works after this.
> +	 */
> +	set_numa_node(cpu_to_node_map[cpuid]);
> +
>  	ipi_call_lock_irq();
>  	spin_lock(&vector_lock);
>  	/* Setup the per cpu irq handling data structures */
> @@ -632,6 +637,7 @@ void __devinit smp_prepare_boot_cpu(void
>  {
>  	cpu_set(smp_processor_id(), cpu_online_map);
>  	cpu_set(smp_processor_id(), cpu_callin_map);
> +	set_numa_node(cpu_to_node_map[smp_processor_id()]);
>  	per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;
>  	paravirt_post_smp_prepare_boot_cpu();
>  }
> Index: linux-2.6.34-rc3-mmotm-100405-1609/arch/ia64/include/asm/topology.h
> ===================================================================
> --- linux-2.6.34-rc3-mmotm-100405-1609.orig/arch/ia64/include/asm/topology.h	2010-04-07 09:49:13.000000000 -0400
> +++ linux-2.6.34-rc3-mmotm-100405-1609/arch/ia64/include/asm/topology.h	2010-04-07 10:10:27.000000000 -0400
> @@ -26,11 +26,6 @@
>  #define RECLAIM_DISTANCE 15
>  
>  /*
> - * Returns the number of the node containing CPU 'cpu'
> - */
> -#define cpu_to_node(cpu) (int)(cpu_to_node_map[cpu])
> -
> -/*
>   * Returns a bitmask of CPUs on Node 'node'.
>   */
>  #define cpumask_of_node(node) ((node) == -1 ?				\
> Index: linux-2.6.34-rc3-mmotm-100405-1609/arch/ia64/Kconfig
> ===================================================================
> --- linux-2.6.34-rc3-mmotm-100405-1609.orig/arch/ia64/Kconfig	2010-04-07 10:04:03.000000000 -0400
> +++ linux-2.6.34-rc3-mmotm-100405-1609/arch/ia64/Kconfig	2010-04-07 10:10:27.000000000 -0400
> @@ -497,6 +497,10 @@ config HAVE_ARCH_NODEDATA_EXTENSION
>  	def_bool y
>  	depends on NUMA
>  
> +config USE_PERCPU_NUMA_NODE_ID
> +	def_bool y
> +	depends on NUMA
> +
>  config ARCH_PROC_KCORE_TEXT
>  	def_bool y
>  	depends on PROC_KCORE
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to [email protected].  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.