Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1628625

[for-next][PATCH 02/33] ftrace: Fix indexing of t_hash_start() from t_next()

From Steven Rostedt <rostedt@goodmis.org>
Newsgroups linux.kernel
Subject [for-next][PATCH 02/33] ftrace: Fix indexing of t_hash_start() from t_next()
Date 2017-04-21 23:50 +0200
Message-ID <tyOBc-2u9-29@gated-at.bofh.it> (permalink)
References <tyOrv-2qL-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

t_hash_start() does not increment *pos, where as t_next() must. But when
t_next() does increment *pos, it must still pass in the original *pos to
t_hash_start() otherwise it will skip the first instance:

 # cd /sys/kernel/debug/tracing
 # echo schedule:traceoff > set_ftrace_filter
 # echo do_IRQ:traceoff > set_ftrace_filter
 # echo call_rcu > set_ftrace_filter
 # cat set_ftrace_filter
call_rcu
schedule:traceoff:unlimited
do_IRQ:traceoff:unlimited

The above called t_hash_start() from t_start() as there was only one
function (call_rcu), but if we add another function:

 # echo xfrm_policy_destroy_rcu >> set_ftrace_filter
 # cat set_ftrace_filter
call_rcu
xfrm_policy_destroy_rcu
do_IRQ:traceoff:unlimited

The "schedule:traceoff" disappears.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 kernel/trace/ftrace.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 4b6459a57fbc..b21a3e61ac74 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -3205,6 +3205,7 @@ static void *
 t_next(struct seq_file *m, void *v, loff_t *pos)
 {
 	struct ftrace_iterator *iter = m->private;
+	loff_t l = *pos; /* t_hash_start() must use original pos */
 	void *ret;
 
 	if (unlikely(ftrace_disabled))
@@ -3216,13 +3217,13 @@ t_next(struct seq_file *m, void *v, loff_t *pos)
 	if (iter->flags & FTRACE_ITER_PRINTALL) {
 		/* next must increment pos, and t_hash_start does not */
 		(*pos)++;
-		return t_hash_start(m, pos);
+		return t_hash_start(m, &l);
 	}
 
 	ret = t_func_next(m, pos);
 
 	if (!ret)
-		return t_hash_start(m, pos);
+		return t_hash_start(m, &l);
 
 	return ret;
 }
-- 
2.10.2

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[for-next][PATCH 00/33] tracing: More updates for 4.12 Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 15/33] tracing: Have the snapshot trigger use the mapping helper functions Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 29/33] tracing/ftrace: Add a better way to pass data via the probe functions Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 19/33] ftrace: Remove printing of data in showing of a function probe Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 08/33] selftests: ftrace: Add a test to test function triggers to start and  stop tracing Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 14/33] ftrace: Added ftrace_func_mapper for function probe triggers Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 20/33] ftrace: Remove data field from ftrace_func_probe structure Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 28/33] ftrace: Dynamically create the probe ftrace_ops for the trace_array Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 25/33] ftrace: If the hash for a probe fails to update then free what was  initialized Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 16/33] ftrace: Convert the rest of the function trigger over to the mapping  functions Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:40 +0200
  [for-next][PATCH 01/33] ftrace: Fix removing of second function probe Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:50 +0200
  [for-next][PATCH 09/33] selftests: ftrace: Add test to test reading of set_ftrace_file Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:50 +0200
  [for-next][PATCH 13/33] ftrace: Pass probe ops to probe function Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:50 +0200
  [for-next][PATCH 07/33] selftests: ftrace: Add a selftest to test event enable/disable func  trigger Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:50 +0200
  [for-next][PATCH 05/33] selftests: ftrace: Add -l/--logdir option Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:50 +0200
  [for-next][PATCH 02/33] ftrace: Fix indexing of t_hash_start() from t_next() Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:50 +0200
  [for-next][PATCH 11/33] ftrace: Move the function commands into the tracing directory Steven Rostedt <rostedt@goodmis.org> - 2017-04-21 23:50 +0200

csiph-web