Re: Error in save_stack_trace() on x86_64?

Arjan van de Ven
2008-05-11T19:44:52Z

Vegard Nossum wrote:
> Hi,
>
> I am having a problem with v2.6.26-rc1 on x86_64. It seems that
> save_stack_trace() is not able to follow page fault boundaries, since
> all my saved traces look like this:
>
> RIP: 0010:[<ffffffff8039b004>] [<ffffffff8039b004>] add_uevent_var+0xb4/0x160
> ...
> [<ffffffff80221f97>] kmemcheck_read+0x127/0x1e0
> [<ffffffff80222269>] kmemcheck_access+0x179/0x1d0
> [<ffffffff8022231f>] kmemcheck_fault+0x5f/0x80
> [<ffffffff8061cd1e>] do_page_fault+0x4de/0x8d0
> [<ffffffff8061a7d9>] error_exit+0x0/0x51
> [<ffffffffffffffff>] 0xffffffffffffffff
>
> I have this in my .config:
>
> CONFIG_STACKTRACE_SUPPORT=y
> CONFIG_STACKTRACE=y
> ...
> CONFIG_FRAME_POINTER=y
> ...
> CONFIG_DEBUG_INFO=y
>
>
> On 32-bit, I am able to see the calls leading up to the page fault as
> well. Did I miss something here?

can you give an example?

if a pagefault happens in userspace this trace looks correct.

if it happens in kernel space... I wonder if the separate exception stack thing
is hurting us with the stacks not being properly connected...
(but oopses and the like seem to come out just fine so I kinda doubt you're hitting that)