All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Whitcroft <apw@shadowen.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, Christoph Lameter <clameter@sgi.com>
Subject: [PATCH] sparsemem: ensure we initialise the node mapping for SPARSEMEM_STATIC
Date: Thu, 26 Jul 2007 13:11:30 +0100	[thread overview]
Message-ID: <20070726121130.GA6977@shadowen.org> (raw)
In-Reply-To: <20070725040304.111550f4.akpm@linux-foundation.org>

Booting SPARSEMEM on NUMA systems trips a BUG in page_alloc.c:

	Initializing HighMem for node 0 (00038000:00100000)
	Initializing HighMem for node 1 (00100000:001ffe00)
	------------[ cut here ]------------
	kernel BUG at /home/apw/git/linux-2.6/mm/page_alloc.c:456!
	[...]

This occurs because the section to node id mapping is not being
setup correctly during init under SPARSEMEM_STATIC, leading to an
attempt to free pages from all nodes into the zones on node 0.

When the zone_table[] was removed in the following commit, a new
section to node mapping table was introduced:

    commit 89689ae7f95995723fbcd5c116c47933a3bb8b13
    [PATCH] Get rid of zone_table[]

That conversion inadvertantly only initialised the node mapping in
SPARSEMEM_EXTREME.  Ensure we initialise the node mapping in
SPARSEMEM_STATIC.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
---
diff --git a/mm/sparse.c b/mm/sparse.c
index 0320f86..5bfd9a7 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -43,6 +43,15 @@ int page_to_nid(struct page *page)
 	return section_to_node_table[page_to_section(page)];
 }
 EXPORT_SYMBOL(page_to_nid);
+
+void set_section_nid(unsigned long section_nr, int nid)
+{
+	section_to_node_table[section_nr] = nid;
+}
+#else /* !NODE_NOT_IN_PAGE_FLAGS */
+void set_section_nid(unsigned long section_nr, int nid)
+{
+}
 #endif
 
 #ifdef CONFIG_SPARSEMEM_EXTREME
@@ -70,10 +79,6 @@ static int __meminit sparse_index_init(unsigned long section_nr, int nid)
 	struct mem_section *section;
 	int ret = 0;
 
-#ifdef NODE_NOT_IN_PAGE_FLAGS
-	section_to_node_table[section_nr] = nid;
-#endif
-
 	if (mem_section[root])
 		return -EEXIST;
 
@@ -150,6 +155,7 @@ void __init memory_present(int nid, unsigned long start, unsigned long end)
 		struct mem_section *ms;
 
 		sparse_index_init(section, nid);
