Re: 2.6.23-rc1: BUG_ON in kmap_atomic_prot()

Linus Torvalds
2007-07-23T21:28:59Z

On Mon, 23 Jul 2007, Andrew Morton wrote:
>
> It'd be nice to get a clean trace. Are you able to obtain the full
> trace with CONFIG_FRAME_POINTER=y?

If you are talking about

http://userweb.kernel.org/~akpm/dsc03659.jpg

then I think that _is_ a full trace. It's certainly not very messy, and it
seems accurate. It's just that inlining makes it much harder to see the
call-graphs, but that's what inlining does..

For example, missing from the call graph is

get_page_from_freelist ->
buffered_rmqueue -> [ missing - inlined ]
prep_new_page -> [ missing - inlined ]
prep_zero_page -> [ missing - inlined ]
clear_highpage -> [ missing - inlined ]
kmap_atomic -> [ missing - tailcall ]
kmap_atomic_prot

but I'm pretty sure the call trace is good (and I'm also pretty sure gcc
is overly aggressive at inlining, and that it causes us pain for
debugging, but whatever)

The earlier part of the trace looks fine too.

The only odd part I see is the existence of "dput()" there, so maybe it's
not *quite* clean and enabling frame pointers might get rid of a few bogus
entries, but it looks pretty close to clean.

Linus