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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.