On 27.08.2014 [17:34:01 +0800], Li Zhong wrote:
> this patches changes some error handling logics in numa_setup_cpu(),
> when cpu node is not found, so:
> 
> if the cpu is possible, but not present, -1 is kept in numa_cpu_lookup_table,
> so later, if the cpu is added, we could set correct numa information for it.
> 
> if the cpu is present, then we set the first online node to
> numa_cpu_lookup_table instead of 0 ( in case 0 might not be an online node? )

Not currently possible (Node 0 is always online), but I'm working on
changing that :)

> 
> Cc: Nishanth Aravamudan <n...@linux.vnet.ibm.com>
> Cc: Nathan Fontenot <nf...@linux.vnet.ibm.com>
> Signed-off-by: Li Zhong <zh...@linux.vnet.ibm.com>

Acked-by: Nishanth Aravamudan <n...@linux.vnet.ibm.com>
> ---
>  arch/powerpc/mm/numa.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
> index 3a9061e..ec32d46 100644
> --- a/arch/powerpc/mm/numa.c
> +++ b/arch/powerpc/mm/numa.c
> @@ -538,7 +538,7 @@ static int of_drconf_to_nid_single(struct of_drconf_cell 
> *drmem,
>   */
>  static int numa_setup_cpu(unsigned long lcpu)
>  {
> -     int nid;
> +     int nid = -1;
>       struct device_node *cpu;
> 
>       /*
> @@ -555,19 +555,21 @@ static int numa_setup_cpu(unsigned long lcpu)
> 
>       if (!cpu) {
>               WARN_ON(1);
> -             nid = 0;
> -             goto out;
> +             if (cpu_present(lcpu))
> +                     goto out_present;
> +             else
> +                     goto out;
>       }
> 
>       nid = of_node_to_nid_single(cpu);
> 
> +out_present:
>       if (nid < 0 || !node_online(nid))
>               nid = first_online_node;
> -out:
> -     map_cpu_to_node(lcpu, nid);
> 
> +     map_cpu_to_node(lcpu, nid);
>       of_node_put(cpu);
> -
> +out:
>       return nid;
>  }
> 
> -- 
> 1.9.1
> 

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to