linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <cl@linux.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Pekka Enberg <penberg@kernel.org>, Michal Hocko <mhocko@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	Hugh Dickins <hughd@google.com>,
	linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
	linux-parisc@vger.kernel.org,
	David Rientjes <rientjes@google.com>
Subject: Re: [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards
Date: Tue, 19 Apr 2011 16:58:22 -0500 (CDT)	[thread overview]
Message-ID: <alpine.DEB.2.00.1104191657030.26867@router.home> (raw)
In-Reply-To: <1303249716.11237.26.camel@mulgrave.site>

On Tue, 19 Apr 2011, James Bottomley wrote:

> > Which part of me telling you that you will break lots of other things in
> > the core kernel dont you get?
>
> I get that you tell me this ... however, the systems that, according to
> you, should be failing to get to boot prompt do, in fact, manage it.

If you dont use certain subsystems then it may work. Also do you run with
debuggin on.

The following patch is I think what would be needed to fix it.



Subject: [PATCH] Fix discontig support for !NUMA

Under NUMA discontig nodes map directly to the kernel NUMA nodes.

However, when DISCONTIG is used without NUMA then the kernel has only
one NUMA mode (==0) but within the node there may be multiple discontig pages
on various "nodes" for page struct vector management purposes.

Define a function __page_to_nid() that always extracts the node from
the page struct. This can be used in places where we need the discontig
node. Define page_to_nid() under !NUMA to always return 0. This ensures
that the various subsystems relying on page_to_nid(page) == 0 on !NUMA
function properly.

<Untested since I do not have a PARISC system. There could be
additional occurrences that need __page_to_nid>

Signed-off-by: Christoph Lameter <cl@linux.com>

---
 include/asm-generic/memory_model.h |    2 +-
 include/linux/mm.h                 |   10 ++++++++--
 mm/sparse.c                        |    2 +-
 3 files changed, 10 insertions(+), 4 deletions(-)

Index: linux-2.6/include/linux/mm.h
===================================================================
--- linux-2.6.orig/include/linux/mm.h	2011-04-19 16:43:53.822507013 -0500
+++ linux-2.6/include/linux/mm.h	2011-04-19 16:44:52.082506944 -0500
@@ -666,14 +666,20 @@ static inline int zone_to_nid(struct zon
 }

 #ifdef NODE_NOT_IN_PAGE_FLAGS
-extern int page_to_nid(struct page *page);
+extern int __page_to_nid(struct page *page);
 #else
-static inline int page_to_nid(struct page *page)
+static inline int __page_to_nid(struct page *page)
 {
 	return (page->flags >> NODES_PGSHIFT) & NODES_MASK;
 }
 #endif

+#ifdef CONFIG_NUMA
+#define page_to_nid __page_to_nid
+#else
+#define page_to_nid(x) 0
+#endif
+
 static inline struct zone *page_zone(struct page *page)
 {
 	return &NODE_DATA(page_to_nid(page))->node_zones[page_zonenum(page)];
Index: linux-2.6/include/asm-generic/memory_model.h
===================================================================
--- linux-2.6.orig/include/asm-generic/memory_model.h	2011-04-19 16:45:26.772506904 -0500
+++ linux-2.6/include/asm-generic/memory_model.h	2011-04-19 16:46:02.602506861 -0500
@@ -40,7 +40,7 @@

 #define __page_to_pfn(pg)						\
 ({	struct page *__pg = (pg);					\
-	struct pglist_data *__pgdat = NODE_DATA(page_to_nid(__pg));	\
+	struct pglist_data *__pgdat = NODE_DATA(__page_to_nid(__pg));	\
 	(unsigned long)(__pg - __pgdat->node_mem_map) +			\
 	 __pgdat->node_start_pfn;					\
 })
Index: linux-2.6/mm/sparse.c
===================================================================
--- linux-2.6.orig/mm/sparse.c	2011-04-19 16:44:58.432506937 -0500
+++ linux-2.6/mm/sparse.c	2011-04-19 16:45:07.332506926 -0500
@@ -40,7 +40,7 @@ static u8 section_to_node_table[NR_MEM_S
 static u16 section_to_node_table[NR_MEM_SECTIONS] __cacheline_aligned;
 #endif

-int page_to_nid(struct page *page)
+int __page_to_nid(struct page *page)
 {
 	return section_to_node_table[page_to_section(page)];
 }

--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-04-19 21:58 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-15 13:51 [PATCH] " Michal Hocko
2011-04-18  3:00 ` Hugh Dickins
2011-04-18 10:01   ` [PATCH v2] " Michal Hocko
2011-04-18 20:56     ` Andrew Morton
     [not found]       ` <20110419091022.GA21689@tiehlicka.suse.cz>
2011-04-19 11:09         ` [PATCH followup] mm: get rid of CONFIG_STACK_GROWSUP || CONFIG_IA64 Michal Hocko
2011-04-20  0:33           ` KOSAKI Motohiro
2011-04-20  6:59             ` Michal Hocko
2011-04-20  7:08               ` KOSAKI Motohiro
2011-04-26  7:59           ` Michal Hocko
2011-04-19 11:10       ` [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards Michal Hocko
2011-04-19 15:46         ` James Bottomley
2011-04-19 16:06           ` [PATCH v3] mm: make expand_downwards symmetrical to John David Anglin
2011-04-19 16:59             ` James Bottomley
2011-04-19 16:07           ` [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards James Bottomley
2011-04-19 17:05           ` Pekka Enberg
2011-04-19 17:11             ` James Bottomley
2011-04-19 17:15               ` Christoph Lameter
2011-04-19 17:48                 ` James Bottomley
2011-04-19 18:10                   ` Christoph Lameter
2011-04-19 18:20                     ` James Bottomley
2011-04-19 18:35                       ` Christoph Lameter
2011-04-19 19:49                         ` James Bottomley
2011-04-19 20:56                           ` Christoph Lameter
2011-04-19 21:21                             ` James Bottomley
2011-04-19 21:39                               ` Christoph Lameter
2011-04-19 21:48                                 ` James Bottomley
2011-04-19 21:58                                   ` Christoph Lameter [this message]
2011-04-20  1:23                                     ` KOSAKI Motohiro
2011-04-20  2:48                                       ` James Bottomley
2011-04-20  2:57                                         ` KOSAKI Motohiro
2011-04-20 13:50                                           ` Christoph Lameter
2011-04-21 13:32                                             ` Tejun Heo
2011-04-20  5:53                                       ` Pekka Enberg
2011-04-20  7:15                                         ` KOSAKI Motohiro
2011-04-20  7:34                                           ` Pekka Enberg
2011-04-20  8:40                                             ` KOSAKI Motohiro
2011-04-20 16:32                                               ` James Bottomley
2011-04-20 16:50                                                 ` Christoph Lameter
2011-04-20 18:09                                                   ` James Bottomley
2011-04-20 21:18                                                 ` David Rientjes
2011-04-20 22:15                                                   ` James Bottomley
2011-04-20 23:12                                                     ` David Rientjes
2011-04-21 13:16                                                       ` KOSAKI Motohiro
2011-04-21 16:37                                                         ` James Bottomley
2011-04-21 18:33                                                           ` Christoph Lameter
2011-04-21 18:45                                                             ` Dave Hansen
2011-04-22 18:19                                                               ` James Bottomley
2011-04-22 20:24                                                                 ` Dave Hansen
2011-04-22 20:35                                                                   ` James Bottomley
2011-04-22 21:33                                                               ` James Bottomley
2011-04-23 18:34                                                                 ` [PATCH] convert parisc to sparsemem (was Re: [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards) James Bottomley
2011-04-24 16:27                                                                   ` John David Anglin
2011-04-26  0:32                                                                   ` KOSAKI Motohiro
2011-04-27 16:36                                                                   ` Dave Hansen
2011-04-21 20:05                                                             ` [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards James Bottomley
2011-04-21 21:07                                                               ` Christoph Lameter
2011-04-21 21:22                                                                 ` James Bottomley
2011-04-21 19:33                                                         ` David Rientjes
2011-04-22  0:34                                                           ` KOSAKI Motohiro
2011-04-21 13:03                                                   ` KOSAKI Motohiro
2011-04-21 19:38                                                     ` David Rientjes
2011-04-21 20:02                                                       ` Christoph Lameter
2011-04-21 21:19                                                         ` David Rientjes
2011-04-21 21:24                                                           ` James Bottomley
2011-04-21 21:34                                                             ` David Rientjes
2011-04-21 21:49                                                               ` James Bottomley
2011-04-21 22:12                                                                 ` David Rientjes
2011-04-22  8:02                                                                   ` Pekka Enberg
2011-04-22 13:49                                                                     ` James Bottomley
2011-04-22 17:00                                                                       ` Pekka Enberg
2011-04-22 17:03                                                                         ` James Bottomley
2011-04-21 21:41                                                           ` [patch] mm: always set nodes with regular memory in N_NORMAL_MEMORY David Rientjes
2011-04-22  0:36                                                             ` KOSAKI Motohiro
2011-04-20 21:05                                               ` [PATCH v3] mm: make expand_downwards symmetrical to expand_upwards David Rientjes
2011-04-20 11:20                                             ` Matthew Wilcox
2011-04-20 11:28                                               ` Pekka Enberg
2011-04-20 14:15                                                 ` James Bottomley
2011-04-20 14:50                                                   ` Christoph Lameter
2011-04-20 15:02                                                     ` James Bottomley
2011-04-20 15:22                                                       ` Christoph Lameter
2011-04-20 19:25                                                         ` Matthew Wilcox
2011-04-20 21:42                                                         ` David Rientjes
2011-04-21 16:06                                                           ` James Bottomley
2011-04-21 22:19                                                             ` David Rientjes
2011-04-21 22:31                                                               ` James Bottomley
2011-04-20 13:58                                               ` Christoph Lameter
2011-04-20 21:34                                               ` David Rientjes
2011-04-20 14:07                                             ` Christoph Lameter
2011-04-20  2:33                                     ` James Bottomley
2011-04-19 17:12             ` Christoph Lameter

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=alpine.DEB.2.00.1104191657030.26867@router.home \
    --to=cl@linux.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=akpm@linux-foundation.org \
    --cc=hughd@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=mhocko@suse.cz \
    --cc=penberg@kernel.org \
    --cc=rientjes@google.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