Re: [PATCH] ftrace: add ftrace_graph_max_depth kernel parameter

From: Steven Rostedt
Date: Thu Mar 02 2017 - 20:57:34 EST


On Thu, 2 Mar 2017 16:12:15 -0800
Todd Brandt <todd.e.brandt@xxxxxxxxxxxxxxx> wrote:

> Early trace callgraphs can be extremely large on systems with
> several seconds of boot time. The max_depth parameter limits how
> deep the graph trace goes and reduces the output size. This
> parameter is the same as the max_graph_depth file in debugfs.

I'll take this with one modification I'll make. s/debugfs/tracefs/
because it's really the tracefs file system now. It just happens to be
automatically mounted in the debugfs file system. But can be by itself
in /sys/kernel/tracing/

-- Steve

>
> Signed-off-by: Todd Brandt <todd.e.brandt@xxxxxxxxxxxxxxx>
> ---
> Documentation/admin-guide/kernel-parameters.txt | 6 ++++++
> kernel/trace/ftrace.c | 9 +++++++++
> 2 files changed, 15 insertions(+)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index 986e443..1a8575f 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -1183,6 +1183,12 @@
> functions that can be changed at run time by the
> set_graph_notrace file in the debugfs tracing directory.
>
> + ftrace_graph_max_depth=<uint>
> + [FTRACE] Used with the function graph tracer. This is
> + the max depth it will trace into a function. This value
> + can be changed at run time by the max_graph_depth file
> + in the debugfs tracing directory. default: 0 (no limit)
> +
> gamecon.map[2|3]=
> [HW,JOY] Multisystem joystick and NES/SNES/PSX pad
> support via parallel port (up to 5 devices per port)
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 0c06093..fc6b024 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -4415,6 +4415,15 @@ static int __init set_graph_notrace_function(char *str)
> }
> __setup("ftrace_graph_notrace=", set_graph_notrace_function);
>
> +static int __init set_graph_max_depth_function(char *str)
> +{
> + if (!str)
> + return 0;
> + fgraph_max_depth = simple_strtoul(str, NULL, 0);
> + return 1;
> +}
> +__setup("ftrace_graph_max_depth=", set_graph_max_depth_function);
> +
> static void __init set_ftrace_early_graph(char *buf, int enable)
> {
> int ret;