Re: [PATCH] events: Protect access via task_subsys_state_check()

From: Peter Zijlstra
Date: Mon Apr 22 2013 - 04:25:34 EST


On Fri, 2013-04-19 at 12:01 -0700, Paul E. McKenney wrote:
> The following RCU splat indicates lack of RCU protection:

...

> This commit therefore adds the required RCU read-side critical section to
> perf_event_comm().
>
> Reported-by: Adam Jackson <ajax@xxxxxxxxxx>
> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> Tested-by: Gustavo Luiz Duarte <gusld@xxxxxxxxxx>

Acked-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>

> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index b0cd865..8db9551 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -4593,6 +4593,7 @@ void perf_event_comm(struct task_struct *task)
> struct perf_event_context *ctx;
> int ctxn;
>
> + rcu_read_lock();
> for_each_task_context_nr(ctxn) {
> ctx = task->perf_event_ctxp[ctxn];
> if (!ctx)
> @@ -4600,6 +4601,7 @@ void perf_event_comm(struct task_struct *task)
>
> perf_event_enable_on_exec(ctx);
> }
> + rcu_read_unlock();
>
> if (!atomic_read(&nr_comm_events))
> return;
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/