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 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.