* Re: [PATCH v2] perf vendor events arm64 AmpereOneX: Deprecate BPU_FLUSH_MEM_FAULT
2026-11-03 11:26 ` [PATCH v2] perf vendor events arm64 AmpereOneX: Deprecate BPU_FLUSH_MEM_FAULT TAKANO Mitsuhiro
@ 2026-11-03 12:07 ` James Clark
2026-11-07 2:21 ` [PATCH v3] " TAKANO Mitsuhiro
1 sibling, 0 replies; 3+ messages in thread
From: James Clark @ 2026-11-03 12:07 UTC (permalink / raw)
To: TAKANO Mitsuhiro
Cc: Namhyung Kim, Ian Rogers, John Garry, Will Deacon, linux-kernel,
linux-arm-kernel, Ilkka Koskinen, linux-perf-users,
Arnaldo Carvalho de Melo
On 03/11/2026 11:26, TAKANO Mitsuhiro wrote:
> AmpereOne named event 0x121 BPU_FLUSH_MEM_FAULT until
> commit 10a149e4b4a9 ("perf vendor events arm64 AmpereOne: Rename
> BPU_FLUSH_MEM_FAULT to GPC_FLUSH_MEM_FAULT") renamed it. The next patch
> in that series, 16438b652b46, added the AmpereOneX tables with the old
> name in memory.json, so 0x121 carries two names: GPC_FLUSH_MEM_FAULT in
> core-imp-def.json and BPU_FLUSH_MEM_FAULT in memory.json, and the
> default perf list output shows both. The old name has been in every
> release since v6.8, so deleting it would break scripts that use it.
>
> Mark the entry deprecated instead of deleting it, as Ian Rogers asked:
> perf list then shows 0x121 once while those scripts keep working. The
> x86 tables use the same wording, and
> commit eda39f98bbc5 ("perf vendor events amd: Reintroduce deprecated
> Zen 5 core events") brought back deprecated AMD events for the same
> reason. The flag is only read when listing; the entry still registers
> event=0x121, so perf stat -e bpu_flush_mem_fault resolves as before, and
> regenerating the tables changes nothing but that flag.
> perf list --deprecated still prints the name in the text output; the
> JSON path does not consult the flag, so perf list -j cannot show it.
> No metric expression and no other file refers to either name.
>
> The duplicate came in because jevents checks repeated names, not event
> codes, and one encoding carrying several names is legitimate, so nothing
> is added for that here. No AmpereOneX machine was available, so the
> listing was not run on hardware; Ilkka Koskinen, who added both tables,
> tried v1 and v2 and reports that they behave as expected, and his
> Acked-by is for this variant. The JSON edit and this changelog were
> written with an LLM assistant, Hermes Agent, working from the code and
> the thread; the checks above were run here.
>
> Fixes: 16438b652b46 ("perf vendor events arm64 AmpereOneX: Add core PMU events and metrics")
> Suggested-by: Ian Rogers <irogers@google.com>
> Link: https://lore.kernel.org/20261021224527.167637-1-takano32@gmail.com
> Link: https://lore.kernel.org/CAP-5=fX+2eRGCHcU43sqU=gi9iKvxqyS6ipwRSnvFcap3D+QzQ@mail.gmail.com
> Link: https://lore.kernel.org/42801873-8908-07a6-aed1-c7076c689e8e@os.amperecomputing.com
> Acked-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
> Signed-off-by: TAKANO Mitsuhiro <takano32@gmail.com>
> ---
> v2: keep the entry and mark it deprecated instead of deleting it,
> as Ian Rogers suggested, and word both descriptions the way
> the x86 tables do. Ilkka Koskinen Acked-by v1 and asked for it
> to be carried over to v2; the description wording was added on
> top of that, as said in this thread.
> v1: https://lore.kernel.org/20261021224527.167637-1-takano32@gmail.com
>
> .../perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json b/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json
> index 6c06bc928415..114f95e41e0d 100644
> --- a/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json
> +++ b/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json
> @@ -35,9 +35,10 @@
> "ArchStdEvent": "MEM_ACCESS_CHECKED_WR"
> },
> {
> - "PublicDescription": "Flushes due to memory hazards",
> + "PublicDescription": "This event is deprecated. Refer to new event GPC_FLUSH_MEM_FAULT Flushes due to memory hazards",
Extremely minor nit, but there should be a full stop before 'Flushes'.
But if marking it deprecated makes it not show in Perf list, then it
doesn't make a difference.
Reviewed-by: James Clark <james.clark@linaro.org>
> "EventCode": "0x121",
> "EventName": "BPU_FLUSH_MEM_FAULT",
> - "BriefDescription": "Flushes due to memory hazards"
> + "BriefDescription": "This event is deprecated. Refer to new event GPC_FLUSH_MEM_FAULT",
> + "Deprecated": "1"
> }
> ]
>
> base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH v3] perf vendor events arm64 AmpereOneX: Deprecate BPU_FLUSH_MEM_FAULT
2026-11-03 11:26 ` [PATCH v2] perf vendor events arm64 AmpereOneX: Deprecate BPU_FLUSH_MEM_FAULT TAKANO Mitsuhiro
2026-11-03 12:07 ` James Clark
@ 2026-11-07 2:21 ` TAKANO Mitsuhiro
1 sibling, 0 replies; 3+ messages in thread
From: TAKANO Mitsuhiro @ 2026-11-07 2:21 UTC (permalink / raw)
To: linux-perf-users, Arnaldo Carvalho de Melo
Cc: Namhyung Kim, Ian Rogers, John Garry, James Clark, Will Deacon,
linux-kernel, linux-arm-kernel, TAKANO Mitsuhiro, Ilkka Koskinen
AmpereOne named event 0x121 BPU_FLUSH_MEM_FAULT until
commit 10a149e4b4a9 ("perf vendor events arm64 AmpereOne: Rename
BPU_FLUSH_MEM_FAULT to GPC_FLUSH_MEM_FAULT") renamed it. The next patch
in that series, 16438b652b46, added the AmpereOneX tables with the old
name in memory.json, so 0x121 carries two names: GPC_FLUSH_MEM_FAULT in
core-imp-def.json and BPU_FLUSH_MEM_FAULT in memory.json, and the
default perf list output shows both. The old name has been in every
release since v6.8, so removing the name would break anything that
refers to it.
Mark the entry deprecated instead of deleting it, as Ian Rogers asked:
perf list then shows 0x121 once, and perf stat -e bpu_flush_mem_fault
keeps working. The x86 tables use the same wording, and the same
reasoning brought back deprecated AMD events in
commit eda39f98bbc5 ("perf vendor events amd: Reintroduce deprecated
Zen 5 core events"). The entry still registers event=0x121, and no
other event changes; after regenerating the tables only the two
descriptions and the deprecation flag differ.
perf list --deprecated still prints the name in the text output. perf
list -j cannot show deprecated events at all: the JSON printer honours
the flag, but --deprecated is wired only into the text print state, so
the JSON state never sees it. No metric expression and no other file
refers to either name.
The duplicate came in because jevents checks repeated names, not event
codes, and one encoding carrying several names is legitimate, so nothing
is added for that here. No AmpereOneX machine was available, so the
listing was not run on hardware; Ilkka Koskinen, who added both tables,
tried v1 and v2 and reports that they behave as expected, and his
Acked-by covers v2, which differs from this version only in that full
stop. The JSON edit and this changelog were written with an LLM
assistant, Hermes Agent, working from the code and the thread; the
checks above were run here.
Fixes: 16438b652b46 ("perf vendor events arm64 AmpereOneX: Add core PMU events and metrics")
Suggested-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/20261021224527.167637-1-takano32@gmail.com
Link: https://lore.kernel.org/CAP-5=fX+2eRGCHcU43sqU=gi9iKvxqyS6ipwRSnvFcap3D+QzQ@mail.gmail.com
Link: https://lore.kernel.org/42801873-8908-07a6-aed1-c7076c689e8e@os.amperecomputing.com
Link: https://lore.kernel.org/a188c604-46c0-48fb-9cbd-9eacad88b5c9@linaro.org
Reviewed-by: James Clark <james.clark@linaro.org>
Acked-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Signed-off-by: TAKANO Mitsuhiro <takano32@gmail.com>
---
v3: add the full stop after the new event name, as James Clark
asked, and carry his Reviewed-by. Also correct three
statements in this changelog: the JSON printer does consult
the flag (the option is simply not wired to it),
regeneration changes the two descriptions as well as the
flag, and Ilkka Koskinen's Acked-by was given for v2.
.../perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json b/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json
index 6c06bc928415..b0934a7b252c 100644
--- a/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json
+++ b/tools/perf/pmu-events/arch/arm64/ampere/ampereonex/memory.json
@@ -35,9 +35,10 @@
"ArchStdEvent": "MEM_ACCESS_CHECKED_WR"
},
{
- "PublicDescription": "Flushes due to memory hazards",
+ "PublicDescription": "This event is deprecated. Refer to new event GPC_FLUSH_MEM_FAULT. Flushes due to memory hazards",
"EventCode": "0x121",
"EventName": "BPU_FLUSH_MEM_FAULT",
- "BriefDescription": "Flushes due to memory hazards"
+ "BriefDescription": "This event is deprecated. Refer to new event GPC_FLUSH_MEM_FAULT",
+ "Deprecated": "1"
}
]
base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
--
2.53.0
^ permalink raw reply [flat|nested] 3+ messages in thread