perf vendor events riscv: Add StarFive Dubhe-80 JSON file
authorJi Sheng Teoh <jisheng.teoh@starfivetech.com>
Fri, 3 Nov 2023 08:24:41 +0000 (16:24 +0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 15 Nov 2023 17:53:07 +0000 (12:53 -0500)
commitacbf6de674ef7b1b5870b25e7b3c695bf84273d0
tree138349b4146c4edab396f1bf61a3f28597e3e0e5
parentb539deafbadb2fc6ba79307a797196454b14f501
perf vendor events riscv: Add StarFive Dubhe-80 JSON file

StarFive's Dubhe-80 supports raw event id 0x00 - 0x22.  The raw events
are enabled through PMU node of DT binding.  Besides raw event, add
standard RISC-V firmware events to support monitoring of firmware event.

Example of PMU DT node:

  pmu {
   compatible = "riscv,pmu";
   riscv,raw-event-to-mhpmcounters =
   /* Event ID 1-31 */
   <0x00 0x00 0xFFFFFFFF 0xFFFFFFE0 0x00007FF8>,
   /* Event ID 32-33 */
   <0x00 0x20 0xFFFFFFFF 0xFFFFFFFE 0x00007FF8>,
   /* Event ID 34 */
   <0x00 0x22 0xFFFFFFFF 0xFFFFFF22 0x00007FF8>;
  };

Example of 'perf stat' output:

  [root@user]# perf stat -a \
   -e access_mmu_stlb \
   -e miss_mmu_stlb \
   -e access_mmu_pte_c \
   -e rob_flush \
   -e btb_prediction_miss \
   -e itlb_miss \
   -e sync_del_fetch_g \
   -e icache_miss \
   -e bpu_br_retire \
   -e bpu_br_miss \
   -e ret_ins_retire \
   -e ret_ins_miss \
   -- openssl speed rsa2048

  Doing 2048 bits private rsa's for 10s: 39 2048 bits private RSA's in
  10.14s
  Doing 2048 bits public rsa's for 10s: 1563 2048 bits public RSA's in
  10.00s
  version: 3.0.11
  built on: Tue Sep 19 13:02:31 2023 UTC
  options: bn(64,64)
  CPUINFO: N/A
                    sign    verify    sign/s verify/s
  rsa 2048 bits 0.260000s 0.006398s      3.8    156.3

   Performance counter stats for 'system wide':

             1338350      access_mmu_stlb
             1154025      miss_mmu_stlb
             1162691      access_mmu_pte_c
               34067      rob_flush
            11212384      btb_prediction_miss
             1256242      itlb_miss
           652523491      sync_del_fetch_g
              384465      icache_miss
            64635789      bpu_br_retire
              323440      bpu_br_miss
             8785143      ret_ins_retire
               31236      ret_ins_miss

        20.760822480 seconds time elapsed

Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Ji Sheng Teoh <jisheng.teoh@starfivetech.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Ley Foon Tan <leyfoon.tan@starfivetech.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Nikita Shubin <n.shubin@yadro.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: linux-riscv@lists.infradead.org
Link: https://lore.kernel.org/r/20231103082441.1389842-1-jisheng.teoh@starfivetech.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/pmu-events/arch/riscv/mapfile.csv
tools/perf/pmu-events/arch/riscv/starfive/dubhe-80/common.json [new file with mode: 0644]
tools/perf/pmu-events/arch/riscv/starfive/dubhe-80/firmware.json [new file with mode: 0644]