From: Andy Whitcroft <apw@shadowen.org>
To: Andrew Morton <akpm@osdl.org>
Cc: Andy Whitcroft <apw@shadowen.org>,
kravetz@us.ibm.com, anton@samba.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: [PATCH 1/2] flatmem split out memory model
Date: Tue, 22 Nov 2005 18:07:34 +0000 [thread overview]
Message-ID: <20051122180734.GA10849@shadowen.org> (raw)
In-Reply-To: exportbomb.1132682844@pinky
pfn_to_nid is memory model specific
The pfn_to_nid() call is memory model specific. It represents the
locality identifier for the memory passed. Classically this would
be a NUMA node, but not a chunk of memory under DISCONTIGMEM.
The SPARSEMEM and FLATMEM memory model non-NUMA versions of
pfn_to_nid() are folded together under NEED_MULTIPLE_NODES, while
DISCONTIGMEM has its own optimisation. This is all very confusing.
This patch splits out each implementation of pfn_to_nid() so that we
can see them and the optimisations to each.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
---
mmzone.h | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletion(-)
diff -upN reference/include/linux/mmzone.h current/include/linux/mmzone.h
--- reference/include/linux/mmzone.h
+++ current/include/linux/mmzone.h
@@ -445,7 +445,6 @@ extern struct pglist_data contig_page_da
#define NODE_DATA(nid) (&contig_page_data)
#define NODE_MEM_MAP(nid) mem_map
#define MAX_NODES_SHIFT 1
-#define pfn_to_nid(pfn) (0)
#else /* CONFIG_NEED_MULTIPLE_NODES */
@@ -480,6 +479,10 @@ extern struct pglist_data contig_page_da
#define early_pfn_to_nid(nid) (0UL)
#endif
+#ifdef CONFIG_FLATMEM
+#define pfn_to_nid(pfn) (0)
+#endif
+
#define pfn_to_section_nr(pfn) ((pfn) >> PFN_SECTION_SHIFT)
#define section_nr_to_pfn(sec) ((sec) << PFN_SECTION_SHIFT)
@@ -604,6 +607,8 @@ static inline int pfn_valid(unsigned lon
*/
#ifdef CONFIG_NUMA
#define pfn_to_nid early_pfn_to_nid
+#else
+#define pfn_to_nid(pfn) (0)
#endif
#define early_pfn_valid(pfn) pfn_valid(pfn)
WARNING: multiple messages have this Message-ID (diff)
From: Andy Whitcroft <apw@shadowen.org>
To: Andrew Morton <akpm@osdl.org>
Cc: Andy Whitcroft <apw@shadowen.org>,
kravetz@us.ibm.com, anton@samba.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: [PATCH 1/2] flatmem split out memory model
Date: Tue, 22 Nov 2005 18:07:34 +0000 [thread overview]
Message-ID: <20051122180734.GA10849@shadowen.org> (raw)
In-Reply-To: exportbomb.1132682844@pinky
pfn_to_nid is memory model specific
The pfn_to_nid() call is memory model specific. It represents the
locality identifier for the memory passed. Classically this would
be a NUMA node, but not a chunk of memory under DISCONTIGMEM.
The SPARSEMEM and FLATMEM memory model non-NUMA versions of
pfn_to_nid() are folded together under NEED_MULTIPLE_NODES, while
DISCONTIGMEM has its own optimisation. This is all very confusing.
This patch splits out each implementation of pfn_to_nid() so that we
can see them and the optimisations to each.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
---
mmzone.h | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletion(-)
diff -upN reference/include/linux/mmzone.h current/include/linux/mmzone.h
--- reference/include/linux/mmzone.h
+++ current/include/linux/mmzone.h
@@ -445,7 +445,6 @@ extern struct pglist_data contig_page_da
#define NODE_DATA(nid) (&contig_page_data)
#define NODE_MEM_MAP(nid) mem_map
#define MAX_NODES_SHIFT 1
-#define pfn_to_nid(pfn) (0)
#else /* CONFIG_NEED_MULTIPLE_NODES */
@@ -480,6 +479,10 @@ extern struct pglist_data contig_page_da
#define early_pfn_to_nid(nid) (0UL)
#endif
+#ifdef CONFIG_FLATMEM
+#define pfn_to_nid(pfn) (0)
+#endif
+
#define pfn_to_section_nr(pfn) ((pfn) >> PFN_SECTION_SHIFT)
#define section_nr_to_pfn(sec) ((sec) << PFN_SECTION_SHIFT)
@@ -604,6 +607,8 @@ static inline int pfn_valid(unsigned lon
*/
#ifdef CONFIG_NUMA
#define pfn_to_nid early_pfn_to_nid
+#else
+#define pfn_to_nid(pfn) (0)
#endif
#define early_pfn_valid(pfn) pfn_valid(pfn)
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2005-11-22 18:07 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-15 22:10 pfn_to_nid under CONFIG_SPARSEMEM and CONFIG_NUMA Mike Kravetz
2005-11-15 22:10 ` Mike Kravetz
2005-11-16 3:14 ` Yasunori Goto
2005-11-16 3:14 ` Yasunori Goto
2005-11-16 13:00 ` Robin Holt
2005-11-16 13:00 ` Robin Holt
2005-11-16 13:25 ` Andy Whitcroft
2005-11-16 13:25 ` Andy Whitcroft
2005-11-16 22:59 ` [PATCH 0/3] SPARSEMEM: pfn_to_nid implementation Andy Whitcroft
2005-11-16 22:59 ` Andy Whitcroft
2005-11-16 23:00 ` [PATCH 1/3] kvaddr_to_nid not used in common code Andy Whitcroft
2005-11-16 23:00 ` Andy Whitcroft
2005-11-16 23:00 ` [PATCH 2/3] pfn_to_pgdat " Andy Whitcroft
2005-11-16 23:00 ` Andy Whitcroft
2005-11-16 23:00 ` [PATCH 3/3] sparse provide pfn_to_nid Andy Whitcroft
2005-11-16 23:00 ` Andy Whitcroft
2005-11-20 7:31 ` Andrew Morton
2005-11-20 7:31 ` Andrew Morton
2005-11-20 12:21 ` Andy Whitcroft
2005-11-20 12:21 ` Andy Whitcroft
2005-11-22 18:07 ` [PATCH 0/2] SPARSEMEM: pfn_to_nid implementation v2 Andy Whitcroft
2005-11-22 18:07 ` Andy Whitcroft
2005-11-22 18:07 ` Andy Whitcroft [this message]
2005-11-22 18:07 ` [PATCH 1/2] flatmem split out memory model Andy Whitcroft
2005-11-22 18:07 ` [PATCH 2/2] sparse provide pfn_to_nid Andy Whitcroft
2005-11-22 18:07 ` Andy Whitcroft
2005-11-17 0:06 ` [PATCH 0/3] SPARSEMEM: pfn_to_nid implementation Mike Kravetz
2005-11-17 0:06 ` Mike Kravetz
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=20051122180734.GA10849@shadowen.org \
--to=apw@shadowen.org \
--cc=akpm@osdl.org \
--cc=anton@samba.org \
--cc=kravetz@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.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.