All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Nick Piggin <npiggin@suse.de>
Cc: linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>
Subject: Re: assert/crash in __rmqueue() when enabling CONFIG_NUMA
Date: Fri, 21 Apr 2006 13:20:50 +0200	[thread overview]
Message-ID: <20060421112049.GA5609@elte.hu> (raw)
In-Reply-To: <20060420091856.GB21660@wotan.suse.de>


* Nick Piggin <npiggin@suse.de> wrote:

> On Wed, Apr 19, 2006 at 01:21:30PM +0200, Ingo Molnar wrote:
> > the 2.6.17-rc2 kernel built with the attached config crashes quite 
> > easily under minimal load. Disabling CONFIG_NUMA makes it robust again.  
> > Crashlog attached.
> 
> It would be interesting to know which assertion failed. I guess it 
> might be a zone alignment problem -- it would be interesting to turn 
> the 2 HOLES_IN_ZONE tests into BUG_ONs, and enable them (ie. move them 
> out of HOLES_IN_ZONE).

ok, i added a couple of printks (see the patch below), and got this:

 zone c1f0a600 (HighMem):
 pfn: 00037d00
 zone->zone_start_pfn: 00037e00
 zone->spanned_pages: 00007e00
 zone->zone_start_pfn + zone->spanned_pages: 0003fc00
 ------------[ cut here ]------------
 kernel BUG at mm/page_alloc.c:524!

so the pfn is 1MB below the zone's start address - not good. You can 
find the full bootup log at:

	http://redhat.com/~mingo/misc/crash.log

the log should also give an idea about how the zones are layed out, etc.  
Note that this is an ordinary desktop dual-core box with 1GB RAM booting 
an allyesconfig NUMA kernel. I suspect this could be some bootup-time 
zone sizing problem? The config is at:

	http://redhat.com/~mingo/misc/config

(the crash is easy to reproduce, so let me know if i can do anything 
else to debug this.)

	Ingo

Index: linux/mm/page_alloc.c
===================================================================
--- linux.orig/mm/page_alloc.c
+++ linux/mm/page_alloc.c
@@ -100,17 +100,32 @@ static int page_outside_zone_boundaries(
 			ret = 1;
 	} while (zone_span_seqretry(zone, seq));
 
+#define P(x) printk("%s: %08lx\n", #x, x)
+
+	if (ret) {
+		printk("zone %p (%s):\n", zone, zone->name);
+		P(pfn);
+		P(zone->zone_start_pfn);
+		P(zone->spanned_pages);
+		P(zone->zone_start_pfn + zone->spanned_pages);
+	}
+
 	return ret;
 }
 
 static int page_is_consistent(struct zone *zone, struct page *page)
 {
-#ifdef CONFIG_HOLES_IN_ZONE
-	if (!pfn_valid(page_to_pfn(page)))
+	if (!pfn_valid(page_to_pfn(page))) {
+		printk("BUG: pfn: %08lx, page: %p\n",
+			page_to_pfn(page), page);
+		dump_stack();
 		return 0;
-#endif
-	if (zone != page_zone(page))
+	}
+	if (zone != page_zone(page)) {
+		printk("zone: %p != %p == page_zone(%p)\n",
+			zone, page_zone(page), page);
 		return 0;
+	}
 
 	return 1;
 }
