Re: [PATCH 2/2] perf vendor events arm64 AmpereOneX: Fix frontend_bound calculation

James Clark
2025-03-18T10:47:05Z

On 13/03/2025 8:15 pm, Ilkka Koskinen wrote:
> frontend_bound metrics was miscalculated due to different scaling in
> a couple of metrics it depends on. Change the scaling to match with
> AmpereOne.
>
> Fixes: 16438b652b46 ("perf vendor events arm64 AmpereOneX: Add core PMU events and metrics")
> Signed-off-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
> ---
> .../arch/arm64/ampere/ampereonex/metrics.json | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/metrics.json b/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/metrics.json
> index c5d1d22bd034..5228f94a793f 100644
> --- a/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/metrics.json
> +++ b/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/metrics.json
> @@ -229,19 +229,19 @@
> },
> {
> "MetricName": "slots_lost_misspeculation_fraction",
> - "MetricExpr": "(OP_SPEC - OP_RETIRED) / (CPU_CYCLES * #slots)",
> + "MetricExpr": "100 * (OP_SPEC - OP_RETIRED) / (CPU_CYCLES * #slots)",
> "BriefDescription": "Fraction of slots lost due to misspeculation",
> "DefaultMetricgroupName": "TopdownL1",
> "MetricGroup": "Default;TopdownL1",
> - "ScaleUnit": "100percent of slots"
> + "ScaleUnit": "1percent of slots"
> },
> {
> "MetricName": "retired_fraction",
> - "MetricExpr": "OP_RETIRED / (CPU_CYCLES * #slots)",
> + "MetricExpr": "100 * OP_RETIRED / (CPU_CYCLES * #slots)",
> "BriefDescription": "Fraction of slots retiring, useful work",
> "DefaultMetricgroupName": "TopdownL1",
> "MetricGroup": "Default;TopdownL1",
> - "ScaleUnit": "100percent of slots"
> + "ScaleUnit": "1percent of slots"

I never considered that ScaleUnit could be an issue when the metric was
included in other metrics with different scales. Seems like an easy trap.

Reviewed-by: James Clark <james.clark@linaro.org>