mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 07:33:19 +02:00
perf stat: Fix/add parameter names for print_metric
The print_metric parameter names were rearranged, fix and add comments in the stat-shadow callers to ensure they are correct. Signed-off-by: Ian Rogers <irogers@google.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Yicong Yang <yangyicong@hisilicon.com> Cc: Weilin Wang <weilin.wang@intel.com> Cc: Will Deacon <will@kernel.org> Cc: James Clark <james.clark@linaro.org> Cc: Mike Leach <mike.leach@linaro.org> Cc: Leo Yan <leo.yan@linux.dev> Cc: Sumanth Korikkar <sumanthk@linux.ibm.com> Cc: Thomas Richter <tmricht@linux.ibm.com> Cc: Tim Chen <tim.c.chen@linux.intel.com> Cc: John Garry <john.g.garry@oracle.com> Link: https://lore.kernel.org/r/20241017175356.783793-3-irogers@google.com Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
58fc358a3e
commit
9809b2b1f2
|
|
@ -196,17 +196,21 @@ static void print_ratio(struct perf_stat_config *config,
|
|||
const struct evsel *evsel, int aggr_idx,
|
||||
double numerator, struct perf_stat_output_ctx *out,
|
||||
enum stat_type denominator_type,
|
||||
const double color_ratios[3], const char *unit)
|
||||
const double color_ratios[3], const char *_unit)
|
||||
{
|
||||
double denominator = find_stat(evsel, aggr_idx, denominator_type);
|
||||
double ratio = 0;
|
||||
const char *color = NULL;
|
||||
const char *fmt = NULL;
|
||||
const char *unit = NULL;
|
||||
|
||||
if (numerator && denominator) {
|
||||
double ratio = numerator / denominator * 100.0;
|
||||
const char *color = get_ratio_color(color_ratios, ratio);
|
||||
|
||||
out->print_metric(config, out->ctx, color, "%7.2f%%", unit, ratio);
|
||||
} else
|
||||
out->print_metric(config, out->ctx, NULL, NULL, unit, 0);
|
||||
ratio = numerator / denominator * 100.0;
|
||||
color = get_ratio_color(color_ratios, ratio);
|
||||
fmt = "%7.2f%%";
|
||||
unit = _unit;
|
||||
}
|
||||
out->print_metric(config, out->ctx, color, fmt, unit, ratio);
|
||||
}
|
||||
|
||||
static void print_stalled_cycles_front(struct perf_stat_config *config,
|
||||
|
|
@ -320,14 +324,15 @@ static void print_instructions(struct perf_stat_config *config,
|
|||
find_stat(evsel, aggr_idx, STAT_STALLED_CYCLES_BACK));
|
||||
|
||||
if (cycles) {
|
||||
print_metric(config, ctxp, NULL, "%7.2f ", "insn per cycle",
|
||||
instructions / cycles);
|
||||
} else
|
||||
print_metric(config, ctxp, NULL, NULL, "insn per cycle", 0);
|
||||
print_metric(config, ctxp, /*color=*/NULL, "%7.2f ", "insn per cycle",
|
||||
instructions / cycles);
|
||||
} else {
|
||||
print_metric(config, ctxp, /*color=*/NULL, /*fmt=*/NULL, "insn per cycle", 0);
|
||||
}
|
||||
|
||||
if (max_stalled && instructions) {
|
||||
out->new_line(config, ctxp);
|
||||
print_metric(config, ctxp, NULL, "%7.2f ", "stalled cycles per insn",
|
||||
print_metric(config, ctxp, /*color=*/NULL, "%7.2f ", "stalled cycles per insn",
|
||||
max_stalled / instructions);
|
||||
}
|
||||
}
|
||||
|
|
@ -342,9 +347,10 @@ static void print_cycles(struct perf_stat_config *config,
|
|||
if (cycles && nsecs) {
|
||||
double ratio = cycles / nsecs;
|
||||
|
||||
out->print_metric(config, out->ctx, NULL, "%8.3f", "GHz", ratio);
|
||||
} else
|
||||
out->print_metric(config, out->ctx, NULL, NULL, "GHz", 0);
|
||||
out->print_metric(config, out->ctx, /*color=*/NULL, "%8.3f", "GHz", ratio);
|
||||
} else {
|
||||
out->print_metric(config, out->ctx, /*color=*/NULL, /*fmt=*/NULL, "GHz", 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void print_nsecs(struct perf_stat_config *config,
|
||||
|
|
@ -357,10 +363,11 @@ static void print_nsecs(struct perf_stat_config *config,
|
|||
double wall_time = avg_stats(&walltime_nsecs_stats);
|
||||
|
||||
if (wall_time) {
|
||||
print_metric(config, ctxp, NULL, "%8.3f", "CPUs utilized",
|
||||
print_metric(config, ctxp, /*color=*/NULL, "%8.3f", "CPUs utilized",
|
||||
nsecs / (wall_time * evsel->scale));
|
||||
} else
|
||||
print_metric(config, ctxp, NULL, NULL, "CPUs utilized", 0);
|
||||
} else {
|
||||
print_metric(config, ctxp, /*color=*/NULL, /*fmt=*/NULL, "CPUs utilized", 0);
|
||||
}
|
||||
}
|
||||
|
||||
static int prepare_metric(const struct metric_expr *mexp,
|
||||
|
|
@ -542,12 +549,12 @@ static void generic_metric(struct perf_stat_config *config,
|
|||
ratio);
|
||||
}
|
||||
} else {
|
||||
print_metric(config, ctxp, color, /*unit=*/NULL,
|
||||
print_metric(config, ctxp, color, /*fmt=*/NULL,
|
||||
out->force_header ?
|
||||
(metric_name ?: evsel->name) : "", 0);
|
||||
}
|
||||
} else {
|
||||
print_metric(config, ctxp, color, /*unit=*/NULL,
|
||||
print_metric(config, ctxp, color, /*fmt=*/NULL,
|
||||
out->force_header ?
|
||||
(metric_name ?: evsel->name) : "", 0);
|
||||
}
|
||||
|
|
@ -718,9 +725,11 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
|
|||
|
||||
if (unit != ' ')
|
||||
snprintf(unit_buf, sizeof(unit_buf), "%c/sec", unit);
|
||||
print_metric(config, ctxp, NULL, "%8.3f", unit_buf, ratio);
|
||||
} else
|
||||
print_metric(config, ctxp, /*color=*/NULL, "%8.3f",
|
||||
unit_buf, ratio);
|
||||
} else {
|
||||
num = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -728,7 +737,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
|
|||
&num, NULL, out, metric_events);
|
||||
|
||||
if (num == 0)
|
||||
print_metric(config, ctxp, NULL, NULL, NULL, 0);
|
||||
print_metric(config, ctxp, /*color=*/NULL, /*fmt=*/NULL, /*unit=*/NULL, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -155,8 +155,10 @@ extern struct stats walltime_nsecs_stats;
|
|||
extern struct rusage_stats ru_stats;
|
||||
|
||||
typedef void (*print_metric_t)(struct perf_stat_config *config,
|
||||
void *ctx, const char *color, const char *unit,
|
||||
const char *fmt, double val);
|
||||
void *ctx, const char *color,
|
||||
const char *fmt,
|
||||
const char *unit,
|
||||
double val);
|
||||
typedef void (*new_line_t)(struct perf_stat_config *config, void *ctx);
|
||||
|
||||
/* Used to print the display name of the Default metricgroup for now. */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user