diff options
Diffstat (limited to 'kernel/perf_counter.c')
-rw-r--r-- | kernel/perf_counter.c | 23 |
1 files changed, 1 insertions, 22 deletions
diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c index 7e9108efd305..8d4f0dd41c22 100644 --- a/kernel/perf_counter.c +++ b/kernel/perf_counter.c | |||
@@ -124,7 +124,7 @@ void perf_enable(void) | |||
124 | 124 | ||
125 | static void get_ctx(struct perf_counter_context *ctx) | 125 | static void get_ctx(struct perf_counter_context *ctx) |
126 | { | 126 | { |
127 | atomic_inc(&ctx->refcount); | 127 | WARN_ON(!atomic_inc_not_zero(&ctx->refcount)); |
128 | } | 128 | } |
129 | 129 | ||
130 | static void free_ctx(struct rcu_head *head) | 130 | static void free_ctx(struct rcu_head *head) |
@@ -3467,27 +3467,6 @@ static const struct pmu perf_ops_task_clock = { | |||
3467 | .read = task_clock_perf_counter_read, | 3467 | .read = task_clock_perf_counter_read, |
3468 | }; | 3468 | }; |
3469 | 3469 | ||
3470 | /* | ||
3471 | * Software counter: cpu migrations | ||
3472 | */ | ||
3473 | void perf_counter_task_migration(struct task_struct *task, int cpu) | ||
3474 | { | ||
3475 | struct perf_cpu_context *cpuctx = &per_cpu(perf_cpu_context, cpu); | ||
3476 | struct perf_counter_context *ctx; | ||
3477 | |||
3478 | perf_swcounter_ctx_event(&cpuctx->ctx, PERF_TYPE_SOFTWARE, | ||
3479 | PERF_COUNT_SW_CPU_MIGRATIONS, | ||
3480 | 1, 1, NULL, 0); | ||
3481 | |||
3482 | ctx = perf_pin_task_context(task); | ||
3483 | if (ctx) { | ||
3484 | perf_swcounter_ctx_event(ctx, PERF_TYPE_SOFTWARE, | ||
3485 | PERF_COUNT_SW_CPU_MIGRATIONS, | ||
3486 | 1, 1, NULL, 0); | ||
3487 | perf_unpin_context(ctx); | ||
3488 | } | ||
3489 | } | ||
3490 | |||
3491 | #ifdef CONFIG_EVENT_PROFILE | 3470 | #ifdef CONFIG_EVENT_PROFILE |
3492 | void perf_tpcounter_event(int event_id) | 3471 | void perf_tpcounter_event(int event_id) |
3493 | { | 3472 | { |