[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <mhng-37c10407-3c40-4045-9627-0b53f770cb4e@palmer-ri-x1c9a>
Date: Tue, 25 Jun 2024 08:45:06 -0700 (PDT)
From: Palmer Dabbelt <palmer@...belt.com>
To: alex@...ti.fr
CC: andy.chiu@...ive.com, Paul Walmsley <paul.walmsley@...ive.com>,
aou@...s.berkeley.edu, alexghiti@...osinc.com, zong.li@...ive.com, rostedt@...dmis.org,
mhiramat@...nel.org, Mark Rutland <mark.rutland@....com>, nathan@...nel.org,
ndesaulniers@...gle.com, morbo@...gle.com, justinstitt@...gle.com, puranjay@...nel.org,
linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org, linux-trace-kernel@...r.kernel.org,
llvm@...ts.linux.dev
Subject: Re: [PATCH 1/8] riscv: stacktrace: convert arch_stack_walk() to noinstr
On Tue, 18 Jun 2024 02:55:32 PDT (-0700), alex@...ti.fr wrote:
> Hi Andy,
>
> On 13/06/2024 09:11, Andy Chiu wrote:
>> 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@...ive.com>
>> ---
>> arch/riscv/kernel/stacktrace.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/riscv/kernel/stacktrace.c b/arch/riscv/kernel/stacktrace.c
>> index 528ec7cc9a62..0d3f00eb0bae 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);
>>
>
> Reviewed-by: Alexandre Ghiti <alexghiti@...osinc.com>
>
> I'll try to make this go into -fixes, this is in my fixes branch at least.
Looks like there's some comments on the rest of the patch set.
Andy: aree you going to send a v2, or do you want me to just pick this
one up onto fixes now and then handle the rest later?
>
> Thanks,
>
> Alex
Powered by blists - more mailing lists