diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2011-11-22 05:25:43 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-12-06 02:34:01 -0500 |
commit | b79387ef185af2323594920923cecba5753c3817 (patch) | |
tree | 2c6d685794c30859cf3dde7316d02475cf9ad7cb /kernel/events | |
parent | 1d9b482e78d3b16f97f85a82849f82db7eed3102 (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.c | 8 |
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; |