From: Matthew Dobson <colpatch@us.ibm.com>
To: Jesse Barnes <jbarnes@sgi.com>
Cc: "Martin J. Bligh" <mbligh@aracnet.com>,
Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org, rmk@arm.linux.org.uk,
wli@holomorphy.com
Subject: [PATCH[ Clean up MAX_NR_NODES/NUMNODES/etc. [2/5]
Date: Mon, 15 Sep 2003 17:35:12 -0700 [thread overview]
Message-ID: <3F665AC0.7070104@us.ibm.com> (raw)
In-Reply-To: 3F6659DF.1090508@us.ibm.com
[-- Attachment #1: Type: text/plain, Size: 1262 bytes --]
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
[-- Attachment #2: 02-remove-max_nr_nodes.patch --]
[-- Type: text/plain, Size: 3005 bytes --]
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.0-test5-max_numnodes2nodes_shift/arch/i386/kernel/smpboot.c linux-2.6.0-test5-remove-max_nr_nodes/arch/i386/kernel/smpboot.c
--- linux-2.6.0-test5-max_numnodes2nodes_shift/arch/i386/kernel/smpboot.c Mon Sep 8 12:50:03 2003
+++ linux-2.6.0-test5-remove-max_nr_nodes/arch/i386/kernel/smpboot.c Mon Sep 15 13:44:57 2003
@@ -499,8 +499,8 @@ static struct task_struct * __init fork_
#ifdef CONFIG_NUMA
/* which logical CPUs are on which nodes */
-cpumask_t node_2_cpu_mask[MAX_NR_NODES] =
- { [0 ... MAX_NR_NODES-1] = CPU_MASK_NONE };
+cpumask_t node_2_cpu_mask[MAX_NUMNODES] =
+ { [0 ... MAX_NUMNODES-1] = CPU_MASK_NONE };
/* which node each logical CPU is on */
int cpu_2_node[NR_CPUS] = { [0 ... NR_CPUS-1] = 0 };
@@ -518,7 +518,7 @@ static inline void unmap_cpu_to_node(int
int node;
printk("Unmapping cpu %d from all nodes\n", cpu);
- for (node = 0; node < MAX_NR_NODES; node ++)
+ for (node = 0; node < MAX_NUMNODES; node ++)
cpu_clear(cpu, node_2_cpu_mask[node]);
cpu_2_node[cpu] = -1;
}
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.0-test5-max_numnodes2nodes_shift/include/linux/mmzone.h linux-2.6.0-test5-remove-max_nr_nodes/include/linux/mmzone.h
--- linux-2.6.0-test5-max_numnodes2nodes_shift/include/linux/mmzone.h Mon Sep 15 13:44:27 2003
+++ linux-2.6.0-test5-remove-max_nr_nodes/include/linux/mmzone.h Mon Sep 15 13:44:57 2003
@@ -304,19 +304,27 @@ extern void setup_per_zone_pages_min(voi
#define numa_node_id() (cpu_to_node(smp_processor_id()))
#ifndef CONFIG_DISCONTIGMEM
+
extern struct pglist_data contig_page_data;
#define NODE_DATA(nid) (&contig_page_data)
#define NODE_MEM_MAP(nid) mem_map
-#define MAX_NR_NODES 1
+#define MAX_NODES_SHIFT 0
+
#else /* CONFIG_DISCONTIGMEM */
#include <asm/mmzone.h>
-
-/* page->zone is currently 8 bits ... */
-#define MAX_NR_NODES (255 / MAX_NR_ZONES)
+/*
+ * page->zone is currently 8 bits
+ * there are 3 zones (2 bits)
+ * this leaves 8-2=6 bits for nodes
+ */
+#define MAX_NODES_SHIFT 6
#endif /* !CONFIG_DISCONTIGMEM */
+#if NODES_SHIFT > MAX_NODES_SHIFT
+#error NODES_SHIFT > MAX_NODES_SHIFT
+#endif
extern DECLARE_BITMAP(node_online_map, MAX_NUMNODES);
extern DECLARE_BITMAP(memblk_online_map, MAX_NR_MEMBLKS);
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.0-test5-max_numnodes2nodes_shift/mm/page_alloc.c linux-2.6.0-test5-remove-max_nr_nodes/mm/page_alloc.c
--- linux-2.6.0-test5-max_numnodes2nodes_shift/mm/page_alloc.c Mon Sep 8 12:49:52 2003
+++ linux-2.6.0-test5-remove-max_nr_nodes/mm/page_alloc.c Mon Sep 15 13:44:57 2003
@@ -50,7 +50,7 @@ EXPORT_SYMBOL(nr_swap_pages);
* Used by page_zone() to look up the address of the struct zone whose
* id is encoded in the upper bits of page->flags
*/
-struct zone *zone_table[MAX_NR_ZONES*MAX_NR_NODES];
+struct zone *zone_table[MAX_NR_ZONES*MAX_NUMNODES];
EXPORT_SYMBOL(zone_table);
static char *zone_names[MAX_NR_ZONES] = { "DMA", "Normal", "HighMem" };
next prev parent reply other threads:[~2003-09-16 0:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-10 21:36 [PATCH] you have how many nodes?? Jesse Barnes
2003-09-10 22:12 ` Andrew Morton
2003-09-10 22:34 ` Jesse Barnes
2003-09-10 22:36 ` Andrew Morton
2003-09-10 23:46 ` Martin J. Bligh
2003-09-11 0:03 ` Jesse Barnes
2003-09-16 0:31 ` Matthew Dobson
2003-09-16 0:34 ` [PATCH] Clean up MAX_NR_NODES/NUMNODES/etc. [1/5] Matthew Dobson
2003-09-16 12:43 ` Matthew Dobson
2003-09-16 0:35 ` Matthew Dobson [this message]
2003-09-16 0:36 ` [PATCH] Clean up MAX_NR_NODES/NUMNODES/etc. [3/5] Matthew Dobson
2003-09-16 0:37 ` [PATCH] Clean up MAX_NR_NODES/NUMNODES/etc. [4/5] Matthew Dobson
2003-09-16 0:37 ` [PATCH] Clean up MAX_NR_NODES/NUMNODES/etc. [5/5] Matthew Dobson
2003-09-16 16:47 ` Jesse Barnes
2003-09-19 22:01 ` [PATCH] you have how many nodes?? Matthew Dobson
2003-10-21 17:44 ` Jesse Barnes
2003-09-11 0:52 ` William Lee Irwin III
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3F665AC0.7070104@us.ibm.com \
--to=colpatch@us.ibm.com \
--cc=akpm@osdl.org \
--cc=jbarnes@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@aracnet.com \
--cc=rmk@arm.linux.org.uk \
--cc=wli@holomorphy.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox