s390/unwind: introduce stack unwind API
Rework the dump_trace() stack unwinder interface to support different
unwinding algorithms. The new interface looks like this:
struct unwind_state state;
unwind_for_each_frame(&state, task, regs, start_stack)
do_something(state.sp, state.ip, state.reliable);
The unwind_bc.c file contains the implementation for the classic
back-chain unwinder.
One positive side effect of the new code is it now handles ftraced
functions gracefully. It prints the real name of the return function
instead of 'return_to_handler'.
Signed-off-by:
Martin Schwidefsky <schwidefsky@de.ibm.com>
Showing
- arch/s390/include/asm/processor.h 0 additions, 72 deletionsarch/s390/include/asm/processor.h
- arch/s390/include/asm/stacktrace.h 114 additions, 0 deletionsarch/s390/include/asm/stacktrace.h
- arch/s390/include/asm/unwind.h 101 additions, 0 deletionsarch/s390/include/asm/unwind.h
- arch/s390/kernel/Makefile 2 additions, 1 deletionarch/s390/kernel/Makefile
- arch/s390/kernel/asm-offsets.c 1 addition, 0 deletionsarch/s390/kernel/asm-offsets.c
- arch/s390/kernel/dumpstack.c 98 additions, 69 deletionsarch/s390/kernel/dumpstack.c
- arch/s390/kernel/irq.c 1 addition, 0 deletionsarch/s390/kernel/irq.c
- arch/s390/kernel/machine_kexec.c 1 addition, 0 deletionsarch/s390/kernel/machine_kexec.c
- arch/s390/kernel/perf_event.c 5 additions, 11 deletionsarch/s390/kernel/perf_event.c
- arch/s390/kernel/process.c 1 addition, 0 deletionsarch/s390/kernel/process.c
- arch/s390/kernel/setup.c 1 addition, 0 deletionsarch/s390/kernel/setup.c
- arch/s390/kernel/smp.c 1 addition, 0 deletionsarch/s390/kernel/smp.c
- arch/s390/kernel/stacktrace.c 31 additions, 38 deletionsarch/s390/kernel/stacktrace.c
- arch/s390/kernel/unwind_bc.c 155 additions, 0 deletionsarch/s390/kernel/unwind_bc.c
- arch/s390/mm/maccess.c 1 addition, 0 deletionsarch/s390/mm/maccess.c
- arch/s390/oprofile/init.c 8 additions, 14 deletionsarch/s390/oprofile/init.c
Loading
Please register or sign in to comment