Commit 475c5579 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar

perf_counter: Remove perf_counter_context::nr_enabled

now that pctrl() no longer disables other people's counters,
remove the PMU cache code that deals with that.
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: John Kacur <jkacur@redhat.com>
LKML-Reference: <20090523163013.032998331@chello.nl>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 082ff5a2
...@@ -516,7 +516,6 @@ struct perf_counter_context { ...@@ -516,7 +516,6 @@ struct perf_counter_context {
struct list_head event_list; struct list_head event_list;
int nr_counters; int nr_counters;
int nr_active; int nr_active;
int nr_enabled;
int is_active; int is_active;
atomic_t refcount; atomic_t refcount;
struct task_struct *task; struct task_struct *task;
......
...@@ -134,8 +134,6 @@ list_add_counter(struct perf_counter *counter, struct perf_counter_context *ctx) ...@@ -134,8 +134,6 @@ list_add_counter(struct perf_counter *counter, struct perf_counter_context *ctx)
list_add_rcu(&counter->event_entry, &ctx->event_list); list_add_rcu(&counter->event_entry, &ctx->event_list);
ctx->nr_counters++; ctx->nr_counters++;
if (counter->state >= PERF_COUNTER_STATE_INACTIVE)
ctx->nr_enabled++;
} }
/* /*
...@@ -150,8 +148,6 @@ list_del_counter(struct perf_counter *counter, struct perf_counter_context *ctx) ...@@ -150,8 +148,6 @@ list_del_counter(struct perf_counter *counter, struct perf_counter_context *ctx)
if (list_empty(&counter->list_entry)) if (list_empty(&counter->list_entry))
return; return;
ctx->nr_counters--; ctx->nr_counters--;
if (counter->state >= PERF_COUNTER_STATE_INACTIVE)
ctx->nr_enabled--;
list_del_init(&counter->list_entry); list_del_init(&counter->list_entry);
list_del_rcu(&counter->event_entry); list_del_rcu(&counter->event_entry);
...@@ -406,7 +402,6 @@ static void __perf_counter_disable(void *info) ...@@ -406,7 +402,6 @@ static void __perf_counter_disable(void *info)
else else
counter_sched_out(counter, cpuctx, ctx); counter_sched_out(counter, cpuctx, ctx);
counter->state = PERF_COUNTER_STATE_OFF; counter->state = PERF_COUNTER_STATE_OFF;
ctx->nr_enabled--;
} }
spin_unlock_irqrestore(&ctx->lock, flags); spin_unlock_irqrestore(&ctx->lock, flags);
...@@ -448,7 +443,6 @@ static void perf_counter_disable(struct perf_counter *counter) ...@@ -448,7 +443,6 @@ static void perf_counter_disable(struct perf_counter *counter)
if (counter->state == PERF_COUNTER_STATE_INACTIVE) { if (counter->state == PERF_COUNTER_STATE_INACTIVE) {
update_counter_times(counter); update_counter_times(counter);
counter->state = PERF_COUNTER_STATE_OFF; counter->state = PERF_COUNTER_STATE_OFF;
ctx->nr_enabled--;
} }
spin_unlock_irq(&ctx->lock); spin_unlock_irq(&ctx->lock);
...@@ -759,7 +753,6 @@ static void __perf_counter_enable(void *info) ...@@ -759,7 +753,6 @@ static void __perf_counter_enable(void *info)
goto unlock; goto unlock;
counter->state = PERF_COUNTER_STATE_INACTIVE; counter->state = PERF_COUNTER_STATE_INACTIVE;
counter->tstamp_enabled = ctx->time - counter->total_time_enabled; counter->tstamp_enabled = ctx->time - counter->total_time_enabled;
ctx->nr_enabled++;
/* /*
* If the counter is in a group and isn't the group leader, * If the counter is in a group and isn't the group leader,
...@@ -850,7 +843,6 @@ static void perf_counter_enable(struct perf_counter *counter) ...@@ -850,7 +843,6 @@ static void perf_counter_enable(struct perf_counter *counter)
counter->state = PERF_COUNTER_STATE_INACTIVE; counter->state = PERF_COUNTER_STATE_INACTIVE;
counter->tstamp_enabled = counter->tstamp_enabled =
ctx->time - counter->total_time_enabled; ctx->time - counter->total_time_enabled;
ctx->nr_enabled++;
} }
out: out:
spin_unlock_irq(&ctx->lock); spin_unlock_irq(&ctx->lock);
...@@ -910,8 +902,7 @@ static int context_equiv(struct perf_counter_context *ctx1, ...@@ -910,8 +902,7 @@ static int context_equiv(struct perf_counter_context *ctx1,
struct perf_counter_context *ctx2) struct perf_counter_context *ctx2)
{ {
return ctx1->parent_ctx && ctx1->parent_ctx == ctx2->parent_ctx return ctx1->parent_ctx && ctx1->parent_ctx == ctx2->parent_ctx
&& ctx1->parent_gen == ctx2->parent_gen && ctx1->parent_gen == ctx2->parent_gen;
&& ctx1->nr_enabled == ctx2->nr_enabled;
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment