linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] perf vendor events arm64: Fix Tegra410 Olympus PMU events
@ 2026-08-13 17:01 Besar Wicaksono
  2026-08-13 17:01 ` [PATCH 1/2] perf vendor events arm64: fix swapped MetricGroup for Tegra410 L1 prefetcher metrics Besar Wicaksono
  2026-08-13 17:01 ` [PATCH 2/2] perf vendor events arm64: Fix Tegra410 Olympus event 0x0197 Besar Wicaksono
  0 siblings, 2 replies; 5+ messages in thread
From: Besar Wicaksono @ 2026-08-13 17:01 UTC (permalink / raw)
  To: john.g.garry, will, james.clark, mike.leach, leo.yan,
	mark.rutland, alexander.shishkin, jolsa, irogers, adrian.hunter,
	peterz, mingo, acme, namhyung
  Cc: linux-tegra, linux-arm-kernel, linux-perf-users, linux-kernel,
	tmakin, vsethi, rwiley, skelley, rajjoshi, treding, jonathanh,
	mochs, sauravsc, Besar Wicaksono

Fix two issues in the NVIDIA Tegra410 Olympus PMU event definitions:

  - Correct the swapped MetricGroup assignments for the L1 data and
    instruction prefetcher metrics.
  - Correct the name and description of implementation-defined event
    0x0197.

Patch 1 resends the original patch from Saurav:
  https://patchwork.kernel.org/project/linux-arm-kernel/patch/20260511210832.91408-1-sauravsc@amazon.com/

Besar Wicaksono (1):
  perf vendor events arm64: Fix Tegra410 Olympus event 0x0197

Saurav Sachidanand (1):
  perf vendor events arm64: fix swapped MetricGroup for Tegra410 L1
    prefetcher metrics

 .../arch/arm64/nvidia/t410/metrics.json       | 28 +++++++++----------
 .../arch/arm64/nvidia/t410/misc.json          |  6 ++--
 2 files changed, 17 insertions(+), 17 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] perf vendor events arm64: fix swapped MetricGroup for Tegra410 L1 prefetcher metrics
  2026-08-13 17:01 [PATCH 0/2] perf vendor events arm64: Fix Tegra410 Olympus PMU events Besar Wicaksono
