1. 19 Mar, 2009 1 commit
    • Ingo Molnar's avatar
      symbols, stacktrace: look up init symbols after module symbols · 4a44bac1
      Ingo Molnar authored
      Impact: fix incomplete stacktraces
      
      I noticed such weird stacktrace entries in lockdep dumps:
      
      [    0.285956] {HARDIRQ-ON-W} state was registered at:
      [    0.285956]   [<ffffffff802bce90>] mark_irqflags+0xbe/0x125
      [    0.285956]   [<ffffffff802bf2fd>] __lock_acquire+0x674/0x82d
      [    0.285956]   [<ffffffff802bf5b2>] lock_acquire+0xfc/0x128
      [    0.285956]   [<ffffffff8135b636>] rt_spin_lock+0xc8/0xd0
      [    0.285956]   [<ffffffffffffffff>] 0xffffffffffffffff
      
      The stacktrace entry is cut off after rt_spin_lock.
      
      After much debugging i found out that stacktrace entries that
      belong to init symbols dont get printed out, due to commit:
      
        a2da4052: module: Don't report discarded init pages as kernel text.
      
      The reason is this check added to core_kernel_text():
      
      -       if (addr >= (unsigned long)_sinittext &&
      +       if (system_state == SYSTEM_BOOTING &&
      +           addr >= (unsigned long)_sinittext &&
                  addr <= (unsigned long)_einittext)
                      return 1;
      
      This will discard inittext symbols even though their symbol table
      is still present and even though stacktraces done while the system
      was booting up might still be relevant.
      
      To not reintroduce the (not well-specified) bug addressed in that
      commit, first do a module symbols lookup, then a final init-symbols
      lookup.
      
      This will work fine on architectures that have separate address
      spaces for modules (such as x86) - and should not crash any other
      architectures either.
      Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      LKML-Reference: <new-discussion>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      4a44bac1
  2. 18 Mar, 2009 12 commits
  3. 17 Mar, 2009 27 commits