提交 4e1a0963 编写于 作者: A Andi Kleen 提交者: Arnaldo Carvalho de Melo

perf stat: Don't use ctx for saved values lookup

We don't need to use ctx to look up events for saved values.  The
context is already part of the evsel pointer, which is the primary key.
Signed-off-by: NAndi Kleen <ak@linux.intel.com>
Acked-by: NJiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/20170831194036.30146-9-andi@firstfloor.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
上级 71b0acce
...@@ -56,7 +56,6 @@ struct saved_value { ...@@ -56,7 +56,6 @@ struct saved_value {
struct rb_node rb_node; struct rb_node rb_node;
struct perf_evsel *evsel; struct perf_evsel *evsel;
int cpu; int cpu;
int ctx;
struct stats stats; struct stats stats;
}; };
...@@ -67,8 +66,6 @@ static int saved_value_cmp(struct rb_node *rb_node, const void *entry) ...@@ -67,8 +66,6 @@ static int saved_value_cmp(struct rb_node *rb_node, const void *entry)
rb_node); rb_node);
const struct saved_value *b = entry; const struct saved_value *b = entry;
if (a->ctx != b->ctx)
return a->ctx - b->ctx;
if (a->cpu != b->cpu) if (a->cpu != b->cpu)
return a->cpu - b->cpu; return a->cpu - b->cpu;
if (a->evsel == b->evsel) if (a->evsel == b->evsel)
...@@ -90,13 +87,12 @@ static struct rb_node *saved_value_new(struct rblist *rblist __maybe_unused, ...@@ -90,13 +87,12 @@ static struct rb_node *saved_value_new(struct rblist *rblist __maybe_unused,
} }
static struct saved_value *saved_value_lookup(struct perf_evsel *evsel, static struct saved_value *saved_value_lookup(struct perf_evsel *evsel,
int cpu, int ctx, int cpu,
bool create) bool create)
{ {
struct rb_node *nd; struct rb_node *nd;
struct saved_value dm = { struct saved_value dm = {
.cpu = cpu, .cpu = cpu,
.ctx = ctx,
.evsel = evsel, .evsel = evsel,
}; };
nd = rblist__find(&runtime_saved_values, &dm); nd = rblist__find(&runtime_saved_values, &dm);
...@@ -232,8 +228,7 @@ void perf_stat__update_shadow_stats(struct perf_evsel *counter, u64 *count, ...@@ -232,8 +228,7 @@ void perf_stat__update_shadow_stats(struct perf_evsel *counter, u64 *count,
update_stats(&runtime_aperf_stats[ctx][cpu], count[0]); update_stats(&runtime_aperf_stats[ctx][cpu], count[0]);
if (counter->collect_stat) { if (counter->collect_stat) {
struct saved_value *v = saved_value_lookup(counter, cpu, ctx, struct saved_value *v = saved_value_lookup(counter, cpu, true);
true);
update_stats(&v->stats, count[0]); update_stats(&v->stats, count[0]);
} }
} }
...@@ -634,7 +629,6 @@ static void generic_metric(const char *metric_expr, ...@@ -634,7 +629,6 @@ static void generic_metric(const char *metric_expr,
const char *metric_name, const char *metric_name,
double avg, double avg,
int cpu, int cpu,
int ctx,
struct perf_stat_output_ctx *out) struct perf_stat_output_ctx *out)
{ {
print_metric_t print_metric = out->print_metric; print_metric_t print_metric = out->print_metric;
...@@ -648,7 +642,7 @@ static void generic_metric(const char *metric_expr, ...@@ -648,7 +642,7 @@ static void generic_metric(const char *metric_expr,
for (i = 0; metric_events[i]; i++) { for (i = 0; metric_events[i]; i++) {
struct saved_value *v; struct saved_value *v;
v = saved_value_lookup(metric_events[i], cpu, ctx, false); v = saved_value_lookup(metric_events[i], cpu, false);
if (!v) if (!v)
break; break;
expr__add_id(&pctx, metric_events[i]->name, avg_stats(&v->stats)); expr__add_id(&pctx, metric_events[i]->name, avg_stats(&v->stats));
...@@ -866,7 +860,7 @@ void perf_stat__print_shadow_stats(struct perf_evsel *evsel, ...@@ -866,7 +860,7 @@ void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
print_metric(ctxp, NULL, NULL, name, 0); print_metric(ctxp, NULL, NULL, name, 0);
} else if (evsel->metric_expr) { } else if (evsel->metric_expr) {
generic_metric(evsel->metric_expr, evsel->metric_events, evsel->name, generic_metric(evsel->metric_expr, evsel->metric_events, evsel->name,
evsel->metric_name, avg, cpu, ctx, out); evsel->metric_name, avg, cpu, out);
} else if (runtime_nsecs_stats[cpu].n != 0) { } else if (runtime_nsecs_stats[cpu].n != 0) {
char unit = 'M'; char unit = 'M';
char unit_buf[10]; char unit_buf[10];
...@@ -895,7 +889,7 @@ void perf_stat__print_shadow_stats(struct perf_evsel *evsel, ...@@ -895,7 +889,7 @@ void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
out->new_line(ctxp); out->new_line(ctxp);
generic_metric(mexp->metric_expr, mexp->metric_events, generic_metric(mexp->metric_expr, mexp->metric_events,
evsel->name, mexp->metric_name, evsel->name, mexp->metric_name,
avg, cpu, ctx, out); avg, cpu, out);
} }
} }
if (num == 0) if (num == 0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册