@ 2026-08-13 17:01 ` Besar Wicaksono
  2026-08-13 17:11   ` sashiko-bot
  2026-08-13 17:01 ` [PATCH 2/2] perf vendor events arm64: Fix Tegra410 Olympus event 0x0197 Besar Wicaksono
  1 sibling, 1 reply; 5+ messages in thread
From: Besar Wicaksono @ 2026-08-13 17:01 UTC (permalink / raw)
  To: john.g.garry, will, james.clark, mike.leach, leo.yan,
	mark.rutland, alexander.shishkin, jolsa, irogers, adrian.hunter,
	peterz, mingo, acme, namhyung
  Cc: linux-tegra, linux-arm-kernel, linux-perf-users, linux-kernel,
	tmakin, vsethi, rwiley, skelley, rajjoshi, treding, jonathanh,
	mochs, sauravsc, Besar Wicaksono

From: Saurav Sachidanand <sauravsc@amazon.com>

The L1D prefetcher metrics (l1d_cache_rw_miss_ratio, l1d_demand_accesses,
etc.) were incorrectly assigned to MetricGroup "L1I_Prefetcher_Effectiveness"
and vice versa. This causes 'perf stat --metric-group L1D_Prefetcher_Effectiveness'
to display L1I metrics, which is misleading.

Swap the MetricGroup assignments so L1D metrics are in the L1D group and
L1I metrics are in the L1I group.

Fixes: 86ff690f45cc ("perf vendor events arm64: Add Tegra410 Olympus PMU events")
Signed-off-by: Saurav Sachidanand <sauravsc@amazon.com>
Reviewed-by: Besar Wicaksono <bwicaksono@nvidia.com>
---
 .../arch/arm64/nvidia/t410/metrics.json       | 28 +++++++++----------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/tools/perf/pmu-events/arch/arm64/nvidia/t410/metrics.json b/tools/perf/pmu-events/arch/arm64/nvidia/t410/metrics.json
index b825ede03f54..59474ccb7417 100644
--- a/tools/perf/pmu-events/arch/arm64/nvidia/t410/metrics.json
+++ b/tools/perf/pmu-events/arch/arm64/nvidia/t410/metrics.json
@@ -346,42 +346,42 @@
         "MetricExpr": "l1d_demand_misses / l1d_demand_accesses",
         "BriefDescription": "This metric measures the ratio of L1 D-cache Read accesses missed to the total number of L1 D-cache accesses. This gives an indication of the effectiveness of the L1 D-cache for demand Load or Store traffic.",
         "ScaleUnit": "1per cache access",
-        "MetricGroup": "L1I_Prefetcher_Effectiveness"
+        "MetricGroup": "L1D_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1d_demand_accesses",
         "MetricExpr": "L1D_CACHE_RW",
         "BriefDescription": "This metric measures the count of L1 D-cache accesses incurred on Load or Store by the instruction stream of the program.",
         "ScaleUnit": "1count",
-        "MetricGroup": "L1I_Prefetcher_Effectiveness"
+        "MetricGroup": "L1D_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1d_demand_misses",
         "MetricExpr": "L1D_CACHE_REFILL_RW",
         "BriefDescription": "This metric measures the count of L1 D-cache misses incurred on a Load or Store by the instruction stream of the program.",
         "ScaleUnit": "1count",
-        "MetricGroup": "L1I_Prefetcher_Effectiveness"
+        "MetricGroup": "L1D_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1d_prf_accuracy",
         "MetricExpr": "100 * (l1d_useful_prf / l1d_refilled_prf)",
         "BriefDescription": "This metric measures the fraction of prefetched memory addresses that are used by the instruction stream.",
         "ScaleUnit": "1percent of prefetch",
-        "MetricGroup": "L1I_Prefetcher_Effectiveness"
+        "MetricGroup": "L1D_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1d_prf_coverage",
         "MetricExpr": "100 * (l1d_useful_prf / (l1d_demand_misses + l1d_refilled_prf))",
         "BriefDescription": "This metric measures the baseline demand cache misses which the prefetcher brings into the cache.",
         "ScaleUnit": "1percent of cache access",
-        "MetricGroup": "L1I_Prefetcher_Effectiveness"
+        "MetricGroup": "L1D_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1d_refilled_prf",
         "MetricExpr": "L1D_CACHE_REFILL_HWPRF + L1D_CACHE_REFILL_PRFM + L1D_LFB_HIT_RW_FHWPRF + L1D_LFB_HIT_RW_FPRFM",
         "BriefDescription": "This metric measures the count of cache lines refilled by L1 data prefetcher (hardware prefetches or software preload) into L1 D-cache.",
         "ScaleUnit": "1count",
-        "MetricGroup": "L1I_Prefetcher_Effectiveness"
+        "MetricGroup": "L1D_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1d_tlb_miss_ratio",
@@ -402,7 +402,7 @@
         "MetricExpr": "L1D_CACHE_HIT_RW_FPRF + L1D_LFB_HIT_RW_FHWPRF + L1D_LFB_HIT_RW_FPRFM",
         "BriefDescription": "This metric measures the count of cache lines refilled by L1 data prefetcher (hardware prefetches or software preload) into L1 D-cache which are further used by Load or Store from the instruction stream of the program.",
         "ScaleUnit": "1count",
-        "MetricGroup": "L1I_Prefetcher_Effectiveness"
+        "MetricGroup": "L1D_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1i_cache_miss_ratio",
@@ -423,42 +423,42 @@
         "MetricExpr": "l1i_demand_misses / l1i_demand_accesses",
         "BriefDescription": "This metric measures the ratio of L1 I-cache Read accesses missed to the total number of L1 I-cache accesses. This gives an indication of the effectiveness of the L1 I-cache for demand instruction fetch traffic. Note that cache accesses in this cache are demand instruction fetch.",
         "ScaleUnit": "1per cache access",
-        "MetricGroup": "L1D_Prefetcher_Effectiveness"
+        "MetricGroup": "L1I_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1i_demand_accesses",
         "MetricExpr": "L1I_CACHE_RD",
         "BriefDescription": "This metric measures the count of L1 I-cache accesses caused by an instruction fetch by the instruction stream of the program.",
         "ScaleUnit": "1count",
-        "MetricGroup": "L1D_Prefetcher_Effectiveness"
+        "MetricGroup": "L1I_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1i_demand_misses",
         "MetricExpr": "L1I_CACHE_REFILL_RD",
         "BriefDescription": "This metric measures the count of L1 I-cache misses caused by an instruction fetch by the instruction stream of the program.",
         "ScaleUnit": "1count",
-        "MetricGroup": "L1D_Prefetcher_Effectiveness"
+        "MetricGroup": "L1I_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1i_prf_accuracy",
         "MetricExpr": "100 * (l1i_useful_prf / l1i_refilled_prf)",
         "BriefDescription": "This metric measures the fraction of prefetched memory addresses that are used by the instruction stream.",
         "ScaleUnit": "1percent of prefetch",
-        "MetricGroup": "L1D_Prefetcher_Effectiveness"
+        "MetricGroup": "L1I_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1i_prf_coverage",
         "MetricExpr": "100 * (l1i_useful_prf / (l1i_demand_misses + l1i_refilled_prf))",
         "BriefDescription": "This metric measures the baseline demand cache misses which the prefetcher brings into the cache.",
         "ScaleUnit": "1percent of cache access",
-        "MetricGroup": "L1D_Prefetcher_Effectiveness"
+        "MetricGroup": "L1I_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1i_refilled_prf",
         "MetricExpr": "L1I_CACHE_REFILL_HWPRF + L1I_CACHE_REFILL_PRFM",
         "BriefDescription": "This metric measures the count of cache lines refilled by L1 instruction prefetcher (hardware prefetches or software preload) into L1 I-cache.",
         "ScaleUnit": "1count",
-        "MetricGroup": "L1D_Prefetcher_Effectiveness"
+        "MetricGroup": "L1I_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l1i_tlb_miss_ratio",
@@ -479,7 +479,7 @@
         "MetricExpr": "L1I_CACHE_HIT_RD_FPRF",
         "BriefDescription": "This metric measures the count of cache lines refilled by L1 instruction prefetcher (hardware prefetches or software preload) into L1 I-cache which are further used by instruction stream of the program.",
         "ScaleUnit": "1count",
-        "MetricGroup": "L1D_Prefetcher_Effectiveness"
+        "MetricGroup": "L1I_Prefetcher_Effectiveness"
     },
     {
         "MetricName": "l2_cache_miss_ratio",
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] perf vendor events arm64: Fix Tegra410 Olympus event 0x0197
  2026-08-13 17:01 [PATCH 0/2] perf vendor events arm64: Fix Tegra410 Olympus PMU events Besar Wicaksono
  2026-08-13 17:01 ` [PATCH 1/2] perf vendor events arm64: fix swapped MetricGroup for Tegra410 L1 prefetcher metrics Besar Wicaksono
@ 2026-08-13 17:01 ` Besar Wicaksono
  2026-08-13 17:08   ` sashiko-bot
  1 sibling, 1 reply; 5+ messages in thread
From: Besar Wicaksono @ 2026-08-13 17:01 UTC (permalink / raw)
  To: john.g.garry, will, james.clark, mike.leach, leo.yan,
	mark.rutland, alexander.shishkin, jolsa, irogers, adrian.hunter,
	peterz, mingo, acme, namhyung
  Cc: linux-tegra, linux-arm-kernel, linux-perf-users, linux-kernel,
	tmakin, vsethi, rwiley, skelley, rajjoshi, treding, jonathanh,
	mochs, sauravsc, Besar Wicaksono

The name and description for NVIDIA Tegra410 Olympus implementation-defined
event 0x0197 incorrectly indicate a TXREQ limit between one quarter and
one half. Correct them to describe a TXREQ limit below one half.

Fixes: 86ff690f45cc ("perf vendor events arm64: Add Tegra410 Olympus PMU events")
Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
---
 tools/perf/pmu-events/arch/arm64/nvidia/t410/misc.json | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/perf/pmu-events/arch/arm64/nvidia/t410/misc.json b/tools/perf/pmu-events/arch/arm64/nvidia/t410/misc.json
index 8ff87d844e52..e1b45cc33b18 100644
--- a/tools/perf/pmu-events/arch/arm64/nvidia/t410/misc.json
+++ b/tools/perf/pmu-events/arch/arm64/nvidia/t410/misc.json
@@ -316,8 +316,8 @@
     },
     {
         "EventCode": "0x0197",
-        "EventName": "TXREQ_LIMIT_1QUARTER_CYCLES",
-        "PublicDescription": "Number of cycles in which the dynamic TXREQ limit is between 1/4 of the L2_TQ_SIZE and 1/2 of the L2_TQ_SIZE."
+        "EventName": "TXREQ_LIMIT_BELOW_HALF_CYCLES",
+        "PublicDescription": "Number of cycles in which the dynamic TXREQ limit is between 0 and 1/2 of the L2_TQ_SIZE."
     },
     {
         "EventCode": "0x019d",
@@ -517,7 +517,7 @@
     {
         "EventCode": "0x01cc",
         "EventName": "TXREQ_LIMIT_COUNT_CYCLES",
-        "PublicDescription": "This event increments by the dynamic TXREQ value, in each cycle.\nThis is a companion event of TXREQ_LIMIT_MAX_CYCLES, TXREQ_LIMIT_3QUARTER_CYCLES, TXREQ_LIMIT_HALF_CYCLES, and TXREQ_LIMIT_1QUARTER_CYCLES."
+        "PublicDescription": "This event increments by the dynamic TXREQ value, in each cycle.\nThis is a companion event of TXREQ_LIMIT_MAX_CYCLES, TXREQ_LIMIT_3QUARTER_CYCLES, TXREQ_LIMIT_HALF_CYCLES, and TXREQ_LIMIT_BELOW_HALF_CYCLES."
     },
     {
         "EventCode": "0x01ce",
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] perf vendor events arm64: Fix Tegra410 Olympus event 0x0197
  2026-08-13 17:01 ` [PATCH 2/2] perf vendor events arm64: Fix Tegra410 Olympus event 0x0197 Besar Wicaksono
@ 2026-08-13 17:08   ` sashiko-bot
  0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-08-13 17:08 UTC (permalink / raw)
  To: Besar Wicaksono; +Cc: linux-perf-users

> The name and description for NVIDIA Tegra410 Olympus implementation-defined
> event 0x0197 incorrectly indicate a TXREQ limit between one quarter and
> one half. Correct them to describe a TXREQ limit below one half.
> 
> Fixes: 86ff690f45cc ("perf vendor events arm64: Add Tegra410 Olympus PMU events")
> Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260813170155.1156593-1-bwicaksono@nvidia.com?part=2


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] perf vendor events arm64: fix swapped MetricGroup for Tegra410 L1 prefetcher metrics
  2026-08-13 17:01 ` [PATCH 1/2] perf vendor events arm64: fix swapped MetricGroup for Tegra410 L1 prefetcher metrics Besar Wicaksono
@ 2026-08-13 17:11   ` sashiko-bot
  0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-08-13 17:11 UTC (permalink / raw)
  To: Besar Wicaksono; +Cc: linux-perf-users

> From: Saurav Sachidanand <sauravsc@amazon.com>
> 
> The L1D prefetcher metrics (l1d_cache_rw_miss_ratio, l1d_demand_accesses,
> etc.) were incorrectly assigned to MetricGroup "L1I_Prefetcher_Effectiveness"
> and vice versa. This causes 'perf stat --metric-group L1D_Prefetcher_Effectiveness'
> to display L1I metrics, which is misleading.
> 
> Swap the MetricGroup assignments so L1D metrics are in the L1D group and
> L1I metrics are in the L1I group.
> 
> Fixes: 86ff690f45cc ("perf vendor events arm64: Add Tegra410 Olympus PMU events")
> Signed-off-by: Saurav Sachidanand <sauravsc@amazon.com>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260813170155.1156593-1-bwicaksono@nvidia.com?part=1


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-08-13 17:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-13 17:01 [PATCH 0/2] perf vendor events arm64: Fix Tegra410 Olympus PMU events Besar Wicaksono
2026-08-13 17:01 ` [PATCH 1/2] perf vendor events arm64: fix swapped MetricGroup for Tegra410 L1 prefetcher metrics Besar Wicaksono
2026-08-13 17:11   ` sashiko-bot
2026-08-13 17:01 ` [PATCH 2/2] perf vendor events arm64: Fix Tegra410 Olympus event 0x0197 Besar Wicaksono
2026-08-13 17:08   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).