[Crash-utility] backtrace failure on x86_64 and x86 in 2.6.33/34 kernels due to "thread_return" removal

Dave Anderson anderson at redhat.com
Thu May 20 16:07:50 UTC 2010


Just an FYI -- I'm delaying a new release that I had hoped to do today
because backtraces for blocked x86_64 tasks no longer work with recent
kernels because this commit removed the "thread_return" label:

  commit c12a229bc5971534537a7d0e49e44f9f1f5d0336
  Author: Masami Hiramatsu <mhiramat at redhat.com>
  Date:   Thu Nov 5 11:03:59 2009 -0500

    x86: Remove unused thread_return label from switch_to()
    
    Remove unused thread_return label from switch_to() macro on
    x86-64. Since this symbol cuts into schedule(), backtrace at the
    latter half of schedule() was always shown as thread_return().
    
    Signed-off-by: Masami Hiramatsu <mhiramat at redhat.com>
    Cc: systemtap <systemtap at sources.redhat.com>
    Cc: DLE <dle-develop at lists.sourceforge.net>
    LKML-Reference: <20091105160359.5181.26225.stgit at harusame>
    Signed-off-by: Ingo Molnar <mingo at elte.hu>

  diff --git a/arch/x86/include/asm/system.h b/arch/x86/include/asm/system.h
  index f08f973..1a953e2 100644
  --- a/arch/x86/include/asm/system.h
  +++ b/arch/x86/include/asm/system.h
  @@ -128,8 +128,6 @@ do {                                                                        \
               "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */       \
               "movq %P[threadrsp](%[next]),%%rsp\n\t" /* restore RSP */    \
               "call __switch_to\n\t"                                       \
  -            ".globl thread_return\n"                                     \
  -            "thread_return:\n\t"                                         \
               "movq "__percpu_arg([current_task])",%%rsi\n\t"              \
               __switch_canary                                              \
               "movq %P[thread_info](%%rsi),%%r8\n\t"                       \


I've got a fix for x86_64 -- which have always depended on the existence of
the "thread_return" label.  But I note that x86 backtraces also are not working,
which I'll take a look at today.

Dave




More information about the Crash-utility mailing list