From: Johannes Weiner <hannes@cmpxchg.org>
To: Robert Hancock <hancockr@shaw.ca>
Cc: linux-kernel@vger.kernel.org, david@lang.hm,
Andi Kleen <andi@firstfloor.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: early exception error
Date: Mon, 5 Jan 2009 10:26:19 +0100 [thread overview]
Message-ID: <20090105092619.GA3699@cmpxchg.org> (raw)
In-Reply-To: <495E7FAD.6020305@shaw.ca>
On Fri, Jan 02, 2009 at 02:57:17PM -0600, Robert Hancock wrote:
> Cyrill Gorcunov wrote:
> >
> >Here is a new picture if someone would like to jump into
> >the bug handling
> >
> > http://linux.lang.hm/linux/IMG00033.jpg
>
> alloc_bootmem_core is a reasonably big function, it would be useful if
> we could track down what line it's blowing up on.. Can you try to find
> out what line that fault address (ffffffff8096452a in this crash) is on
> as described in Documentation/BUG-HUNTING, i.e. build with
> CONFIG_DEBUG_INFO enabled, run gdb on vmlinux and do:
>
> l *0xffffffff8096452a
He has booted with bootmem debugging output. Given that the bdebug()
describing the request wasn't hit yet, it must be one of the BUG_ON()s
(or bdata is NULL).
If you can find out the line with gdb, this would be great.
Besides that it might be useful to move the bdebug() before the
BUG_ON()s. With the line info available, the expressions that trigger
a bug are pretty unambiguous, but since we would print the parameters
anyway we can as well do so before a possible panic to quickly deduce
what went wrong without decoding.
Hannes
---
Subject: bootmem: print request details before BUG_ON(them)
Moving the request details print-out before the sanity checks that
might panic() enables us to analyse invalid requests without having
access to the line information of the stack dump.
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
---
diff --git a/mm/bootmem.c b/mm/bootmem.c
index ac5a891..51a0ccf 100644
--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -435,6 +435,10 @@ static void * __init alloc_bootmem_core(struct bootmem_data *bdata,
unsigned long fallback = 0;
unsigned long min, max, start, sidx, midx, step;
+ bdebug("nid=%td size=%lx [%lu pages] align=%lx goal=%lx limit=%lx\n",
+ bdata - bootmem_node_data, size, PAGE_ALIGN(size) >> PAGE_SHIFT,
+ align, goal, limit);
+
BUG_ON(!size);
BUG_ON(align & (align - 1));
BUG_ON(limit && goal + size > limit);
@@ -442,10 +446,6 @@ static void * __init alloc_bootmem_core(struct bootmem_data *bdata,
if (!bdata->node_bootmem_map)
return NULL;
- bdebug("nid=%td size=%lx [%lu pages] align=%lx goal=%lx limit=%lx\n",
- bdata - bootmem_node_data, size, PAGE_ALIGN(size) >> PAGE_SHIFT,
- align, goal, limit);
-
min = bdata->node_min_pfn;
max = bdata->node_low_pfn;
next prev parent reply other threads:[~2009-01-05 9:26 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-30 22:21 early exception error david
2008-12-30 21:26 ` Cyrill Gorcunov
2008-12-30 22:31 ` david
2008-12-30 21:41 ` Cyrill Gorcunov
2008-12-30 22:48 ` david
2008-12-31 0:25 ` Andi Kleen
2008-12-31 1:39 ` david
2008-12-31 1:25 ` Andi Kleen
2008-12-31 9:38 ` Cyrill Gorcunov
2008-12-31 19:12 ` david
2008-12-31 18:30 ` Cyrill Gorcunov
2008-12-31 19:50 ` Andi Kleen
2008-12-31 20:20 ` Cyrill Gorcunov
2008-12-31 20:59 ` david
2009-01-01 4:17 ` Andi Kleen
2009-01-01 6:17 ` david
2009-01-01 14:02 ` Andi Kleen
2009-01-02 18:21 ` david
2009-01-02 17:24 ` Cyrill Gorcunov
2009-01-02 20:57 ` Robert Hancock
2009-01-05 9:26 ` Johannes Weiner [this message]
2009-01-05 13:08 ` Andi Kleen
2009-01-05 14:51 ` Jiri Slaby
2009-01-05 15:01 ` Cyrill Gorcunov
2009-01-05 15:14 ` Jiri Slaby
2009-01-05 15:30 ` Cyrill Gorcunov
2009-01-05 15:39 ` Jiri Slaby
2009-01-05 15:42 ` Cyrill Gorcunov
2009-01-05 14:51 ` Jiri Slaby
2008-12-31 20:07 ` david
2008-12-31 19:12 ` Cyrill Gorcunov
2008-12-31 21:18 ` david
2008-12-31 20:23 ` Cyrill Gorcunov
2008-12-31 20:27 ` Cyrill Gorcunov
2008-12-31 22:30 ` Cyrill Gorcunov
[not found] <alpine.DEB.1.10.0901021029010.21408@asgard.lang.hm>
[not found] ` <20090102173441.GC5372@localhost>
[not found] ` <alpine.DEB.1.10.0901021044460.21408@asgard.lang.hm>
[not found] ` <20090102174845.GD5372@localhost>
[not found] ` <20090102175226.GE5372@localhost>
[not found] ` <alpine.DEB.1.10.0901021131210.21567@asgard.lang.hm>
[not found] ` <20090102203058.GH5372@localhost>
[not found] ` <alpine.DEB.1.10.0901030823190.23262@asgard.lang.hm>
[not found] ` <20090103161052.GB11093@localhost>
[not found] ` <alpine.DEB.1.10.0901031118450.23262@asgard.lang.hm>
2009-01-03 19:03 ` Cyrill Gorcunov
2009-01-03 21:24 ` Cyrill Gorcunov
2009-01-04 0:24 ` Jiri Slaby
2009-01-04 0:59 ` Andi Kleen
2009-01-04 10:32 ` Cyrill Gorcunov
2009-01-04 11:11 ` Cyrill Gorcunov
2009-01-04 11:29 ` Cyrill Gorcunov
2009-01-04 12:23 ` Jiri Slaby
2009-01-05 22:20 ` david
2009-01-05 21:25 ` Cyrill Gorcunov
2009-01-05 23:20 ` david
2009-01-06 8:01 ` Cyrill Gorcunov
2009-01-05 21:55 ` Yinghai Lu
2009-01-05 22:07 ` Yinghai Lu
2009-01-05 23:20 ` david
2009-01-06 0:50 ` david
2009-01-06 0:54 ` david
2009-01-06 0:02 ` Yinghai Lu
2009-01-06 1:22 ` david
2009-01-06 0:25 ` Yinghai Lu
2009-01-06 2:03 ` david
2009-01-06 1:06 ` Yinghai Lu
2009-01-06 5:29 ` david
2009-01-06 6:09 ` Yinghai Lu
2009-01-07 7:49 ` david
2009-01-05 23:18 ` david
2009-01-05 22:29 ` Yinghai Lu
2009-01-05 22:31 ` Yinghai Lu
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=20090105092619.GA3699@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=david@lang.hm \
--cc=hancockr@shaw.ca \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox