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);
next prev parent 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.