Messages in this thread Patch in this message | | | From | Li Huafei <> | Subject | [PATCH v2 3/5] ARM: stacktrace: Allow stack trace saving for non-current tasks | Date | Wed, 13 Jul 2022 19:00:18 +0800 |
| |
The current ARM implementation of save_stack_trace_tsk() does not allow saving stack trace for non-current tasks, which may limit the scenarios in which stack_trace_save_tsk() can be used. Like other architectures, or like ARM's unwind_backtrace(), we can leave it up to the caller to ensure that the task that needs to be unwound is not running.
Signed-off-by: Li Huafei <lihuafei1@huawei.com> --- arch/arm/kernel/stacktrace.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/arch/arm/kernel/stacktrace.c b/arch/arm/kernel/stacktrace.c index 3acf51ee46bb..836420c00938 100644 --- a/arch/arm/kernel/stacktrace.c +++ b/arch/arm/kernel/stacktrace.c @@ -171,19 +171,11 @@ static noinline void __save_stack_trace(struct task_struct *tsk, data.no_sched_functions = nosched; if (tsk != current) { -#ifdef CONFIG_SMP - /* - * What guarantees do we have here that 'tsk' is not - * running on another CPU? For now, ignore it as we - * can't guarantee we won't explode. - */ - return; -#else + /* task blocked in __switch_to */ frame.fp = thread_saved_fp(tsk); frame.sp = thread_saved_sp(tsk); frame.lr = 0; /* recovered from the stack */ frame.pc = thread_saved_pc(tsk); -#endif } else { /* We don't want this function nor the caller */ data.skip += 2; -- 2.17.1
| |