Thread (46 messages) flat view 46 messages, 2 authors, 2024-05-25

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,
-- Steve

quoted
+	 */
 	struct pt_regs		regs;
 };
 

-- 
Masami Hiramatsu (Google) [off-list ref]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help