[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220223090132.10114-1-zhouchengming@bytedance.com>
Date: Wed, 23 Feb 2022 17:01:31 +0800
From: Chengming Zhou <zhouchengming@...edance.com>
To: rostedt@...dmis.org, mingo@...hat.com, catalin.marinas@....com,
will@...nel.org, broonie@...nel.org, mark.rutland@....com,
tglx@...utronix.de, bp@...en8.de, dave.hansen@...ux.intel.com
Cc: linux-arm-kernel@...ts.infradead.org, x86@...nel.org,
linux-kernel@...r.kernel.org, songmuchun@...edance.com,
qirui.001@...edance.com,
Chengming Zhou <zhouchengming@...edance.com>
Subject: [PATCH v2 1/2] ftrace: cleanup ftrace_graph_caller enable and disable
The ftrace_enable_ftrace_graph_caller() and
ftrace_disable_ftrace_graph_caller() are used to do special
hooks for graph tracer, which are not needed on some ARCHs
when DYNAMIC_FTRACE_WITH_[ARGS,REGS] enabled. So introduce
weak version in Ftrace core code to cleanup them.
And fix the incorrect comment in that two #endif, which should
match the previous #ifdef and #ifndef.
Signed-off-by: Chengming Zhou <zhouchengming@...edance.com>
---
arch/x86/kernel/ftrace.c | 14 ++------------
kernel/trace/ftrace.c | 20 ++++++++++++++++++++
2 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index 7cc540e6de0c..c119ef7a9295 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -615,18 +615,8 @@ int ftrace_disable_ftrace_graph_caller(void)
return ftrace_mod_jmp(ip, &ftrace_stub);
}
-#else /* !CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS */
-int ftrace_enable_ftrace_graph_caller(void)
-{
- return 0;
-}
-
-int ftrace_disable_ftrace_graph_caller(void)
-{
- return 0;
-}
-#endif /* CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS */
-#endif /* !CONFIG_DYNAMIC_FTRACE */
+#endif /* !CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS */
+#endif /* CONFIG_DYNAMIC_FTRACE */
/*
* Hook the return address and push it in the stack of return addrs
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index f9feb197b2da..60ae009e6684 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2704,6 +2704,26 @@ int __weak ftrace_arch_code_modify_post_process(void)
return 0;
}
+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
+/*
+ * archs can override this function if they must do something
+ * to enable hook for graph tracer.
+ */
+int __weak ftrace_enable_ftrace_graph_caller(void)
+{
+ return 0;
+}
+
+/*
+ * archs can override this function if they must do something
+ * to disable hook for graph tracer.
+ */
+int __weak ftrace_disable_ftrace_graph_caller(void)
+{
+ return 0;
+}
+#endif
+
void ftrace_modify_all_code(int command)
{
int update = command & FTRACE_UPDATE_TRACE_FUNC;
--
2.20.1
Powered by blists - more mailing lists