[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200608312032.34598.ak@suse.de>
Date: Thu, 31 Aug 2006 20:32:34 +0200
From: Andi Kleen <ak@...e.de>
To: Badari Pulavarty <pbadari@...il.com>
Cc: Jan Beulich <jbeulich@...ell.com>, akpm@...l.org,
lkml <linux-kernel@...r.kernel.org>
Subject: Re: Was: boot failure, "DWARF2 unwinder stuck at 0xc0100199"
On Thursday 31 August 2006 20:33, Badari Pulavarty wrote:
> On Thu, 2006-08-31 at 20:10 +0200, Andi Kleen wrote:
>
> > Should be fixed in .19
>
> Andi,
>
> I am looking at the "validity" of the stack traces. What I
> find is that "unwinder" is skipping few stack frames..
>
> As you can see from the following stack - it shows
>
> msync_interval() ->
> set_page_dirty() ->
> __set_page_dirty_buffers()
>
> But actual trace is (looking at the code):
>
> msync_interval() ->
> msync_page_range() ->
> msync_pud_range() ->
> msync_pgd_range() ->
> msync_pte_range() ->
> set_page_dirty() ->
> __set_page_dirty_buffers()
>
> Why is it skipping all msync_page/pud/pgd/pte_range() routines ?
Most likely because they're inlined. gcc tends to always inline static functions
with only a single caller, which is usually true for all the nested page table functions
in mm/*. Inlined functions (or tail called functions like return foo()) are invisible
to the unwinder.
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists