[RFC PATCH 0/3] RISC-V Sspesa: Linux perf precise sample attribution
Mayuresh Chitale
mayuresh.chitale at oss.qualcomm.com
Mon Aug 17 09:02:16 PDT 2026
This Linux series adds kernel support for the RISC-V Performance Event
Sampling extensions Sspesa (Precise Event Sample Attribution) and
Ssplcofi (Precise Local Counter Overflow Interrupt).
The first two patches add the DT binding and ISA-extension detection
(Ssplcofi depends on Sspesa). The third patch uses shpmspc to report the
sample PC via PERF_SAMPLE_IP in the SBI PMU overflow handler, and
exports shpmsdata as PERF_SAMPLE_RAW.
Reproducing the full setup:
Sspesa support requires three projects: OpenSBI, Linux and QEMU. The
matching branches are:
OpenSBI: https://github.com/mdchitale/opensbi/tree/riscv_sspesa_rfc_v1
Linux: https://github.com/mdchitale/linux/tree/riscv_sspesa_rfc_v1
QEMU: https://github.com/mdchitale/qemu/tree/riscv_sspesa_rfc_v1
To test Sspesa, build OpenSBI, Linux and QEMU from the branches above,
then boot Linux with:
qemu-system-riscv64 -nographic -machine virt -smp 2 -m 2G \
-cpu rv64,sscofpmf=on,sspesa=on \
-bios /path/to/fw_dynamic.bin -kernel /path/to/Image \
-drive file=/path/to/rootfs.img,id=hd0,format=raw,if=none \
-device virtio-blk-device,drive=hd0 \
-append "root=/dev/vda rw console=ttyS0 earlycon=sbi"
With all three in place, a counter overflow (e.g. 'perf record -e
cycles -c 1000000 -- <workload>') is attributed using the
hardware-provided sample PC (shpmspc) and counter ID (shpmsdata)
instead of falling back to epc.
Mayuresh Chitale (3):
dt-bindings: riscv: Add Sspesa and Ssplcofi extensions
riscv: Add detection for Sspesa and Ssplcofi extensions
perf/riscv: Use Sspesa for precise sample attribution
.../devicetree/bindings/riscv/extensions.yaml | 19 ++++++++++++
arch/riscv/include/asm/csr.h | 7 +++++
arch/riscv/include/asm/hwcap.h | 2 ++
arch/riscv/kernel/cpufeature.c | 12 ++++++++
drivers/perf/riscv_pmu_sbi.c | 29 +++++++++++++++++++
5 files changed, 69 insertions(+)
--
2.43.0
More information about the linux-riscv
mailing list