Re: [PATCH v5 2/6] perf vendor events arm64: Add TLB metrics for neoverse-n2

From: Ian Rogers
Date: Tue Jan 03 2023 - 12:15:47 EST


On Tue, Jan 3, 2023 at 3:39 AM Jing Zhang <renyu.zj@xxxxxxxxxxxxxxxxx> wrote:
>
> Add TLB related metrics.
>
> Signed-off-by: Jing Zhang <renyu.zj@xxxxxxxxxxxxxxxxx>
> Acked-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> .../arch/arm64/arm/neoverse-n2/metrics.json | 49 ++++++++++++++++++++++
> 1 file changed, 49 insertions(+)
>
> diff --git a/tools/perf/pmu-events/arch/arm64/arm/neoverse-n2/metrics.json b/tools/perf/pmu-events/arch/arm64/arm/neoverse-n2/metrics.json
> index c126f1bc..8a74e07 100644
> --- a/tools/perf/pmu-events/arch/arm64/arm/neoverse-n2/metrics.json
> +++ b/tools/perf/pmu-events/arch/arm64/arm/neoverse-n2/metrics.json
> @@ -26,5 +26,54 @@
> "MetricGroup": "TopdownL1",
> "MetricName": "backend_bound",
> "ScaleUnit": "100%"
> + },
> + {
> + "MetricExpr": "L1D_TLB_REFILL / L1D_TLB",
> + "BriefDescription": "The rate of L1D TLB refill to the overall L1D TLB lookups",
> + "MetricGroup": "TLB",
> + "MetricName": "l1d_tlb_miss_rate",
> + "ScaleUnit": "100%"
> + },
> + {
> + "MetricExpr": "L1I_TLB_REFILL / L1I_TLB",
> + "BriefDescription": "The rate of L1I TLB refill to the overall L1I TLB lookups",
> + "MetricGroup": "TLB",
> + "MetricName": "l1i_tlb_miss_rate",
> + "ScaleUnit": "100%"
> + },
> + {
> + "MetricExpr": "L2D_TLB_REFILL / L2D_TLB",
> + "BriefDescription": "The rate of L2D TLB refill to the overall L2D TLB lookups",
> + "MetricGroup": "TLB",
> + "MetricName": "l2_tlb_miss_rate",
> + "ScaleUnit": "100%"
> + },
> + {
> + "MetricExpr": "DTLB_WALK / INST_RETIRED * 1000",
> + "BriefDescription": "The rate of TLB Walks per kilo instructions for data accesses",
> + "MetricGroup": "TLB",
> + "MetricName": "dtlb_mpki",
> + "ScaleUnit": "MPKI"
> + },
> + {
> + "MetricExpr": "DTLB_WALK / L1D_TLB",
> + "BriefDescription": "The rate of DTLB Walks to the overall L1D TLB lookups",
> + "MetricGroup": "TLB",
> + "MetricName": "dtlb_walk_rate",
> + "ScaleUnit": "100%"
> + },
> + {
> + "MetricExpr": "ITLB_WALK / INST_RETIRED * 1000",
> + "BriefDescription": "The rate of TLB Walks per kilo instructions for instruction accesses",
> + "MetricGroup": "TLB",
> + "MetricName": "itlb_mpki",
> + "ScaleUnit": "MPKI"

Did you test this? IIRC if there is no number in the ScaleUnit then
the scale factor becomes 0 and the metric value is always multiplied
by zero. Perhaps:

"MetricName": "itlb_miss_rate",
"MetricExpr": "ITLB / INST_RETIRED"
"ScaleUnit": "1000MPKI"

Thanks,
Ian

> + },
> + {
> + "MetricExpr": "ITLB_WALK / L1I_TLB",
> + "BriefDescription": "The rate of ITLB Walks to the overall L1I TLB lookups",
> + "MetricGroup": "TLB",
> + "MetricName": "itlb_walk_rate",
> + "ScaleUnit": "100%"
> }
> ]
> --
> 1.8.3.1
>