Skip to contentSkip to conversation

use asm-generic/topology.h

PATCH In review Matthew Dobson 3 participants 5 messages Oct 30, 2002 – Oct 31, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 use asm-generic/topology.h

Linus,

use_generic_topology.patch

This patch changes ppc64 & alpha to use the generic topology.h for the non-NUMA case rather than redefining the same macros. It is much easier to maintain one set of generic non-NUMA macros than several.

[mcd@arrakis patches]$ diffstat use_generic_topo-2.5.44.patch

 asm-alpha/topology.h |   19 +++++++------------
 asm-ppc64/topology.h |    8 ++------
 2 files changed, 9 insertions(+), 18 deletions(-)

Cheers!

-Matt

include/asm-alpha/topology.h +7 -12
diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.44-vanilla/include/asm-alpha/topology.h linux-2.5.44-topology_fixup/include/asm-alpha/topology.h
@@ -1,20 +1,15 @@
 #ifndef _ASM_ALPHA_TOPOLOGY_H
 #define _ASM_ALPHA_TOPOLOGY_H
 
-#ifdef CONFIG_NUMA
-#ifdef CONFIG_ALPHA_WILDFIRE
+#if defined(CONFIG_NUMA) && defined(CONFIG_ALPHA_WILDFIRE)
+
 /* With wildfire assume 4 CPUs per node */
 #define __cpu_to_node(cpu)		((cpu) >> 2)
-#endif /* CONFIG_ALPHA_WILDFIRE */
-#endif /* CONFIG_NUMA */
 
-#if !defined(CONFIG_NUMA) || !defined(CONFIG_ALPHA_WILDFIRE)
-#define __cpu_to_node(cpu)		(0)
-#define __memblk_to_node(memblk)	(0)
-#define __parent_node(nid)		(0)
-#define __node_to_first_cpu(node)	(0)
-#define __node_to_cpu_mask(node)	(cpu_online_map)
-#define __node_to_memblk(node)		(0)
-#endif /* !CONFIG_NUMA || !CONFIG_ALPHA_WILDFIRE */
+#else /* !CONFIG_NUMA || !CONFIG_ALPHA_WILDFIRE */
+
+#include <asm-generic/topology.h>
+
+#endif /* CONFIG_NUMA && CONFIG_ALPHA_WILDFIRE */
 
 #endif /* _ASM_ALPHA_TOPOLOGY_H */
include/asm-ppc64/topology.h +2 -6
diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.44-vanilla/include/asm-ppc64/topology.h linux-2.5.44-topology_fixup/include/asm-ppc64/topology.h
@@ -48,12 +48,8 @@
 
 #else /* !CONFIG_NUMA */
 
-#define __cpu_to_node(cpu)		(0)
-#define __memblk_to_node(memblk)	(0)
-#define __parent_node(nid)		(0)
-#define __node_to_first_cpu(node)	(0)
-#define __node_to_cpu_mask(node)	(cpu_online_map)
-#define __node_to_memblk(node)		(0)
+/* If non-NUMA, grab the generic macros */
+#include <asm-generic/topology.h>
 
 #endif /* CONFIG_NUMA */
 
#1 lore raw

Hi Matt,

Quoted 5 lines

use_generic_topology.patch

This patch changes ppc64 & alpha to use the generic topology.h for the non-NUMA case rather than redefining the same macros. It is much easier to maintain one set of generic non-NUMA macros than several.

Looks good from the ppc64 perspective.

Anton

#2 lore raw
Quoted 11 lines · Anton Blanchard

Hi Matt,

Quoted 3 lines

use_generic_topology.patch

This patch changes ppc64 & alpha to use the generic topology.h for the non-NUMA case rather than redefining the same macros. It is much easier to maintain one set of generic non-NUMA macros than several.

Looks good from the ppc64 perspective.

Anton

Glad to have the positive feedback. It doesn't really change how anything works, just eliminates duplicate code and makes modifying the generic behavior simpler.

Anyone that works with alpha want to verify that I haven't inadvertently hosed your topology file?

Cheers!

-Matt

#3 lore raw
Quoted 13 lines · Matthew Dobson
Quoted 12 lines · Anton Blanchard

Hi Matt,

Quoted 5 lines

use_generic_topology.patch

This patch changes ppc64 & alpha to use the generic topology.h for the non-NUMA case rather than redefining the same macros. It is much easier to maintain one set of generic non-NUMA macros than several.

Looks good from the ppc64 perspective.

Quoted 9 lines
Quoted 1 line

Anton

Glad to have the positive feedback. It doesn't really change how anything works, just eliminates duplicate code and makes modifying the generic behavior simpler.

Anyone that works with alpha want to verify that I haven't inadvertently hosed your topology file?

I'd say six of one, half-dozen of the other. I've been working with another engineer on updated patches that among other things make NUMA work on Alpha again. We're also re-working much of the surrounding code, including much of this file anyway - Marvel uses a much different topology than Wildfire.

It looks fine to me, but realistically the only opinion I can give for real is a shoulder shrug, as I'm not exactly sure when the code will be ready for submission. Actually, the patch looks just like a part of the patch we have working, just without Marvel support. Then again, I suppose IBM would have a hard time doing that, huh? ;)

- Pete

#4 lore raw
Quoted 8 lines · Peter Rival

<snip>

I'd say six of one, half-dozen of the other. I've been working with another engineer on updated patches that among other things make NUMA work on Alpha again. We're also re-working much of the surrounding code, including much of this file anyway - Marvel uses a much different topology than Wildfire.

Quoted 5 lines

It looks fine to me, but realistically the only opinion I can give for real is a shoulder shrug, as I'm not exactly sure when the code will be ready for submission. Actually, the patch looks just like a part of the patch we have working, just without Marvel support. Then again, I suppose IBM would have a hard time doing that, huh? ;)

I'll take that as a thumbs-up. "A wink's as good as a nudge to a blind bat! eh? EH?"

Please apply, Linus.

Oh yeah... If you want to send me free hardware to play with, we can see what happens on the Marvel support front... ;) ;)

Cheers!

-Matt