aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@redhat.com>2014-09-12 07:18:28 -0400
committerIngo Molnar <mingo@kernel.org>2014-09-24 08:48:13 -0400
commit802c8a61d4c9c794db863dcabb0006ab001a651b (patch)
tree9cc29310d921d14eff91fbf86c652f28a5a37372 /kernel
parent1929def9e609d1a8cdb1626d85eda3da66921a7d (diff)
Revert "perf: Do not allow optimized switch for non-cloned events"
This reverts commit 1f9a7268c67f0290837aada443d28fd953ddca90. With the fix of the initial state for the cloned event we now correctly handle the error described in: 1f9a7268c67f perf: Do not allow optimized switch for non-cloned events so we can revert it. I made an automated test for this, but its not suitable for automated perf tests framework. It needs to be customized for each machine (the more cpu the higher numbers for GROUPS/WORKERS/BYTES) and it could take longer time to hit the issue. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Stephane Eranian <eranian@google.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: http://lkml.kernel.org/r/20140910143535.GD2409@krava.brq.redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/events/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 132524c8b340..b164cb07b30d 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -2375,7 +2375,7 @@ static void perf_event_context_sched_out(struct task_struct *task, int ctxn,
2375 next_parent = rcu_dereference(next_ctx->parent_ctx); 2375 next_parent = rcu_dereference(next_ctx->parent_ctx);
2376 2376
2377 /* If neither context have a parent context; they cannot be clones. */ 2377 /* If neither context have a parent context; they cannot be clones. */
2378 if (!parent || !next_parent) 2378 if (!parent && !next_parent)
2379 goto unlock; 2379 goto unlock;
2380 2380
2381 if (next_parent == ctx || next_ctx == parent || next_parent == parent) { 2381 if (next_parent == ctx || next_ctx == parent || next_parent == parent) {