diff options
author | Steven Rostedt (Red Hat) <rostedt@goodmis.org> | 2015-11-02 13:08:26 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2015-11-02 13:08:26 -0500 |
commit | 799fd44cf5bbcc51c46b674035bfc49cbf6907ba (patch) | |
tree | bdca4e60b2c7a6daeeef55bd1e473b1797d8a802 /kernel/trace/trace_events.c | |
parent | fb662288284e8f2ec26f13d50a6b0d5781771648 (diff) | |
download | linux-799fd44cf5bbcc51c46b674035bfc49cbf6907ba.tar.gz linux-799fd44cf5bbcc51c46b674035bfc49cbf6907ba.tar.bz2 linux-799fd44cf5bbcc51c46b674035bfc49cbf6907ba.zip |
tracing: Call on_each_cpu() when adding or removing single pids from set_event_pid
For the case where pids are already in set_event_pid, and one is added or
removed then each CPU should be checked to make sure that the new or old pid
is on or not on a CPU.
For example:
# echo 123 >> set_event_pid
or
# echo '!123' >> set_event_pid
Link: http://lkml.kernel.org/r/20151030061643.GA19480@cac
Suggested-by: Jiaxing Wang <hello.wjx@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace_events.c')
-rw-r--r-- | kernel/trace/trace_events.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index fb0261e90acc..292bccf3e011 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -1729,14 +1729,15 @@ 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); - - /* - * Ignoring of pids is done at task switch. But we have to - * check for those tasks that are currently running. - */ - on_each_cpu(ignore_task_cpu, tr, 1); } + /* + * Ignoring of pids is done at task switch. But we have to + * check for those tasks that are currently running. + * Always do this in case a pid was appended or removed. + */ + on_each_cpu(ignore_task_cpu, tr, 1); + mutex_unlock(&event_mutex); ret = read; |