* [GIT PULL] tracing/core updates
@ 2009-10-13 7:38 Frederic Weisbecker
2009-10-13 7:38 ` [PATCH 1/3] ftrace: add kernel command line graph function filtering Frederic Weisbecker
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Frederic Weisbecker @ 2009-10-13 7:38 UTC (permalink / raw)
To: Ingo Molnar
Cc: LKML, Frederic Weisbecker, Stefan Assmann, Steven Rostedt,
Li Zefan
Ingo,
Please pull the tracing/core branch that can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing.git
tracing/core
Thanks.
Frederic Weisbecker (2):
tracing: Rename set_ftrace to set_bootup_ftrace
tracing: Remove unused ftrace_trace_addr helper
Stefan Assmann (1):
ftrace: add kernel command line graph function filtering
Documentation/kernel-parameters.txt | 7 +++++++
kernel/trace/ftrace.c | 34 ++++++++++++++++++++++++++++++++++
kernel/trace/trace.c | 4 ++--
kernel/trace/trace.h | 4 ----
4 files changed, 43 insertions(+), 6 deletions(-)
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/3] ftrace: add kernel command line graph function filtering
2009-10-13 7:38 [GIT PULL] tracing/core updates Frederic Weisbecker
@ 2009-10-13 7:38 ` Frederic Weisbecker
2009-10-13 8:06 ` Li Zefan
2009-10-13 7:38 ` [PATCH 2/3] tracing: Rename set_ftrace to set_bootup_ftrace Frederic Weisbecker
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Frederic Weisbecker @ 2009-10-13 7:38 UTC (permalink / raw)
To: Ingo Molnar
Cc: LKML, Stefan Assmann, Steven Rostedt, Li Zefan,
Frederic Weisbecker
From: Stefan Assmann <sassmann@redhat.com>
Add a command line parameter to allow limiting the function graphs
that are traced on boot up from the given top-level callers , when
ftrace=function_graph is specified.
This patch adds the following command line option:
ftrace_graph_filter=function-list
Where function-list is a comma separated list of functions to filter.
[fweisbec@gmail.com: picked the documentation changes from the v2 patch]
Signed-off-by: Stefan Assmann <sassmann@redhat.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <4AD2DEB9.2@redhat.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
---
Documentation/kernel-parameters.txt | 7 +++++++
kernel/trace/ftrace.c | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 6fa7292..1dc4b9c 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -778,6 +778,13 @@ and is between 256 and 4096 characters. It is defined in the file
by the set_ftrace_notrace file in the debugfs
tracing directory.
+ ftrace_graph_filter=[function-list]
+ [FTRACE] Limit the top level callers functions traced
+ by the function graph tracer at boot up.
+ function-list is a comma separated list of functions
+ that can be changed at run time by the
+ set_graph_function file in the debugfs tracing directory.
+
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 9a72853..91283d4 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -78,6 +78,10 @@ ftrace_func_t ftrace_trace_function __read_mostly = ftrace_stub;
ftrace_func_t __ftrace_trace_function __read_mostly = ftrace_stub;
ftrace_func_t ftrace_pid_function __read_mostly = ftrace_stub;
+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
+static int ftrace_set_func(unsigned long *array, int *idx, char *buffer);
+#endif
+
static void ftrace_list_func(unsigned long ip, unsigned long parent_ip)
{
struct ftrace_ops *op = ftrace_list;
@@ -2248,6 +2252,7 @@ void ftrace_set_notrace(unsigned char *buf, int len, int reset)
#define FTRACE_FILTER_SIZE COMMAND_LINE_SIZE
static char ftrace_notrace_buf[FTRACE_FILTER_SIZE] __initdata;
static char ftrace_filter_buf[FTRACE_FILTER_SIZE] __initdata;
+static char ftrace_graph_buf[FTRACE_FILTER_SIZE] __initdata;
static int __init set_ftrace_notrace(char *str)
{
@@ -2263,6 +2268,31 @@ static int __init set_ftrace_filter(char *str)
}
__setup("ftrace_filter=", set_ftrace_filter);
+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
+static int __init set_graph_function(char *str)
+{
+ strncpy(ftrace_graph_buf, str, FTRACE_FILTER_SIZE);
+ return 1;
+}
+__setup("ftrace_graph_filter=", set_graph_function);
+
+static void __init set_ftrace_early_graph(char *buf)
+{
+ int ret;
+ char *func;
+
+ while (buf) {
+ func = strsep(&buf, ",");
+ /* we allow only one expression at a time */
+ ret = ftrace_set_func(ftrace_graph_funcs, &ftrace_graph_count,
+ func);
+ if (ret)
+ printk(KERN_DEBUG "ftrace: function %s not "
+ "traceable\n", func);
+ }
+}
+#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
+
static void __init set_ftrace_early_filter(char *buf, int enable)
{
char *func;
@@ -2279,6 +2309,10 @@ static void __init set_ftrace_early_filters(void)
set_ftrace_early_filter(ftrace_filter_buf, 1);
if (ftrace_notrace_buf[0])
set_ftrace_early_filter(ftrace_notrace_buf, 0);
+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
+ if (ftrace_graph_buf[0])
+ set_ftrace_early_graph(ftrace_graph_buf);
+#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
}
static int
--
1.6.2.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] tracing: Rename set_ftrace to set_bootup_ftrace
2009-10-13 7:38 [GIT PULL] tracing/core updates Frederic Weisbecker
2009-10-13 7:38 ` [PATCH 1/3] ftrace: add kernel command line graph function filtering Frederic Weisbecker
@ 2009-10-13 7:38 ` Frederic Weisbecker
2009-10-13 13:22 ` Steven Rostedt
2009-10-13 7:39 ` [PATCH 3/3] tracing: Remove unused ftrace_trace_addr helper Frederic Weisbecker
2009-10-13 10:04 ` [GIT PULL] tracing/core updates Ingo Molnar
3 siblings, 1 reply; 10+ messages in thread
From: Frederic Weisbecker @ 2009-10-13 7:38 UTC (permalink / raw)
To: Ingo Molnar; +Cc: LKML, Frederic Weisbecker, Steven Rostedt, Li Zefan
Do this rename because set_ftrace is too much generic and not enough
self-explainable as a name.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Li Zefan <lizf@cn.fujitsu.com>
---
kernel/trace/trace.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 4506826..866daf8 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -129,7 +129,7 @@ static int tracing_set_tracer(const char *buf);
static char bootup_tracer_buf[MAX_TRACER_SIZE] __initdata;
static char *default_bootup_tracer;
-static int __init set_ftrace(char *str)
+static int __init set_bootup_ftrace(char *str)
{
strncpy(bootup_tracer_buf, str, MAX_TRACER_SIZE);
default_bootup_tracer = bootup_tracer_buf;
@@ -137,7 +137,7 @@ static int __init set_ftrace(char *str)
ring_buffer_expanded = 1;
return 1;
}
-__setup("ftrace=", set_ftrace);
+__setup("ftrace=", set_bootup_ftrace);
static int __init set_ftrace_dump_on_oops(char *str)
{
--
1.6.2.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] tracing: Remove unused ftrace_trace_addr helper
2009-10-13 7:38 [GIT PULL] tracing/core updates Frederic Weisbecker
2009-10-13 7:38 ` [PATCH 1/3] ftrace: add kernel command line graph function filtering Frederic Weisbecker
2009-10-13 7:38 ` [PATCH 2/3] tracing: Rename set_ftrace to set_bootup_ftrace Frederic Weisbecker
@ 2009-10-13 7:39 ` Frederic Weisbecker
2009-10-13 10:04 ` [GIT PULL] tracing/core updates Ingo Molnar
3 siblings, 0 replies; 10+ messages in thread
From: Frederic Weisbecker @ 2009-10-13 7:39 UTC (permalink / raw)
To: Ingo Molnar; +Cc: LKML, Frederic Weisbecker, Steven Rostedt, Li Zefan
Remove the ftrace_trace_addr() function as only its off-case is
implemented and there are no users of it currently.
But we keep ftrace_graph_addr() off-case, in case someone come to use
the function graph tracer to profit from top-level callers filtering.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Li Zefan <lizf@cn.fujitsu.com>
---
kernel/trace/trace.h | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 365fb19..f22a7ac 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -483,10 +483,6 @@ static inline int ftrace_graph_addr(unsigned long addr)
return 0;
}
#else
-static inline int ftrace_trace_addr(unsigned long addr)
-{
- return 1;
-}
static inline int ftrace_graph_addr(unsigned long addr)
{
return 1;
--
1.6.2.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] ftrace: add kernel command line graph function filtering
2009-10-13 7:38 ` [PATCH 1/3] ftrace: add kernel command line graph function filtering Frederic Weisbecker
@ 2009-10-13 8:06 ` Li Zefan
2009-10-13 8:58 ` Frédéric Weisbecker
0 siblings, 1 reply; 10+ messages in thread
From: Li Zefan @ 2009-10-13 8:06 UTC (permalink / raw)
To: Frederic Weisbecker; +Cc: Ingo Molnar, LKML, Stefan Assmann, Steven Rostedt
> +#ifdef CONFIG_FUNCTION_GRAPH_TRACER
> +static int __init set_graph_function(char *str)
> +{
> + strncpy(ftrace_graph_buf, str, FTRACE_FILTER_SIZE);
should use strlcpy().
> + return 1;
> +}
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] ftrace: add kernel command line graph function filtering
2009-10-13 8:06 ` Li Zefan
@ 2009-10-13 8:58 ` Frédéric Weisbecker
0 siblings, 0 replies; 10+ messages in thread
From: Frédéric Weisbecker @ 2009-10-13 8:58 UTC (permalink / raw)
To: Li Zefan; +Cc: Ingo Molnar, LKML, Stefan Assmann, Steven Rostedt
2009/10/13 Li Zefan <lizf@cn.fujitsu.com>:
>> +#ifdef CONFIG_FUNCTION_GRAPH_TRACER
>> +static int __init set_graph_function(char *str)
>> +{
>> + strncpy(ftrace_graph_buf, str, FTRACE_FILTER_SIZE);
>
> should use strlcpy().
>
Right, I'll fix, thanks.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [GIT PULL] tracing/core updates
2009-10-13 7:38 [GIT PULL] tracing/core updates Frederic Weisbecker
` (2 preceding siblings ...)
2009-10-13 7:39 ` [PATCH 3/3] tracing: Remove unused ftrace_trace_addr helper Frederic Weisbecker
@ 2009-10-13 10:04 ` Ingo Molnar
3 siblings, 0 replies; 10+ messages in thread
From: Ingo Molnar @ 2009-10-13 10:04 UTC (permalink / raw)
To: Frederic Weisbecker; +Cc: LKML, Stefan Assmann, Steven Rostedt, Li Zefan
* Frederic Weisbecker <fweisbec@gmail.com> wrote:
> Ingo,
>
> Please pull the tracing/core branch that can be found at
>
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing.git
> tracing/core
>
> Thanks.
>
> Frederic Weisbecker (2):
> tracing: Rename set_ftrace to set_bootup_ftrace
> tracing: Remove unused ftrace_trace_addr helper
>
> Stefan Assmann (1):
> ftrace: add kernel command line graph function filtering
>
> Documentation/kernel-parameters.txt | 7 +++++++
> kernel/trace/ftrace.c | 34 ++++++++++++++++++++++++++++++++++
> kernel/trace/trace.c | 4 ++--
> kernel/trace/trace.h | 4 ----
> 4 files changed, 43 insertions(+), 6 deletions(-)
Pulled, thanks Frederic!
Ingo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] tracing: Rename set_ftrace to set_bootup_ftrace
2009-10-13 7:38 ` [PATCH 2/3] tracing: Rename set_ftrace to set_bootup_ftrace Frederic Weisbecker
@ 2009-10-13 13:22 ` Steven Rostedt
2009-10-13 13:35 ` Frederic Weisbecker
0 siblings, 1 reply; 10+ messages in thread
From: Steven Rostedt @ 2009-10-13 13:22 UTC (permalink / raw)
To: Frederic Weisbecker; +Cc: Ingo Molnar, LKML, Li Zefan
On Tue, 2009-10-13 at 09:38 +0200, Frederic Weisbecker wrote:
> Do this rename because set_ftrace is too much generic and not enough
> self-explainable as a name.
>
> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Cc: Li Zefan <lizf@cn.fujitsu.com>
> ---
> kernel/trace/trace.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> index 4506826..866daf8 100644
> --- a/kernel/trace/trace.c
> +++ b/kernel/trace/trace.c
> @@ -129,7 +129,7 @@ static int tracing_set_tracer(const char *buf);
> static char bootup_tracer_buf[MAX_TRACER_SIZE] __initdata;
> static char *default_bootup_tracer;
>
> -static int __init set_ftrace(char *str)
> +static int __init set_bootup_ftrace(char *str)
> {
> strncpy(bootup_tracer_buf, str, MAX_TRACER_SIZE);
> default_bootup_tracer = bootup_tracer_buf;
> @@ -137,7 +137,7 @@ static int __init set_ftrace(char *str)
> ring_buffer_expanded = 1;
> return 1;
> }
> -__setup("ftrace=", set_ftrace);
> +__setup("ftrace=", set_bootup_ftrace);
Actually, it probably should be called, set_cmdline_ftrace. Since it
came from the command line, and that is what is matching.
-- Steve
>
> static int __init set_ftrace_dump_on_oops(char *str)
> {
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] tracing: Rename set_ftrace to set_bootup_ftrace
2009-10-13 13:22 ` Steven Rostedt
@ 2009-10-13 13:35 ` Frederic Weisbecker
2009-10-13 13:41 ` Steven Rostedt
0 siblings, 1 reply; 10+ messages in thread
From: Frederic Weisbecker @ 2009-10-13 13:35 UTC (permalink / raw)
To: rostedt; +Cc: Ingo Molnar, LKML, Li Zefan
2009/10/13 Steven Rostedt <rostedt@goodmis.org>:
> On Tue, 2009-10-13 at 09:38 +0200, Frederic Weisbecker wrote:
>> Do this rename because set_ftrace is too much generic and not enough
>> self-explainable as a name.
>>
>> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
>> Cc: Steven Rostedt <rostedt@goodmis.org>
>> Cc: Li Zefan <lizf@cn.fujitsu.com>
>> ---
>> kernel/trace/trace.c | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
>> index 4506826..866daf8 100644
>> --- a/kernel/trace/trace.c
>> +++ b/kernel/trace/trace.c
>> @@ -129,7 +129,7 @@ static int tracing_set_tracer(const char *buf);
>> static char bootup_tracer_buf[MAX_TRACER_SIZE] __initdata;
>> static char *default_bootup_tracer;
>>
>> -static int __init set_ftrace(char *str)
>> +static int __init set_bootup_ftrace(char *str)
>> {
>> strncpy(bootup_tracer_buf, str, MAX_TRACER_SIZE);
>> default_bootup_tracer = bootup_tracer_buf;
>> @@ -137,7 +137,7 @@ static int __init set_ftrace(char *str)
>> ring_buffer_expanded = 1;
>> return 1;
>> }
>> -__setup("ftrace=", set_ftrace);
>> +__setup("ftrace=", set_bootup_ftrace);
>
> Actually, it probably should be called, set_cmdline_ftrace. Since it
> came from the command line, and that is what is matching.
>
> -- Steve
No problem, I can change that in another request that also addresses
Li's suggestion.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] tracing: Rename set_ftrace to set_bootup_ftrace
2009-10-13 13:35 ` Frederic Weisbecker
@ 2009-10-13 13:41 ` Steven Rostedt
0 siblings, 0 replies; 10+ messages in thread
From: Steven Rostedt @ 2009-10-13 13:41 UTC (permalink / raw)
To: Frederic Weisbecker; +Cc: Ingo Molnar, LKML, Li Zefan
On Tue, 2009-10-13 at 15:35 +0200, Frederic Weisbecker wrote:
> 2009/10/13 Steven Rostedt <rostedt@goodmis.org>:
> >> -__setup("ftrace=", set_ftrace);
> >> +__setup("ftrace=", set_bootup_ftrace);
> >
> > Actually, it probably should be called, set_cmdline_ftrace. Since it
> > came from the command line, and that is what is matching.
> >
> > -- Steve
>
> No problem, I can change that in another request that also addresses
> Li's suggestion.
Yeah, I would label this as an extreme NON-critical change ;-)
-- Steve
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-10-13 13:43 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-13 7:38 [GIT PULL] tracing/core updates Frederic Weisbecker
2009-10-13 7:38 ` [PATCH 1/3] ftrace: add kernel command line graph function filtering Frederic Weisbecker
2009-10-13 8:06 ` Li Zefan
2009-10-13 8:58 ` Frédéric Weisbecker
2009-10-13 7:38 ` [PATCH 2/3] tracing: Rename set_ftrace to set_bootup_ftrace Frederic Weisbecker
2009-10-13 13:22 ` Steven Rostedt
2009-10-13 13:35 ` Frederic Weisbecker
2009-10-13 13:41 ` Steven Rostedt
2009-10-13 7:39 ` [PATCH 3/3] tracing: Remove unused ftrace_trace_addr helper Frederic Weisbecker
2009-10-13 10:04 ` [GIT PULL] tracing/core updates Ingo Molnar
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.