+		set_section_nid(section, nid);
 
 		ms = __nr_to_section(section);
 		if (!ms->section_mem_map)

  parent reply	other threads:[~2007-07-26 12:11 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-25 11:03 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 12:25 ` 2.6.23-rc1-mm1 Cedric Le Goater
2007-07-25 17:23   ` 2.6.23-rc1-mm1 Len Brown
2007-07-25 18:58     ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 19:13       ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-25 20:22         ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-25 20:36           ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 20:36             ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 21:52             ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-25 21:52               ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-26  7:25               ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-26  7:25                 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-26 17:54                 ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-26 17:54                   ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-28 14:03                   ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-28 14:03                     ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-25 23:26       ` 2.6.23-rc1-mm1 Len Brown
2007-07-26  9:41         ` 2.6.23-rc1-mm1 Mel Gorman
2007-07-26 13:53           ` 2.6.23-rc1-mm1 Cedric Le Goater
2007-07-25 12:40 ` 2.6.23-rc1-mm1 Cedric Le Goater
2007-07-25 20:05   ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 12:55 ` 2.6.23-rc1-mm1 Cedric Le Goater
2007-07-25 13:48   ` 2.6.23-rc1-mm1: chipsfb_pci_suspend problem Rafael J. Wysocki
2007-07-25 20:22     ` Andrew Morton
2007-07-25 22:45       ` Pavel Machek
2007-07-25 13:36 ` [-mm patch] one e1000 driver should be enough for everyone Adrian Bunk
2007-07-25 13:48   ` Jeff Garzik
2007-07-25 14:46     ` Adrian Bunk
2007-07-25 15:05       ` Jeff Garzik
2007-07-25 15:21         ` Kok, Auke
2007-07-25 15:23           ` Jeff Garzik
2007-07-25 20:50           ` Andrew Morton
2007-07-25 16:32 ` 2.6.23-rc1-mm1 Michal Piotrowski
2007-07-25 21:56   ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 16:36 ` 2.6.23-rc1-mm1 -- mostly fails to build Andy Whitcroft
2007-07-25 17:04   ` Sam Ravnborg
2007-07-25 18:06   ` 2.6.23-rc1-mm1: SCSI_SRP_ATTRS compile error Adrian Bunk
2007-07-26 10:49     ` FUJITA Tomonori
2007-07-25 22:41   ` 2.6.23-rc1-mm1 -- mostly fails to build Andy Whitcroft
2007-07-26  5:56     ` Andrew Morton
2007-07-26 17:53       ` Yinghai Lu
2007-07-25 18:15 ` 2.6.23-rc1-mm1: net/ipv4/fib_trie.c compile error Adrian Bunk
2007-07-25 18:22 ` 2.6.23-rc1-mm1: reiser4 <-> lzo " Adrian Bunk
2007-07-25 18:44   ` Edward Shishkin
2007-07-27 12:35   ` Edward Shishkin
2007-07-27 15:11     ` Richard Purdie
2007-07-25 18:48 ` 2.6.23-rc1-mm1 Michal Piotrowski
2007-07-25 18:53   ` 2.6.23-rc1-mm1 Sam Ravnborg
2007-07-25 19:18     ` 2.6.23-rc1-mm1 H. Peter Anvin
2007-07-25 19:21       ` 2.6.23-rc1-mm1 Sam Ravnborg
2007-07-25 20:58       ` 2.6.23-rc1-mm1 Gabriel C
2007-07-25 21:05         ` 2.6.23-rc1-mm1 Gabriel C
2007-07-25 21:11           ` 2.6.23-rc1-mm1 H. Peter Anvin
2007-07-25 21:13             ` 2.6.23-rc1-mm1 Gabriel C
2007-07-25 21:18               ` 2.6.23-rc1-mm1 H. Peter Anvin
2007-07-25 21:26                 ` 2.6.23-rc1-mm1 Gabriel C
2007-07-26  0:07           ` 2.6.23-rc1-mm1 Greg KH
2007-07-26  0:28             ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-26  1:55               ` 2.6.23-rc1-mm1 Dave Young
2007-07-26  2:23                 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-26 20:18             ` 2.6.23-rc1-mm1 Dave Hansen
2007-07-25 20:42 ` 2.6.23-rc1-mm1 - drivers/char/nozomi.c overflow in implicit constant conversion , warnings Gabriel C
2007-07-26  5:42   ` Greg KH
2007-07-25 21:01 ` 2.6.23-rc1-mm1: m32r is_init() compile error Adrian Bunk
2007-07-25 21:42   ` sukadev
2007-07-25 21:17 ` 2.6.23-rc1-mm1: git-kgdb breaks sh compilation Adrian Bunk
2007-07-26  1:45   ` Paul Mundt
2007-07-25 22:03 ` 2.6.23-rc1-mm1 - seems OK on Dell Latitude D820, except for tpm_tis Valdis.Kletnieks
2007-07-26  3:37   ` Andrew Morton
2007-07-27  4:00     ` Valdis.Kletnieks
2007-07-27 13:28       ` Valdis.Kletnieks
2007-07-27 18:07         ` Andrew Morton
2007-07-27 19:44           ` Valdis.Kletnieks
2007-07-27 22:43         ` Bjorn Helgaas
2007-07-30 18:09           ` Bjorn Helgaas
2007-07-30 23:53           ` Valdis.Kletnieks
2007-07-31 18:48             ` Valdis.Kletnieks
2007-07-31 20:01               ` Bjorn Helgaas
2007-07-31 21:31                 ` Valdis.Kletnieks
2007-07-31 23:05                   ` Bjorn Helgaas
2007-07-26  5:26 ` [-mm patch] DMA engine kconfig improvements Adrian Bunk
2007-08-04  2:15   ` Dan Williams
2007-08-10  0:43     ` Adrian Bunk
2007-08-15 23:36   ` Nelson, Shannon
2007-07-26 12:11 ` Andy Whitcroft [this message]
2007-07-26 12:58 ` 2.6.23-rc1-mm1 sparsemem_vmemamp fix KAMEZAWA Hiroyuki
2007-07-26 14:39   ` Andy Whitcroft
2007-07-26 14:44     ` Andy Whitcroft
2007-07-27 13:28 ` [-mm patch] xtensa console.c: remove duplicate #include Frederik Deweerdt
2007-07-28 15:44 ` NETPOLL=y , NETDEVICES=n compile error ( Re: 2.6.23-rc1-mm1 ) Gabriel C
2007-07-28 17:26   ` Andrew Morton
2007-07-28 18:42     ` Gabriel C
2007-07-31  8:32       ` Jarek Poplawski
2007-07-31 10:14         ` Gabriel C
2007-07-31 11:44           ` Jason Wessel
2007-07-31 12:47             ` Jarek Poplawski
2007-07-31 12:17           ` Jarek Poplawski
2007-07-31 15:05             ` Gabriel C
2007-08-01  9:59               ` Jarek Poplawski
2007-08-02  2:02                 ` Matt Mackall
2007-08-02  9:00                   ` Jarek Poplawski
2007-08-02 15:59                     ` Matt Mackall
2007-08-03  7:30                       ` Jarek Poplawski
2007-08-02  9:36                   ` Sam Ravnborg
2007-08-02 10:32                     ` Satyam Sharma
2007-08-02 11:40                       ` Satyam Sharma
2007-08-02 11:40                       ` Jarek Poplawski
2007-08-02 11:56                         ` Satyam Sharma
2007-08-02 12:52                           ` Jarek Poplawski
2007-08-06 11:51                     ` [PATCH] docs: note about select in kconfig-language.txt Jarek Poplawski
2007-07-28 16:36 ` DCA=n , INTEL_IOATDMA=y compile error ( Re: 2.6.23-rc1-mm1 ) Gabriel C
2007-07-28 16:47 ` sound/pci/ac97/ac97_patch.h - declared 'static' but never defined warnings " Gabriel C
2007-07-28 17:07 ` mm/sparse.c compile error " Gabriel C
2007-07-28 17:30   ` Andrew Morton
2007-07-30 12:16     ` Andy Whitcroft
2007-07-28 19:32 ` [PATCH -mm] Fix libata warnings with CONFIG_PM=n Gabriel C
2007-07-29 14:57 ` [-mm patch] make hugetlbfs_read() static Adrian Bunk
2007-07-29 14:57 ` [-mm patch] fs/ecryptfs/: make code static Adrian Bunk
2007-07-29 14:58 ` [-mm patch] make struct sdio_dev_attrs[] static Adrian Bunk
2007-07-29 19:29   ` Pierre Ossman
2007-07-29 14:58 ` [-mm patch] MTD onenand_sim.c: make struct info static Adrian Bunk
2007-07-29 14:58   ` Adrian Bunk
2007-07-29 14:58 ` [-mm patch] make scsi_host_link_pm_policy() static Adrian Bunk
2007-07-29 14:58 ` [-mm patch] USB: make dev_attr_authorized_default static Adrian Bunk
2007-07-31 19:13   ` Inaky Perez-Gonzalez
2007-07-29 14:59 ` [-mm patch] kernel/printk.c: make 2 variables static Adrian Bunk
2007-07-29 16:51   ` Randy Dunlap
2007-07-29 14:59 ` [-mm patch] export v4l2_int_device_{,un}register Adrian Bunk
2007-07-29 14:59 ` [-mm patch] kernel/pid.c: remove unused exports Adrian Bunk
2007-07-29 15:00 ` [-mm patch] security/ cleanups Adrian Bunk
2007-07-30 11:47   ` James Morris
2007-07-29 15:49 ` 2.6.23-rc1-mm1 Grant Wilson
2007-07-30  9:58   ` 2.6.23-rc1-mm1 Dave Young
2007-07-30 18:27     ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-30 18:42       ` 2.6.23-rc1-mm1 Christoph Hellwig
2007-07-30 22:18         ` 2.6.23-rc1-mm1 Satyam Sharma
2007-07-31  1:21           ` 2.6.23-rc1-mm1 Dave Young
2007-08-01 15:24 ` 2.6.23-rc1-mm1 - loopback mount of files fails loop-use-unlocked_ioctl.patch Valdis.Kletnieks

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=20070726121130.GA6977@shadowen.org \
    --to=apw@shadowen.org \
    --cc=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=linux-kernel@vger.kernel.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.