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