[PATCH 1/2] powerpc/numa: use cached value of update->cpu in update_cpu_topology

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE4375d

4 messages, 2 authors, 2014-10-28 · open the first message on its own page

[PATCH 1/2] powerpc/numa: use cached value of update->cpu in update_cpu_topology

From: Nishanth Aravamudan <hidden>
Date: 2014-10-18 00:49:54

There isn't any need to keep referring to update->cpu, as we've already
checked cpu == update->cpu at this point.

Signed-off-by: Nishanth Aravamudan <redacted>
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 649666d5d1c2..86fdb004ad2f 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -1491,8 +1491,8 @@ static int update_cpu_topology(void *data)
 		if (cpu != update->cpu)
 			continue;
 
-		unmap_cpu_from_node(update->cpu);
-		map_cpu_to_node(update->cpu, update->new_nid);
+		unmap_cpu_from_node(cpu);
+		map_cpu_to_node(cpu, update->new_nid);
 		vdso_getcpu_init();
 	}
 

[PATCH 2/2] powerpc/numa: ensure per-cpu NUMA mappings are correct on topology update

From: Nishanth Aravamudan <hidden>
Date: 2014-10-18 00:50:59

We received a report of warning in kernel/sched/core.c where the sched
group was NULL on an LPAR after a topology update. This seems to occur
because after the topology update has moved the CPUs, cpu_to_node is
returning the old value still, which ends up breaking the consistency of
the NUMA topology in the per-cpu maps. Ensure that we update the per-cpu
fields when we re-map CPUs.
    
Signed-off-by: Nishanth Aravamudan <redacted>
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 86fdb004ad2f..048be62dc979 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -1488,11 +1488,14 @@ static int update_cpu_topology(void *data)
 	cpu = smp_processor_id();
 
 	for (update = data; update; update = update->next) {
+		int new_nid = update->new_nid;
 		if (cpu != update->cpu)
 			continue;
 
 		unmap_cpu_from_node(cpu);
-		map_cpu_to_node(cpu, update->new_nid);
+		map_cpu_to_node(cpu, new_nid);
+		set_cpu_numa_node(cpu, new_nid);
+		set_cpu_numa_mem(cpu, local_memory_node(new_nid));
 		vdso_getcpu_init();
 	}
 

Re: [2/2] powerpc/numa: ensure per-cpu NUMA mappings are correct on topology update

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2014-10-21 04:36:28

On Sat, 2014-18-10 at 00:50:40 UTC, Nishanth Aravamudan wrote:
We received a report of warning in kernel/sched/core.c where the sched
group was NULL on an LPAR after a topology update. This seems to occur
because after the topology update has moved the CPUs, cpu_to_node is
returning the old value still, which ends up breaking the consistency of
the NUMA topology in the per-cpu maps. Ensure that we update the per-cpu
fields when we re-map CPUs.
This looks like a bug fix, I assume you want it to go in for 3.18 ?

cheers

Re: [2/2] powerpc/numa: ensure per-cpu NUMA mappings are correct on topology update

From: Nishanth Aravamudan <hidden>
Date: 2014-10-28 18:02:30

Hi Michael,

On 21.10.2014 [15:36:27 +1100], Michael Ellerman wrote:
On Sat, 2014-18-10 at 00:50:40 UTC, Nishanth Aravamudan wrote:
quoted
We received a report of warning in kernel/sched/core.c where the sched
group was NULL on an LPAR after a topology update. This seems to occur
because after the topology update has moved the CPUs, cpu_to_node is
returning the old value still, which ends up breaking the consistency of
the NUMA topology in the per-cpu maps. Ensure that we update the per-cpu
fields when we re-map CPUs.
This looks like a bug fix, I assume you want it to go in for 3.18 ?
Yes, please!

Thanks,
Nish
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help