Thread (7 messages) 7 messages, 2 authors, 2021-06-22

Re: [RFC PATCH 1/2] ftrace: Introduce cmdline argument ftrace_disabled

From: Tiezhu Yang <yangtiezhu@loongson.cn>
Date: 2021-06-21 01:21:42
Also in: lkml

On 06/19/2021 11:22 PM, Steven Rostedt wrote:
On Sat, 19 Jun 2021 14:29:19 +0800
Tiezhu Yang [off-list ref] wrote:
quoted
If set CONFIG_FUNCTION_TRACER=y, we can use the following command to
disable ftrace after boot up:
echo 0 > /proc/sys/kernel/ftrace_enabled
I'd love to just remove that. It's original purpose was to stop function
tracing when the latency tracers were active. That's now done via a tracefs
option. The "ftrace_enabled" really has no use anymore.
quoted
ftrace_disabled is much stronger than ftrace_enabled, introduce a new
cmdline argument ftrace_disabled for user to control whether to disable
ftrace when boot up.
"ftrace_disabled" is triggered when an anomaly is detected, and for the
safety of the system, ftrace shuts down. It was never meant to be a user
triggered event.
Thanks for your explanation.
You have no rationale for this change. What's the purpose of this?
The "System Benchmarks Index Score" of UnixBench under FUNCTION_TRACER
is lower than !FUNCTION_TRACER, I want to use this new cmdline argument
ftrace_disabled to test it, this is the original intention.

I see the following help info of "config FUNCTION_TRACER":

[If it's runtime disabled (the bootup default), then the overhead of the
instructions is very small and not measurable even in micro-benchmarks.]

I am not quite understand the above description, could you tell me how to
avoid the runtime performance overhead under FUNCTION_TRACER?

Thanks,
Tiezhu
-- Steve

quoted
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
  kernel/trace/ftrace.c | 8 ++++++++
  1 file changed, 8 insertions(+)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 72ef4dc..a015699 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -5517,6 +5517,14 @@ static char ftrace_filter_buf[FTRACE_FILTER_SIZE] __initdata;
  /* Used by function selftest to not test if filter is set */
  bool ftrace_filter_param __initdata;
  
+static int __init set_ftrace_disabled(char *str)
+{
+	pr_info("Set ftrace_disabled to disable ftrace\n");
+	ftrace_disabled = 1;
+	return 1;
+}
+__setup("ftrace_disabled", set_ftrace_disabled);
+
  static int __init set_ftrace_notrace(char *str)
  {
  	ftrace_filter_param = true;
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help