Re: x86_64: 2.6.14 with NUMA panics at boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Added Matt and [email protected] to cc:
Andy Wihitcroft wrote:	[Wed Nov 02 2005, 01:08:03PM EST]
> Martin J. Bligh wrote:
> > 
> > --Andi Kleen <[email protected]> wrote (on Monday, October 31, 2005 03:12:17 +0100):
> > 
> > 
> >>On Monday 31 October 2005 01:17, Bob Picco wrote:
> >>Ok the question is - why did nobody submit this patch in time? When
> >>sparse was merged I assumed folks would actually test and maintain
> >>it. But that doesn't seem to be the case? Somewhat surprising.
> 
> We are activly maintaining sparsemem.  But we do seem to have fallen
> short on the testing front on some of the architectures.  I'm looking
> right now into getting some automated testing sorted out for SPARSEMEM
> specifically so that we catch this stuff much earlier in the pipeline,
> as its much simpler for us to find the earlier a problem appears.
> 
> >>I personally don't care much about sparsemem right now because it doesn't have 
> >>any advantage and if it's unmaintained would consider to mark it 
> >>CONFIG_BROKEN. That's simply because we can't have highly experimental 
> >>CONFIGs in a production kernel that unsuspecting users can just set and break 
> >>their configuration.
> >>
> >>Dave, is there someone in charge for sparsemem on x86-64?
> 
> I had assumed that it was being maintained, but its not obvious from
> this thread that we're all on the same page.  But we'll find out and get
> that sorted.
> 
> -apw
> -

Matt responded to a private that I posted to Dave and Matt. Matt is
traveling and told me to go ahead and post a fix.

I removed memory_present called from the FLATMEM routine contig_initmem_init.
Otherwise my original quick patch used for testing SPARSEMEM EXTREME
was nearly complete.

I've boot tested all three configurations (SPARSEMEM, DISCONTIGMEM and CONTIG)
on my DL585 (4 node machine).

bob

Signed-off-by: Bob Picco <[email protected]>

 arch/x86_64/kernel/setup.c |    3 ---
 arch/x86_64/mm/numa.c      |   18 +++++++++++++++++-
 2 files changed, 17 insertions(+), 4 deletions(-)

Index: linux-2.6.14/arch/x86_64/kernel/setup.c
===================================================================
--- linux-2.6.14.orig/arch/x86_64/kernel/setup.c	2005-10-30 20:14:11.000000000 -0500
+++ linux-2.6.14/arch/x86_64/kernel/setup.c	2005-11-02 14:23:18.000000000 -0500
@@ -412,7 +412,6 @@ contig_initmem_init(unsigned long start_
 {
 	unsigned long bootmap_size, bootmap;
 
-	memory_present(0, start_pfn, end_pfn);
 	bootmap_size = bootmem_bootmap_pages(end_pfn)<<PAGE_SHIFT;
 	bootmap = find_e820_area(0, end_pfn<<PAGE_SHIFT, bootmap_size);
 	if (bootmap == -1L)
@@ -657,8 +656,6 @@ void __init setup_arch(char **cmdline_p)
 	}
 #endif
 
-	sparse_init();
-
 	paging_init();
 
 	check_ioapic();
Index: linux-2.6.14/arch/x86_64/mm/numa.c
===================================================================
--- linux-2.6.14.orig/arch/x86_64/mm/numa.c	2005-10-31 11:31:02.000000000 -0500
+++ linux-2.6.14/arch/x86_64/mm/numa.c	2005-11-02 17:35:02.000000000 -0500
@@ -94,7 +94,6 @@ void __init setup_node_bootmem(int nodei
 	start_pfn = start >> PAGE_SHIFT;
 	end_pfn = end >> PAGE_SHIFT;
 
-	memory_present(nodeid, start_pfn, end_pfn);
 	nodedata_phys = find_e820_area(start, end, pgdat_size); 
 	if (nodedata_phys == -1L) 
 		panic("Cannot find memory pgdat in node %d\n", nodeid);
@@ -277,9 +276,26 @@ unsigned long __init numa_free_all_bootm
 	return pages;
 } 
 
+#ifdef CONFIG_SPARSEMEM
+static void __init arch_sparse_init(void)
+{
+	int i;
+
+	for_each_online_node(i)
+		memory_present(i, node_start_pfn(i), node_end_pfn(i));
+
+	sparse_init();
+}
+#else
+#define arch_sparse_init() do {} while (0)
+#endif
+
 void __init paging_init(void)
 { 
 	int i;
+
+	arch_sparse_init();
+
 	for_each_online_node(i) {
 		setup_node_zones(i); 
 	}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux