Re: [PATCH v6 3/6] perf vendor events arm64: Update scale units and descriptions of common topdown metrics

From: Arnaldo Carvalho de Melo
Date: Wed Aug 16 2023 - 12:16:14 EST


Em Wed, Aug 16, 2023 at 12:47:45PM +0100, James Clark escreveu:
> Metrics will be published here [1] going forwards, but they have
> slightly different scale units. To allow autogenerated metrics to be
> added more easily, update the scale units to match.
>
> The more detailed descriptions have also been taken and added to the
> common file.
>
> [1]: https://gitlab.arm.com/telemetry-solution/telemetry-solution/-/tree/main/data/pmu/cpu/

This one I had cherry-picked and is already in perf-tools-next, I
applied the others locally, will wait till later to see if people
ack/object.

- Arnaldo

> Acked-by: Ian Rogers <irogers@xxxxxxxxxx>
> Reviewed-by: John Garry <john.g.garry@xxxxxxxxxx>
> Signed-off-by: James Clark <james.clark@xxxxxxx>
> ---
> tools/perf/pmu-events/arch/arm64/sbsa.json | 24 +++++++++++-----------
> 1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/tools/perf/pmu-events/arch/arm64/sbsa.json b/tools/perf/pmu-events/arch/arm64/sbsa.json
> index f90b338261ac..4eed79a28f6e 100644
> --- a/tools/perf/pmu-events/arch/arm64/sbsa.json
> +++ b/tools/perf/pmu-events/arch/arm64/sbsa.json
> @@ -1,34 +1,34 @@
> [
> {
> - "MetricExpr": "stall_slot_frontend / (#slots * cpu_cycles)",
> - "BriefDescription": "Frontend bound L1 topdown metric",
> + "MetricExpr": "100 * (stall_slot_frontend / (#slots * cpu_cycles))",
> + "BriefDescription": "This metric is the percentage of total slots that were stalled due to resource constraints in the frontend of the processor.",
> "DefaultMetricgroupName": "TopdownL1",
> "MetricGroup": "Default;TopdownL1",
> "MetricName": "frontend_bound",
> - "ScaleUnit": "100%"
> + "ScaleUnit": "1percent of slots"
> },
> {
> - "MetricExpr": "(1 - op_retired / op_spec) * (1 - stall_slot / (#slots * cpu_cycles))",
> - "BriefDescription": "Bad speculation L1 topdown metric",
> + "MetricExpr": "100 * ((1 - op_retired / op_spec) * (1 - stall_slot / (#slots * cpu_cycles)))",
> + "BriefDescription": "This metric is the percentage of total slots that executed operations and didn't retire due to a pipeline flush.\nThis indicates cycles that were utilized but inefficiently.",
> "DefaultMetricgroupName": "TopdownL1",
> "MetricGroup": "Default;TopdownL1",
> "MetricName": "bad_speculation",
> - "ScaleUnit": "100%"
> + "ScaleUnit": "1percent of slots"
> },
> {
> - "MetricExpr": "(op_retired / op_spec) * (1 - stall_slot / (#slots * cpu_cycles))",
> - "BriefDescription": "Retiring L1 topdown metric",
> + "MetricExpr": "100 * ((op_retired / op_spec) * (1 - stall_slot / (#slots * cpu_cycles)))",
> + "BriefDescription": "This metric is the percentage of total slots that retired operations, which indicates cycles that were utilized efficiently.",
> "DefaultMetricgroupName": "TopdownL1",
> "MetricGroup": "Default;TopdownL1",
> "MetricName": "retiring",
> - "ScaleUnit": "100%"
> + "ScaleUnit": "1percent of slots"
> },
> {
> - "MetricExpr": "stall_slot_backend / (#slots * cpu_cycles)",
> - "BriefDescription": "Backend Bound L1 topdown metric",
> + "MetricExpr": "100 * (stall_slot_backend / (#slots * cpu_cycles))",
> + "BriefDescription": "This metric is the percentage of total slots that were stalled due to resource constraints in the backend of the processor.",
> "DefaultMetricgroupName": "TopdownL1",
> "MetricGroup": "Default;TopdownL1",
> "MetricName": "backend_bound",
> - "ScaleUnit": "100%"
> + "ScaleUnit": "1percent of slots"
> }
> ]
> --
> 2.34.1
>

--

- Arnaldo