@@ -292,10 +307,12 @@ __find_combined_index(unsigned long page
  */
 static inline int page_is_buddy(struct page *page, int order)
 {
-#ifdef CONFIG_HOLES_IN_ZONE
-	if (!pfn_valid(page_to_pfn(page)))
+	if (!pfn_valid(page_to_pfn(page))) {
+		printk("BUG: pfn: %08lx, page: %p, order: %d\n",
+			page_to_pfn(page), page, order);
+		dump_stack();
 		return 0;
-#endif
+	}
 
 	if (PageBuddy(page) && page_order(page) == order) {
 		BUG_ON(page_count(page) != 0);

  reply	other threads:[~2006-04-21 11:16 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20060419112130.GA22648@elte.hu>
2006-04-20  9:18 ` assert/crash in __rmqueue() when enabling CONFIG_NUMA Nick Piggin
2006-04-21 11:20   ` Ingo Molnar [this message]
2006-04-21 11:45     ` Ingo Molnar
2006-05-01 12:49       ` Ingo Molnar
2006-05-02  6:48         ` Andi Kleen
2006-05-02  7:06           ` Ingo Molnar
2006-05-02  7:05             ` Andi Kleen
2006-05-02  8:27               ` Ingo Molnar
2006-05-02 14:02               ` Martin J. Bligh
2006-05-02 14:25                 ` Nick Piggin
2006-05-02 14:25                   ` Nick Piggin
2006-05-04  1:32                   ` Bob Picco
2006-05-04  1:32                     ` Bob Picco
2006-05-04  8:37                     ` Ingo Molnar
2006-05-04  8:37                       ` Ingo Molnar
2006-05-04  9:14                       ` Ingo Molnar
2006-05-04  9:14                         ` Ingo Molnar
2006-05-04  9:26                         ` Ingo Molnar
2006-05-04  9:26                           ` Ingo Molnar
2006-05-04  8:37                     ` Andy Whitcroft
2006-05-04  8:37                       ` Andy Whitcroft
2006-05-04 15:21                     ` Dave Hansen
2006-05-04 15:21                       ` Dave Hansen
2006-05-04 15:46                       ` Bob Picco
2006-05-04 15:46                         ` Bob Picco
2006-05-04 16:07                         ` Dave Hansen
2006-05-04 16:07                           ` Dave Hansen
2006-05-04 19:25                         ` Ingo Molnar
2006-05-04 19:25                           ` Ingo Molnar
2006-05-04 19:43                           ` Bob Picco
2006-05-04 19:43                             ` Bob Picco
2006-05-04 21:50                             ` Andy Whitcroft
2006-05-04 21:50                               ` Andy Whitcroft
2006-05-05  5:17                               ` Ingo Molnar
2006-05-05  5:17                                 ` Ingo Molnar
2006-05-05 13:55                               ` Bob Picco
2006-05-05 13:55                                 ` Bob Picco
2006-05-05 14:33                                 ` Dave Hansen
2006-05-05 14:33                                   ` Dave Hansen
2006-05-05 14:50                                   ` Bob Picco
2006-05-05 14:50                                     ` Bob Picco
2006-05-05 14:57                                     ` Dave Hansen
2006-05-05 14:57                                       ` Dave Hansen
2006-05-05 15:03                                       ` Martin J. Bligh
2006-05-05 15:03                                         ` Martin J. Bligh
2006-05-05 16:22                                         ` Bob Picco
2006-05-05 16:22                                           ` Bob Picco
2006-05-05 16:18                                       ` Bob Picco
2006-05-05 16:18                                         ` Bob Picco
2006-05-06  8:32                                       ` Nick Piggin
2006-05-06  8:32                                         ` Nick Piggin
2006-05-07 13:07                                         ` Andy Whitcroft
2006-05-07 13:07                                           ` Andy Whitcroft
2006-05-07 13:18                                           ` Nick Piggin
2006-05-07 13:18                                             ` Nick Piggin
2006-05-09 11:05                                             ` [PATCH 0/3] Zone boundry alignment fixes Andy Whitcroft
2006-05-09 11:05                                               ` Andy Whitcroft
2006-05-09 11:05                                               ` [PATCH 1/3] zone init check and report unaligned zone boundries Andy Whitcroft
2006-05-09 11:05                                                 ` Andy Whitcroft
2006-05-09 11:28                                                 ` Nick Piggin
2006-05-09 11:28                                                   ` Nick Piggin
2006-05-09 11:05                                               ` [PATCH 2/3] x86 align highmem zone boundries with NUMA Andy Whitcroft
2006-05-09 11:05                                                 ` Andy Whitcroft
2006-05-09 11:05                                               ` [PATCH 3/3] zone allow unaligned zone boundries Andy Whitcroft
2006-05-09 11:05                                                 ` Andy Whitcroft
2006-05-11  7:59                                               ` [PATCH 0/3] Zone boundry alignment fixes Andrew Morton
2006-05-11  7:59                                                 ` Andrew Morton
2006-05-12 14:19                                                 ` Ingo Molnar
2006-05-12 14:19                                                   ` Ingo Molnar
2006-05-13  1:39                                                   ` Nick Piggin
2006-05-13  1:39                                                     ` Nick Piggin
2006-05-18 14:20                                                 ` [PATCH 0/2] Zone boundary alignment fixes cleanups Andy Whitcroft
2006-05-18 14:20                                                   ` Andy Whitcroft
2006-05-18 14:21                                                   ` [PATCH 1/2] zone init check and report unaligned zone boundaries fix Andy Whitcroft
2006-05-18 14:21                                                     ` Andy Whitcroft
2006-05-18 14:21                                                   ` [PATCH 2/2] zone allow unaligned zone boundaries spelling fix Andy Whitcroft
2006-05-18 14:21                                                     ` Andy Whitcroft
2006-05-18 14:49                                                     ` Andy Whitcroft
2006-05-18 14:49                                                       ` Andy Whitcroft
2006-05-18 15:54                                                 ` [PATCH 0/2] Zone boundary alignment fixes, cleanups v2 Andy Whitcroft
2006-05-18 15:54                                                   ` Andy Whitcroft
2006-05-18 15:55                                                   ` [PATCH 1/2] zone init check and report unaligned zone boundaries fix Andy Whitcroft
2006-05-18 15:55                                                     ` Andy Whitcroft
2006-05-18 15:55                                                   ` [PATCH 2/2] zone allow unaligned zone boundaries spelling fix Andy Whitcroft
2006-05-18 15:55                                                     ` Andy Whitcroft
2006-05-02 15:03                 ` assert/crash in __rmqueue() when enabling CONFIG_NUMA Andi Kleen
2006-05-02 15:17                   ` Martin J. Bligh
2006-05-02 15:45                     ` Andi Kleen
2006-05-02 16:02                       ` Martin J. Bligh
2006-05-02 16:05                         ` Andi Kleen
2006-05-02 19:47                         ` Ingo Molnar
2006-05-02 19:48                       ` Ingo Molnar
2006-05-02 19:44                         ` Andi Kleen
2006-05-02 19:56                           ` Martin Bligh
2006-05-02 20:00                             ` Andi Kleen
2006-05-02 20:13                               ` Ingo Molnar
2006-05-02 20:12                                 ` Andi Kleen
2006-05-02 15:52                     ` Ingo Molnar
2006-05-02 19:55                       ` [RFC, PATCH] cond_resched() added to close_files() Eric Dumazet
2006-05-03  7:01                         ` Ingo Molnar
2006-05-12  9:44                           ` Andrew Morton
2006-05-12 10:20                             ` Ingo Molnar
2006-05-12 12:24                               ` Eric Dumazet
2006-05-14  0:09                               ` Lee Revell
2006-04-21 11:51     ` assert/crash in __rmqueue() when enabling CONFIG_NUMA Nick Piggin
2006-04-19 11:23 Ingo Molnar

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=20060421112049.GA5609@elte.hu \
    --to=mingo@elte.hu \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=npiggin@suse.de \
    /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.