From: "Manuel Hernández | OPENCHIP" <manuel.hernandez@openchip.com>
To: "irogers@google.com" <irogers@google.com>
Cc: "acme@kernel.org" <acme@kernel.org>,
"acme@redhat.com" <acme@redhat.com>,
"adrian.hunter@intel.com" <adrian.hunter@intel.com>,
"alex@ghiti.fr" <alex@ghiti.fr>,
"alexander.shishkin@linux.intel.com"
<alexander.shishkin@linux.intel.com>,
"aou@eecs.berkeley.edu" <aou@eecs.berkeley.edu>,
"eric.lin@sifive.com" <eric.lin@sifive.com>,
"inochiama@gmail.com" <inochiama@gmail.com>,
"jolsa@kernel.org" <jolsa@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-perf-users@vger.kernel.org"
<linux-perf-users@vger.kernel.org>,
"linux-riscv@lists.infradead.org"
<linux-riscv@lists.infradead.org>,
"Manuel Hernández | OPENCHIP" <manuel.hernandez@openchip.com>,
"mark.rutland@arm.com" <mark.rutland@arm.com>,
"mingo@redhat.com" <mingo@redhat.com>,
"namhyung@kernel.org" <namhyung@kernel.org>,
"palmer@dabbelt.com" <palmer@dabbelt.com>,
"peterz@infradead.org" <peterz@infradead.org>,
"pjw@kernel.org" <pjw@kernel.org>,
"samuel.holland@sifive.com" <samuel.holland@sifive.com>
Subject: [PATCH v2] perf vendor events riscv: Add CVA6 JSON file
Date: Thu, 4 Dec 2025 16:40:38 +0000 [thread overview]
Message-ID: <20251204163854.10318-1-manuel.hernandez@openchip.com> (raw)
In-Reply-To: <CAP-5=fWmyyp2HTwOtbcJbSR1OO3qCh+sqdua=QmwNa04k8sS6w@mail.gmail.com>
From: Manuel Hernández Méndez <manuel.hernandez@openchip.com>
This patch add the CVA6 JSON file.
Signed-off-by: Manuel Hernández Méndez <manuel.hernandez@openchip.com>
---
Hi Ian, thanks for the review.
This is the second version of the patch, following a review of the
CVA6 core PMU implementation.
Thanks!
Manuel
---
Changes in v2:
- Added a clarification about retired instructions in name and
description fields
- Moved and renamed LOAD_ACCESSES and STORE_ACCESSES events from
memory.json to instructions.json
- Moved INSTRUCTION_FETCH_EMPTY event from instructions.json to
microarch.json
- Changed mode from 755 to 644 in firmware.json file
v1:
https://lore.kernel.org/all/20251202180155.11147-1-manuel.hernandez@openchip.com/
---
tools/perf/pmu-events/arch/riscv/mapfile.csv | 1 +
.../arch/riscv/openhwgroup/cva6/firmware.json | 68 +++++++++++++++++++
.../riscv/openhwgroup/cva6/instructions.json | 47 +++++++++++++
.../arch/riscv/openhwgroup/cva6/memory.json | 42 ++++++++++++
.../riscv/openhwgroup/cva6/microarch.json | 27 ++++++++
5 files changed, 185 insertions(+)
create mode 100644 tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/firmware.json
create mode 100644 tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/instructions.json
create mode 100644 tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/memory.json
create mode 100644 tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/microarch.json
diff --git a/tools/perf/pmu-events/arch/riscv/mapfile.csv b/tools/perf/pmu-events/arch/riscv/mapfile.csv
index d5eea7f9aa9a..87cfb0e0849f 100644
--- a/tools/perf/pmu-events/arch/riscv/mapfile.csv
+++ b/tools/perf/pmu-events/arch/riscv/mapfile.csv
@@ -21,5 +21,6 @@
0x489-0x8000000000000[1-6]08-0x[9b][[:xdigit:]]+,v1,sifive/p650,core
0x5b7-0x0-0x0,v1,thead/c900-legacy,core
0x5b7-0x80000000090c0d00-0x2047000,v1,thead/c900-legacy,core
+0x602-0x3-0x0,v1,openhwgroup/cva6,core
0x67e-0x80000000db0000[89]0-0x[[:xdigit:]]+,v1,starfive/dubhe-80,core
0x31e-0x8000000000008a45-0x[[:xdigit:]]+,v1,andes/ax45,core
diff --git a/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/firmware.json b/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/firmware.json
new file mode 100644
index 000000000000..7149caec4f80
--- /dev/null
+++ b/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/firmware.json
@@ -0,0 +1,68 @@
+[
+ {
+ "ArchStdEvent": "FW_MISALIGNED_LOAD"
+ },
+ {
+ "ArchStdEvent": "FW_MISALIGNED_STORE"
+ },
+ {
+ "ArchStdEvent": "FW_ACCESS_LOAD"
+ },
+ {
+ "ArchStdEvent": "FW_ACCESS_STORE"
+ },
+ {
+ "ArchStdEvent": "FW_ILLEGAL_INSN"
+ },
+ {
+ "ArchStdEvent": "FW_SET_TIMER"
+ },
+ {
+ "ArchStdEvent": "FW_IPI_SENT"
+ },
+ {
+ "ArchStdEvent": "FW_IPI_RECEIVED"
+ },
+ {
+ "ArchStdEvent": "FW_FENCE_I_SENT"
+ },
+ {
+ "ArchStdEvent": "FW_FENCE_I_RECEIVED"
+ },
+ {
+ "ArchStdEvent": "FW_SFENCE_VMA_SENT"
+ },
+ {
+ "ArchStdEvent": "FW_SFENCE_VMA_RECEIVED"
+ },
+ {
+ "ArchStdEvent": "FW_SFENCE_VMA_ASID_SENT"
+ },
+ {
+ "ArchStdEvent": "FW_SFENCE_VMA_ASID_RECEIVED"
+ },
+ {
+ "ArchStdEvent": "FW_HFENCE_GVMA_SENT"
+ },
+ {
+ "ArchStdEvent": "FW_HFENCE_GVMA_RECEIVED"
+ },
+ {
+ "ArchStdEvent": "FW_HFENCE_GVMA_VMID_SENT"
+ },
+ {
+ "ArchStdEvent": "FW_HFENCE_GVMA_VMID_RECEIVED"
+ },
+ {
+ "ArchStdEvent": "FW_HFENCE_VVMA_SENT"
+ },
+ {
+ "ArchStdEvent": "FW_HFENCE_VVMA_RECEIVED"
+ },
+ {
+ "ArchStdEvent": "FW_HFENCE_VVMA_ASID_SENT"
+ },
+ {
+ "ArchStdEvent": "FW_HFENCE_VVMA_ASID_RECEIVED"
+ }
+]
diff --git a/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/instructions.json b/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/instructions.json
new file mode 100644
index 000000000000..c38f6c97cf1f
--- /dev/null
+++ b/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/instructions.json
@@ -0,0 +1,47 @@
+[
+ {
+ "EventName": "LOAD_INSTRUCTIONS_RETIRED",
+ "EventCode": "0x5",
+ "BriefDescription": "number of data memory load instructions retired"
+ },
+ {
+ "EventName": "STORE_INSTRUCTIONS_RETIRED",
+ "EventCode": "0x6",
+ "BriefDescription": "number of data memory store instructions retired"
+ },
+ {
+ "EventName": "EXCEPTIONS",
+ "EventCode": "0x7",
+ "BriefDescription": "valid exceptions encountered"
+ },
+ {
+ "EventName": "EXCEPTION_HANDLER_RETURNS",
+ "EventCode": "0x8",
+ "BriefDescription": "return from an exception"
+ },
+ {
+ "EventName": "BRANCH_INSTRUCTIONS_RETIRED",
+ "EventCode": "0x9",
+ "BriefDescription": "number of branch instructions encountered retired"
+ },
+ {
+ "EventName": "CALL_INSTRUCTIONS_RETIRED",
+ "EventCode": "0xC",
+ "BriefDescription": "number of call instructions retired"
+ },
+ {
+ "EventName": "RETURN_INSTRUCTIONS_RETIRED",
+ "EventCode": "0xD",
+ "BriefDescription": "number of return instructions retired"
+ },
+ {
+ "EventName": "INTEGER_INSTRUCTIONS_RETIRED",
+ "EventCode": "0x14",
+ "BriefDescription": "number of integer instructions retired"
+ },
+ {
+ "EventName": "FLOATING_POINT_INSTRUCTIONS_RETIRED",
+ "EventCode": "0x15",
+ "BriefDescription": "number of floating point instructions retired"
+ }
+]
diff --git a/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/memory.json b/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/memory.json
new file mode 100644
index 000000000000..c4f376a0ee4e
--- /dev/null
+++ b/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/memory.json
@@ -0,0 +1,42 @@
+[
+ {
+ "EventName": "L1_I_CACHE_MISSES",
+ "EventCode": "0x1",
+ "BriefDescription": "number of misses in L1 I-Cache"
+ },
+ {
+ "EventName": "L1_D_CACHE_MISSES",
+ "EventCode": "0x2",
+ "BriefDescription": "number of misses in L1 D-Cache"
+ },
+ {
+ "EventName": "ITLB_MISSES",
+ "EventCode": "0x3",
+ "BriefDescription": "number of misses in ITLB"
+ },
+ {
+ "EventName": "DTLB_MISSES",
+ "EventCode": "0x4",
+ "BriefDescription": "number of misses in DTLB"
+ },
+ {
+ "EventName": "L1_I_CACHE_ACCESSES",
+ "EventCode": "0x10",
+ "BriefDescription": "number of accesses to instruction cache"
+ },
+ {
+ "EventName": "L1_D_CACHE_ACCESSES",
+ "EventCode": "0x11",
+ "BriefDescription": "number of accesses to data cache"
+ },
+ {
+ "EventName": "L1_CACHE_LINE_EVICTION",
+ "EventCode": "0x12",
+ "BriefDescription": "number of data cache line eviction"
+ },
+ {
+ "EventName": "ITLB_FLUSH",
+ "EventCode": "0x13",
+ "BriefDescription": "number of ITLB flushes"
+ }
+]
diff --git a/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/microarch.json b/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/microarch.json
new file mode 100644
index 000000000000..104e6e8197da
--- /dev/null
+++ b/tools/perf/pmu-events/arch/riscv/openhwgroup/cva6/microarch.json
@@ -0,0 +1,27 @@
+[
+ {
+ "EventName": "BRANCH_MISPREDICTS",
+ "EventCode": "0xA",
+ "BriefDescription": "number of branch mispredictions"
+ },
+ {
+ "EventName": "BRANCH_EXCEPTIONS",
+ "EventCode": "0xB",
+ "BriefDescription": "number of valid branch exceptions"
+ },
+ {
+ "EventName": "MSB_FULL",
+ "EventCode": "0xE",
+ "BriefDescription": "scoreboard is full"
+ },
+ {
+ "EventName": "INSTRUCTION_FETCH_EMPTY",
+ "EventCode": "0xF",
+ "BriefDescription": "number of invalid instructions in IF stage"
+ },
+ {
+ "EventName": "PIPELINE_STALL",
+ "EventCode": "0x16",
+ "BriefDescription": "number of cycles the pipeline is stalled during read operands"
+ }
+]
--
2.34.1
next prev parent reply other threads:[~2025-12-04 16:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-02 18:04 [PATCH] perf vendor events riscv: Add CVA6 JSON file Manuel Hernández | OPENCHIP
2025-12-03 23:23 ` Ian Rogers
2025-12-04 16:40 ` Manuel Hernández | OPENCHIP [this message]
2025-12-04 16:43 ` [PATCH v2] " Ian Rogers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251204163854.10318-1-manuel.hernandez@openchip.com \
--to=manuel.hernandez@openchip.com \
--cc=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=alex@ghiti.fr \
--cc=alexander.shishkin@linux.intel.com \
--cc=aou@eecs.berkeley.edu \
--cc=eric.lin@sifive.com \
--cc=inochiama@gmail.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=palmer@dabbelt.com \
--cc=peterz@infradead.org \
--cc=pjw@kernel.org \
--cc=samuel.holland@sifive.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).