Re: [PATCH v10 03/36] x86: tracing: Add ftrace_regs definition in the header
From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Date: 2024-05-24 01:38:01
Also in:
bpf, lkml
On Thu, 23 May 2024 19:14:59 -0400 Steven Rostedt [off-list ref] wrote:
On Tue, 7 May 2024 23:08:35 +0900 "Masami Hiramatsu (Google)" [off-list ref] wrote:quoted
From: Masami Hiramatsu (Google) <mhiramat@kernel.org> Add ftrace_regs definition for x86_64 in the ftrace header to clarify what register will be accessible from ftrace_regs. Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> --- Changes in v3: - Add rip to be saved. Changes in v2: - Newly added. --- arch/x86/include/asm/ftrace.h | 6 ++++++ 1 file changed, 6 insertions(+)diff --git a/arch/x86/include/asm/ftrace.h b/arch/x86/include/asm/ftrace.h index cf88cc8cc74d..c88bf47f46da 100644 --- a/arch/x86/include/asm/ftrace.h +++ b/arch/x86/include/asm/ftrace.h@@ -36,6 +36,12 @@ static inline unsigned long ftrace_call_adjust(unsigned long addr) #ifdef CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS struct ftrace_regs { + /* + * On the x86_64, the ftrace_regs saves; + * rax, rcx, rdx, rdi, rsi, r8, r9, rbp, rip and rsp. + * Also orig_ax is used for passing direct trampoline address. + * x86_32 doesn't support ftrace_regs.Should add a comment that if fregs->regs.cs is set, then all of the pt_regs is valid.
But what about rbx and r1*? Only regs->cs should be care for pt_regs? Or, did you mean "the ftrace_regs is valid"?
And x86_32 does support ftrace_regs, it just doesn't support having a subset of it.
Oh, thanks. I'll update the comment about x86_32. Thank you,
-- Stevequoted
+ */ struct pt_regs regs; };
-- Masami Hiramatsu (Google) [off-list ref]