lkml.org 
[lkml]   [2011]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH][GIT PULL][v2.6.39] tracing: Fix set_ftrace_filter probe function display
From
Date

Ingo,

This patch was buried away in my INBOX, and I recently discovered it. I
tested out the scenario that Jiri posted and sure enough it is broken.
This patch does indeed fix the issue.

As the merge window is still open and this is a simple patch that fixes
a long standing bug, could you pull it for 2.6.39.

Thanks!

-- Steve

Please pull the latest tip/perf/urgent tree, which can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git
tip/perf/urgent


Jiri Olsa (1):
tracing: Fix set_ftrace_filter probe function display

----
kernel/trace/ftrace.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
---------------------------
commit 1106b6997df7d0c0487e21fd9c9dd2ce3d4a52db
Author: Jiri Olsa <jolsa@redhat.com>
Date: Wed Feb 16 17:35:34 2011 +0100

tracing: Fix set_ftrace_filter probe function display

If one or more function probes (like traceon) are enabled,
and there's no other function filter, the first probe
func is skipped (which one depends on the position in the hash).

$ echo sys_open:traceon sys_close:traceon > ./set_ftrace_filter
$ cat set_ftrace_filter
#### all functions enabled ####
sys_close:traceon:unlimited
$

The reason was, that in the case of no other function filter,
the func_pos was not properly updated before calling t_hash_start.

Signed-off-by: Jiri Olsa <jolsa@redhat.com>
LKML-Reference: <1297874134-7008-1-git-send-email-jolsa@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 888b611..c075f4e 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1467,7 +1467,7 @@ t_next(struct seq_file *m, void *v, loff_t *pos)
return t_hash_next(m, pos);

(*pos)++;
- iter->pos = *pos;
+ iter->pos = iter->func_pos = *pos;

if (iter->flags & FTRACE_ITER_PRINTALL)
return t_hash_start(m, pos);
@@ -1502,7 +1502,6 @@ t_next(struct seq_file *m, void *v, loff_t *pos)
if (!rec)
return t_hash_start(m, pos);

- iter->func_pos = *pos;
iter->func = rec;

return iter;



\
 
 \ /
  Last update: 2011-03-23 02:35    [W:0.031 / U:0.108 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site