aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/perf_counter.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/perf_counter.c')
-rw-r--r--kernel/perf_counter.c23
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
125static void get_ctx(struct perf_counter_context *ctx) 125static 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
130static void free_ctx(struct rcu_head *head) 130static 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 */
3473void 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
3492void perf_tpcounter_event(int event_id) 3471void perf_tpcounter_event(int event_id)
3493{ 3472{