From: Steven Rostedt (Red Hat) Date: Mon, 2 Nov 2015 18:08:26 +0000 (-0500) Subject: tracing: Call on_each_cpu() when adding or removing single pids from set_event_pid X-Git-Tag: v4.4-rc1~85^2~26 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;ds=sidebyside;h=799fd44cf5bbcc51c46b674035bfc49cbf6907ba;p=linux.git 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 Signed-off-by: Steven Rostedt --- 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;