aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/events
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2011-11-22 05:25:43 -0500
committerIngo Molnar <mingo@elte.hu>2011-12-06 02:34:01 -0500
commitb79387ef185af2323594920923cecba5753c3817 (patch)
tree2c6d685794c30859cf3dde7316d02475cf9ad7cb /kernel/events
parent1d9b482e78d3b16f97f85a82849f82db7eed3102 (diff)
perf: Fix enable_on_exec for sibling events
Deng-Cheng Zhu reported that sibling events that were created disabled with enable_on_exec would never get enabled. Iterate all events instead of the group lists. Reported-by: Deng-Cheng Zhu <dczhu@mips.com> Tested-by: Deng-Cheng Zhu <dczhu@mips.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1322048382.14799.41.camel@twins Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/events')
-rw-r--r--kernel/events/core.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c
index eeda5403590c..3c1541d7a53d 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -2497,13 +2497,7 @@ static void perf_event_enable_on_exec(struct perf_event_context *ctx)
2497 raw_spin_lock(&ctx->lock); 2497 raw_spin_lock(&ctx->lock);
2498 task_ctx_sched_out(ctx); 2498 task_ctx_sched_out(ctx);
2499 2499
2500 list_for_each_entry(event, &ctx->pinned_groups, group_entry) { 2500 list_for_each_entry(event, &ctx->event_list, event_entry) {
2501 ret = event_enable_on_exec(event, ctx);
2502 if (ret)
2503 enabled = 1;
2504 }
2505
2506 list_for_each_entry(event, &ctx->flexible_groups, group_entry) {
2507 ret = event_enable_on_exec(event, ctx); 2501 ret = event_enable_on_exec(event, ctx);
2508 if (ret) 2502 if (ret)
2509 enabled = 1; 2503 enabled = 1;