Patch "riscv: stacktrace: convert arch_stack_walk() to noinstr" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    riscv: stacktrace: convert arch_stack_walk() to noinstr

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     riscv-stacktrace-convert-arch_stack_walk-to-noinstr.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 2cee351290fc4f17050ad02a3ae0fc49df85f704
Author: Andy Chiu <andy.chiu@xxxxxxxxxx>
Date:   Thu Jun 13 15:11:06 2024 +0800

    riscv: stacktrace: convert arch_stack_walk() to noinstr
    
    [ Upstream commit 23b2188920a25e88d447dd7d819a0b0f62fb4455 ]
    
    arch_stack_walk() is called intensively in function_graph when the
    kernel is compiled with CONFIG_TRACE_IRQFLAGS. As a result, the kernel
    logs a lot of arch_stack_walk and its sub-functions into the ftrace
    buffer. However, these functions should not appear on the trace log
    because they are part of the ftrace itself. This patch references what
    arm64 does for the smae function. So it further prevent the re-enter
    kprobe issue, which is also possible on riscv.
    
    Related-to: commit 0fbcd8abf337 ("arm64: Prohibit instrumentation on arch_stack_walk()")
    Fixes: 680341382da5 ("riscv: add CALLER_ADDRx support")
    Signed-off-by: Andy Chiu <andy.chiu@xxxxxxxxxx>
    Reviewed-by: Alexandre Ghiti <alexghiti@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240613-dev-andyc-dyn-ftrace-v4-v1-1-1a538e12c01e@xxxxxxxxxx
    Signed-off-by: Palmer Dabbelt <palmer@xxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/riscv/kernel/stacktrace.c b/arch/riscv/kernel/stacktrace.c
index 528ec7cc9a622..0d3f00eb0baee 100644
--- a/arch/riscv/kernel/stacktrace.c
+++ b/arch/riscv/kernel/stacktrace.c
@@ -156,7 +156,7 @@ unsigned long __get_wchan(struct task_struct *task)
 	return pc;
 }
 
-noinline void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
+noinline noinstr void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 		     struct task_struct *task, struct pt_regs *regs)
 {
 	walk_stackframe(task, regs, consume_entry, cookie);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux