Message ID | 1367898574-20594-1-git-send-email-michael@ellerman.id.au (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Tue, May 07, 2013 at 01:49:34PM +1000, Michael Ellerman wrote: > From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> > > Commit 7122beeee7bc1757682049780179d7c216dd1c83 upstream. > > The following commit breaks numa distance setup for old powerpc > systems that use form0 encoding in device tree. > > commit 41eab6f88f24124df89e38067b3766b7bef06ddb > powerpc/numa: Use form 1 affinity to setup node distance > > Device tree node /rtas/ibm,associativity-reference-points would > index into /cpus/PowerPCxxxx/ibm,associativity based on form0 or > form1 encoding detected by ibm,architecture-vec-5 property. > > All modern systems use form1 and current kernel code is correct. > However, on older systems with form0 encoding, the numa distance > will get hard coded as LOCAL_DISTANCE for all nodes. This causes > task scheduling anomaly since scheduler will skip building numa > level domain (topmost domain with all cpus) if all numa distances > are same. (value of 'level' in sched_init_numa() will remain 0) > > Prior to the above commit: > ((from) == (to) ? LOCAL_DISTANCE : REMOTE_DISTANCE) > > Restoring compatible behavior with this patch for old powerpc systems > with device tree where numa distance are encoded as form0. > > Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> > Signed-off-by: Michael Ellerman <michael@ellerman.id.au> > --- > arch/powerpc/mm/numa.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) What stable tree should this be applied to? thanks, greg k-h
On Mon, May 06, 2013 at 09:06:15PM -0700, Greg KH wrote: > On Tue, May 07, 2013 at 01:49:34PM +1000, Michael Ellerman wrote: > > From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> > > > > Commit 7122beeee7bc1757682049780179d7c216dd1c83 upstream. > > > > The following commit breaks numa distance setup for old powerpc > > systems that use form0 encoding in device tree. > > > > commit 41eab6f88f24124df89e38067b3766b7bef06ddb > > powerpc/numa: Use form 1 affinity to setup node distance > > > > Device tree node /rtas/ibm,associativity-reference-points would > > index into /cpus/PowerPCxxxx/ibm,associativity based on form0 or > > form1 encoding detected by ibm,architecture-vec-5 property. > > > > All modern systems use form1 and current kernel code is correct. > > However, on older systems with form0 encoding, the numa distance > > will get hard coded as LOCAL_DISTANCE for all nodes. This causes > > task scheduling anomaly since scheduler will skip building numa > > level domain (topmost domain with all cpus) if all numa distances > > are same. (value of 'level' in sched_init_numa() will remain 0) > > > > Prior to the above commit: > > ((from) == (to) ? LOCAL_DISTANCE : REMOTE_DISTANCE) > > > > Restoring compatible behavior with this patch for old powerpc systems > > with device tree where numa distance are encoded as form0. > > > > Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> > > Signed-off-by: Michael Ellerman <michael@ellerman.id.au> > > --- > > arch/powerpc/mm/numa.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > What stable tree should this be applied to? All of them please. cheers
On Tue, May 07, 2013 at 01:49:34PM +1000, Michael Ellerman wrote: > From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> > > Commit 7122beeee7bc1757682049780179d7c216dd1c83 upstream. Thanks, I'm queuing it for the 3.5 kernel. Cheers, -- Luis
On Wed, 2013-05-08 at 11:29 +0100, Luis Henriques wrote: > On Tue, May 07, 2013 at 01:49:34PM +1000, Michael Ellerman wrote: > > From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> > > > > Commit 7122beeee7bc1757682049780179d7c216dd1c83 upstream. > > Thanks, I'm queuing it for the 3.5 kernel. Thanks, I didn't know you guys were maintaining a 3.5 stable branch. cheers
On Tue, 2013-05-07 at 13:49 +1000, Michael Ellerman wrote: > From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> > > Commit 7122beeee7bc1757682049780179d7c216dd1c83 upstream. [...] Queued up for 3.2, thanks. Ben.
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index bba87ca..6a252c4 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -201,7 +201,7 @@ int __node_distance(int a, int b) int distance = LOCAL_DISTANCE; if (!form1_affinity) - return distance; + return ((a == b) ? LOCAL_DISTANCE : REMOTE_DISTANCE); for (i = 0; i < distance_ref_points_depth; i++) { if (distance_lookup_table[a][i] == distance_lookup_table[b][i])