lkml.org 
[lkml]   [2003]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] Clean up MAX_NR_NODES/NUMNODES/etc. [3/5]
Matthew Dobson wrote:
> Ok, I made an attempt to clean up this mess quite a while ago (2.5.47),
> but that patch is utterly useless now. At Martin's urging I've created
> a new series of patches to resolve this.
>
> 01 - Make sure MAX_NUMNODES is defined in one and only one place. Remove
> superfluous definitions. Instead of defining MAX_NUMNODES in
> asm/numnodes.h, we define NODES_SHIFT there. Then in linux/mmzone.h we
> turn that NODES_SHIFT value into MAX_NUMNODES.
>
> 02 - Remove MAX_NR_NODES. This value is only used in a couple of
> places, and it's incorrectly used in all those places as far as I can
> tell. Replace with MAX_NUMNODES. Create MAX_NODES_SHIFT and use this
> value to check NODES_SHIFT is appropriate. A possible future patch
> should make MAX_NODES_SHIFT vary based on 32 vs. 64 bit archs.
>
> 03 - Fix up the sh arch. sh defined NR_NODES, change sh to use standard
> MAX_NUMNODES instead.
>
> 04 - Fix up the arm arch. This needs to be reviewed. Relatively
> straightforward replacement of NR_NODES with standard MAX_NUMNODES.
>
> 05 - Fix up the ia64 arch. This *definitely* needs to be reviewed. This
> code made my head hurt. I think I may have gotten it right. Totally
> untested.

Cheers!

-Matt
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.0-test5/include/asm-sh/numnodes.h linux-2.6.0-test5-max_numnodes2nodes_shift/include/asm-sh/numnodes.h
--- linux-2.6.0-test5/include/asm-sh/numnodes.h Wed Dec 31 16:00:00 1969
+++ linux-2.6.0-test5-max_numnodes2nodes_shift/include/asm-sh/numnodes.h Fri Sep 12 17:26:31 2003
@@ -0,0 +1,7 @@
+#ifndef _ASM_MAX_NUMNODES_H
+#define _ASM_MAX_NUMNODES_H
+
+/* Max 2 Nodes */
+#define NODES_SHIFT 1
+
+#endif /* _ASM_MAX_NUMNODES_H */
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.0-test5/arch/sh/mm/init.c linux-2.6.0-test5-nr_nodes/arch/sh/mm/init.c
--- linux-2.6.0-test5/arch/sh/mm/init.c Mon Sep 8 12:50:21 2003
+++ linux-2.6.0-test5-nr_nodes/arch/sh/mm/init.c Fri Sep 12 17:28:43 2003
@@ -51,8 +51,8 @@ unsigned long mmu_context_cache = NO_CON
#endif

#ifdef CONFIG_DISCONTIGMEM
-pg_data_t discontig_page_data[NR_NODES];
-bootmem_data_t discontig_node_bdata[NR_NODES];
+pg_data_t discontig_page_data[MAX_NUMNODES];
+bootmem_data_t discontig_node_bdata[MAX_NUMNODES];
#endif

void show_mem(void)
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.0-test5/include/asm-sh/mmzone.h linux-2.6.0-test5-nr_nodes/include/asm-sh/mmzone.h
--- linux-2.6.0-test5/include/asm-sh/mmzone.h Mon Sep 8 12:50:27 2003
+++ linux-2.6.0-test5-nr_nodes/include/asm-sh/mmzone.h Fri Sep 12 17:28:08 2003
@@ -10,14 +10,14 @@

#include <linux/config.h>

+#ifdef CONFIG_DISCONTIGMEM
+
/* Currently, just for HP690 */
#define PHYSADDR_TO_NID(phys) ((((phys) - __MEMORY_START) >= 0x01000000)?1:0)
-#define NR_NODES 2

-extern pg_data_t discontig_page_data[NR_NODES];
-extern bootmem_data_t discontig_node_bdata[NR_NODES];
+extern pg_data_t discontig_page_data[MAX_NUMNODES];
+extern bootmem_data_t discontig_node_bdata[MAX_NUMNODES];

-#ifdef CONFIG_DISCONTIGMEM
/*
* Following are macros that each numa implmentation must define.
*/
@@ -46,7 +46,7 @@ static inline int is_valid_page(struct p
{
unsigned int i;

- for (i = 0; i < NR_NODES; i++) {
+ for (i = 0; i < MAX_NUMNODES; i++) {
if (page >= NODE_MEM_MAP(i) &&
page < NODE_MEM_MAP(i) + NODE_DATA(i)->node_size)
return 1;
\
 
 \ /
  Last update: 2005-03-22 13:48    [from the cache]
©2003-2011 Jasper Spaans