• Josh Poimboeuf's avatar
    x86/unwind: Include __schedule() in stack traces · 2c96b2fe
    Josh Poimboeuf authored
    In the following commit:
    
      0100301b ("sched/x86: Rewrite the switch_to() code")
    
    ... the layout of the 'inactive_task_frame' struct was designed to have
    a frame pointer header embedded in it, so that the unwinder could use
    the 'bp' and 'ret_addr' fields to report __schedule() on the stack (or
    ret_from_fork() for newly forked tasks which haven't actually run yet).
    
    Finish the job by changing get_frame_pointer() to return a pointer to
    inactive_task_frame's 'bp' field rather than 'bp' itself.  This allows
    the unwinder to start one frame higher on the stack, so that it properly
    reports __schedule().
    Reported-by: default avatarMiroslav Benes <mbenes@suse.cz>
    Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Jones <davej@codemonkey.org.uk>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/598e9f7505ed0aba86e8b9590aa528c6c7ae8dcd.1483978430.git.jpoimboe@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    2c96b2fe
switch_to.h 2.01 KB