Linus,

During the merge window I added a new file that is used to filter trace
events on pids. It filters all events where only tasks with their pid in that
file exists. It also handles the sched_switch and sched_wakeup trace events
where the current task does not have its pid in the file, but the task
either being switched to or awaken does.

Unfortunately, I forgot about sched_wakeup_new and sched_waking. Both of
these tracepoints use the same class as the sched_wakeup tracepoint, and
they too should be included in what gets filtered by the set_event_pid file.


Please pull the latest trace-v4.4-rc3 tree, which can be found at:


  git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
trace-v4.4-rc3

Tag SHA1: a2ad0a8da5f76e9209f709a7f39b80647ee69689
Head SHA1: 0f72e37e42a8ce427caa1b96f7f51e450f2ecb82


Steven Rostedt (Red Hat) (1):
      tracing: Add sched_wakeup_new and sched_waking tracepoints for pid filter

----
 kernel/trace/trace_events.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
---------------------------
commit 0f72e37e42a8ce427caa1b96f7f51e450f2ecb82
Author: Steven Rostedt (Red Hat) <[email protected]>
Date:   Tue Dec 1 16:08:05 2015 -0500

    tracing: Add sched_wakeup_new and sched_waking tracepoints for pid filter
    
    The set_event_pid filter relies on attaching to the sched_switch and
    sched_wakeup tracepoints to see if it should filter the tracing on schedule
    tracepoints. By adding the callbacks to sched_wakeup, pids in the
    set_event_pid file will trace the wakeups of those tasks with those pids.
    
    But sched_wakeup_new and sched_waking were missed. These two should also be
    traced. Luckily, these tracepoints share the same class as sched_wakeup
    which means they can use the same pre and post callbacks as sched_wakeup
    does.
    
    Signed-off-by: Steven Rostedt <[email protected]>

diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 6bbc5f652355..4f6ef6912e00 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -582,6 +582,12 @@ static void __ftrace_clear_event_pids(struct trace_array 
*tr)
        unregister_trace_sched_wakeup(event_filter_pid_sched_wakeup_probe_pre, 
tr);
        unregister_trace_sched_wakeup(event_filter_pid_sched_wakeup_probe_post, 
tr);
 
+       
unregister_trace_sched_wakeup_new(event_filter_pid_sched_wakeup_probe_pre, tr);
+       
unregister_trace_sched_wakeup_new(event_filter_pid_sched_wakeup_probe_post, tr);
+
+       unregister_trace_sched_waking(event_filter_pid_sched_wakeup_probe_pre, 
tr);
+       unregister_trace_sched_waking(event_filter_pid_sched_wakeup_probe_post, 
tr);
+
        list_for_each_entry(file, &tr->events, list) {
                clear_bit(EVENT_FILE_FL_PID_FILTER_BIT, &file->flags);
        }
@@ -1729,6 +1735,16 @@ ftrace_event_pid_write(struct file *filp, const char 
__user *ubuf,
                                                 tr, INT_MAX);
                
register_trace_prio_sched_wakeup(event_filter_pid_sched_wakeup_probe_post,
                                                 tr, 0);
+
+               
register_trace_prio_sched_wakeup_new(event_filter_pid_sched_wakeup_probe_pre,
+                                                    tr, INT_MAX);
+               
register_trace_prio_sched_wakeup_new(event_filter_pid_sched_wakeup_probe_post,
+                                                    tr, 0);
+
+               
register_trace_prio_sched_waking(event_filter_pid_sched_wakeup_probe_pre,
+                                                tr, INT_MAX);
+               
register_trace_prio_sched_waking(event_filter_pid_sched_wakeup_probe_post,
+                                                tr, 0);
        }
 
        /*
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to