From: Matthew Dobson <colpatch@us.ibm.com>
To: colpatch@us.ibm.com
Cc: Andrew Morton <akpm@digeo.com>, Patrick Mochel <mochel@osdl.org>,
"Martin J. Bligh" <mbligh@aracnet.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Michael Hohnbaum <hohnbaum@us.ibm.com>
Subject: Re: [patch] (4/5) create memblk_online_map 2.5.44
Date: Wed, 23 Oct 2002 14:05:05 -0700 [thread overview]
Message-ID: <3DB70F01.9050906@us.ibm.com> (raw)
In-Reply-To: 3DB70E67.9040704@us.ibm.com
[-- Attachment #1: Type: text/plain, Size: 356 bytes --]
Create and use memblk_online_map.
This patch creates a memblk_online_map, much like cpu_online_map. It
also creates the standard helper functions, ie: memblk_online(),
num_online_memblks(), memblk_set_online(), memblk_set_offline().
This is used by driverFS topology to keep track of which memory blocks
are in the system and online.
Cheers!
-Matt
[-- Attachment #2: 03-memblk_online_map.patch --]
[-- Type: text/plain, Size: 2735 bytes --]
diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.44-base/arch/i386/mach-generic/topology.c linux-2.5.44-memblk_online_map/arch/i386/mach-generic/topology.c
--- linux-2.5.44-base/arch/i386/mach-generic/topology.c Wed Oct 23 12:07:47 2002
+++ linux-2.5.44-memblk_online_map/arch/i386/mach-generic/topology.c Wed Oct 23 12:13:31 2002
@@ -48,7 +48,7 @@
arch_register_node(i);
for (i = 0; i < num_online_cpus(); i++)
arch_register_cpu(i);
- for (i = 0; i < numnodes; i++)
+ for (i = 0; i < num_online_memblks(); i++)
arch_register_memblk(i);
return 0;
}
diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.44-base/include/linux/mmzone.h linux-2.5.44-memblk_online_map/include/linux/mmzone.h
--- linux-2.5.44-base/include/linux/mmzone.h Fri Oct 18 21:01:08 2002
+++ linux-2.5.44-memblk_online_map/include/linux/mmzone.h Wed Oct 23 12:13:31 2002
@@ -262,6 +262,38 @@
#endif /* !CONFIG_DISCONTIGMEM */
+
+extern DECLARE_BITMAP(memblk_online_map, MAX_NR_MEMBLKS);
+
+#if defined(CONFIG_DISCONTIGMEM) || defined(CONFIG_NUMA)
+
+#define memblk_online(memblk) test_bit(memblk, memblk_online_map)
+#define memblk_set_online(memblk) set_bit(memblk, memblk_online_map)
+#define memblk_set_offline(memblk) clear_bit(memblk, memblk_online_map)
+static inline unsigned int num_online_memblks(void)
+{
+ int i, num = 0;
+
+ for(i = 0; i < MAX_NR_MEMBLKS; i++){
+ if (memblk_online(i))
+ num++;
+ }
+ return num;
+}
+
+#else /* !CONFIG_DISCONTIGMEM && !CONFIG_NUMA */
+
+#define memblk_online(memblk) \
+ ({ BUG_ON((memblk) != 0); test_bit(memblk, memblk_online_map); })
+#define memblk_set_online(memblk) \
+ ({ BUG_ON((memblk) != 0); set_bit(memblk, memblk_online_map); })
+#define memblk_set_offline(memblk) \
+ ({ BUG_ON((memblk) != 0); clear_bit(memblk, memblk_online_map); })
+#define num_online_memblks() 1
+
+#endif /* CONFIG_DISCONTIGMEM || CONFIG_NUMA */
+
+
#define MAP_ALIGN(x) ((((x) % sizeof(struct page)) == 0) ? (x) : ((x) + \
sizeof(struct page) - ((x) % sizeof(struct page))))
diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.44-base/mm/page_alloc.c linux-2.5.44-memblk_online_map/mm/page_alloc.c
--- linux-2.5.44-base/mm/page_alloc.c Wed Oct 23 12:10:57 2002
+++ linux-2.5.44-memblk_online_map/mm/page_alloc.c Wed Oct 23 12:13:31 2002
@@ -26,6 +26,9 @@
#include <linux/blkdev.h>
#include <linux/slab.h>
+#include <asm/topology.h>
+
+DECLARE_BITMAP(memblk_online_map, MAX_NR_MEMBLKS);
struct pglist_data *pgdat_list;
unsigned long totalram_pages;
unsigned long totalhigh_pages;
@@ -1039,6 +1042,7 @@
pgdat->node_mem_map = node_mem_map;
free_area_init_core(pgdat, zones_size, zholes_size);
+ memblk_set_online(__node_to_memblk(nid));
calculate_zone_bitmap(pgdat, zones_size);
}
next prev parent reply other threads:[~2002-10-23 21:03 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <2699066091.1035310557@[10.10.2.3]>
[not found] ` <Pine.LNX.4.44.0210221824430.983-100000@cherise.pdx.osdl.net>
[not found] ` <3DB5FCC5.E54808E@digeo.com>
2002-10-23 20:55 ` [patch] (1/5) Core driverfs Topology 2.5.44 Matthew Dobson
2002-10-23 20:59 ` [patch] (2/5) i386 " Matthew Dobson
2002-10-23 21:02 ` [patch] (3/5) NUMA meminfo for " Matthew Dobson
2002-10-23 21:05 ` Matthew Dobson [this message]
2002-10-23 21:06 ` [patch] (5/5) create node_online_map 2.5.44 Matthew Dobson
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=3DB70F01.9050906@us.ibm.com \
--to=colpatch@us.ibm.com \
--cc=akpm@digeo.com \
--cc=hohnbaum@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@aracnet.com \
--cc=mochel@osdl.org \
/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.