+++ Josh Poimboeuf [25/03/16 14:34 -0500]:
For live patching and possibly other use cases, a stack trace is only useful if you can be assured that it's completely reliable. Add a new save_stack_trace_tsk_reliable() function to achieve that. Scenarios which indicate that a stack strace may be unreliable:
s/strace/trace
- interrupt stacks - preemption - corrupted stack data - newly forked tasks - running tasks - the user didn't provide a large enough entries array Also add a config option so arch-independent code can determine at build time whether the function is implemented. Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx> --- arch/Kconfig | 6 ++++++ arch/x86/Kconfig | 1 + arch/x86/kernel/dumpstack.c | 36 ++++++++++++++++++++++++++++++++++++ arch/x86/kernel/stacktrace.c | 32 ++++++++++++++++++++++++++++++++ include/linux/stacktrace.h | 20 ++++++++++++++++---- kernel/stacktrace.c | 4 ++-- lib/Kconfig.debug | 6 ++++++ 7 files changed, 99 insertions(+), 6 deletions(-) diff --git a/arch/Kconfig b/arch/Kconfig index 81869a5..68b95f1 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -589,6 +589,12 @@ config HAVE_STACK_VALIDATION Architecture supports the 'objtool check' host tool command, which performs compile-time stack metadata validation. +config HAVE_RELIABLE_STACKTRACE + bool + help + Architecure has a save_stack_trace_tsk_reliable() function which only
s/Architecure/Architecture -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html