]> Pileus Git - ~andy/linux/blobdiff - kernel/events/core.c
perf: Do not set task_ctx pointer in cpuctx if there are no events in the context
[~andy/linux] / kernel / events / core.c
index e1253faa34ddcf013c6cf577b98ab85ac4dd5634..b0c1186fd97bcdaed7e8cdb537d9a61740bb86f3 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/reboot.h>
 #include <linux/vmstat.h>
 #include <linux/device.h>
+#include <linux/export.h>
 #include <linux/vmalloc.h>
 #include <linux/hardirq.h>
 #include <linux/rculist.h>
@@ -2172,7 +2173,8 @@ static void perf_event_context_sched_in(struct perf_event_context *ctx,
 
        perf_event_sched_in(cpuctx, ctx, task);
 
-       cpuctx->task_ctx = ctx;
+       if (ctx->nr_events)
+               cpuctx->task_ctx = ctx;
 
        perf_pmu_enable(ctx->pmu);
        perf_ctx_unlock(cpuctx, ctx);