Skip to contentSkip to conversation

trace: fix set_ftrace_filter probe function display

PATCH In review Jiri Olsa 1 participant 2 messages Feb 16, 2011 – Mar 23, 2011

Subsystems (2)
lore
Share & tools
lore

Jiri Olsa

author
#0 lore raw

PATCH 1/1 trace: fix set_ftrace_filter probe function display

hi,

there's and issue in the display of the probe functions, explained in the attached patch.

hopefully I'm not breaking anything else ;)

thanks,
jirka

---
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.

wbr,
jirka

---
 kernel/trace/ftrace.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
kernel/trace/ftrace.c +1 -2
index 888b611..c075f4e 100644
@@ -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;
Signature · 1 line
1.7.1
#1 lore raw

[tip:perf/urgent] tracing: Fix set_ftrace_filter probe function display

Commit-ID:  1106b6997df7d0c0487e21fd9c9dd2ce3d4a52db
Gitweb:     http://git.kernel.org/tip/1106b6997df7d0c0487e21fd9c9dd2ce3d4a52db
Author:     Jiri Olsa <[email protected]>
AuthorDate: Wed, 16 Feb 2011 17:35:34 +0100
Committer:  Steven Rostedt <[email protected]>
CommitDate: Tue, 22 Mar 2011 12:52:03 -0400

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.

LKML-Reference: <[email protected]>

---
 kernel/trace/ftrace.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
kernel/trace/ftrace.c +1 -2
index 888b611..c075f4e 100644
@@ -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;