[lkml]   [2013]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH v0 06/71] perf: Allow set-output for task contexts of different types
From: Adrian Hunter <>

Set-output must be limited to events that cannot be active on different
cpus at the same time. Thus either the event cpu must be the same, or
the event task must be the same. Current logic does not check the task
directly but checks whether the perf_event_context is the same, however
there are separate contexts for hardware and software events so in that
case the perf_event_context is different even though the task is the same.
This patch changes the logic to check the task directly.

Signed-off-by: Adrian Hunter <>
Signed-off-by: Alexander Shishkin <>
kernel/events/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index ca8a130..93d712d 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -6982,7 +6982,8 @@ perf_event_set_output(struct perf_event *event, struct perf_event *output_event)
* If its not a per-cpu rb, it must be the same task.
- if (output_event->cpu == -1 && output_event->ctx != event->ctx)
+ if (output_event->cpu == -1 &&
+ output_event->ctx->task != event->ctx->task)
goto out;
* XXX^2: that's all bollocks

 \ /
  Last update: 2013-12-11 14:01    [W:0.602 / U:1.484 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site