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

Ian Rogers
2023-07-12T00:43:44Z

On Tue, Jul 11, 2023 at 3:02 AM James Clark <james.clark@arm.com> wrote:
>
> 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/
> Signed-off-by: James Clark <james.clark@arm.com>

Acked-by: Ian Rogers <irogers@google.com>

Thanks,
Ian

> ---
> 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
>