linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* How to check RISC-V CPU sscofpmf extension in runtime?
@ 2023-04-06 14:39 Paran Lee
  0 siblings, 0 replies; only message in thread
From: Paran Lee @ 2023-04-06 14:39 UTC (permalink / raw)
  To: Atish Patra; +Cc: linux-perf-users, Ian Rogers, Namhyung Kim

Hello, Atish.
I have tested perf on Starfive Visionfive2 board.

I want to know how to check sscofpmf extension support in user program
or tools.

user@starfive:~/CppTest$ ~/starfive-visionfive2-linux/tools/perf/perf
record -g ./main.o
Error:
The sys_perf_event_open() syscall returned with 22 (Invalid argument)
for event (cycles:u).
/bin/dmesg | grep -i perf may provide additional information.

[    2.356857] riscv-pmu-sbi: SBI PMU extension is available
[    2.362841] riscv-pmu-sbi: 16 firmware and 4 hardware counters
[    2.369302] riscv-pmu-sbi: Perf sampling/filtering is not supported
as sscof extension is not available

user@starfive:$ grep PERF_EVENT /boot/config-5.15.0-dirty
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_EVENTS=y

So, I find "sscof extension is not available" position of the code

drivers/perf/riscv_pmu_sbi.c
pmu_sbi_device_probe()

	ret = pmu_sbi_setup_irqs(pmu, pdev);

I think adding the result value to the logs will give us a mor detail.
I want to patch :)

I did perf test.

~/starfive-visionfive2-linux/tools/perf/perf test
 1: vmlinux symtab matches kallsyms            : FAILED!
 2: Detect openat syscall event                : FAILED!
 3: Detect openat syscall event on all cpus    : FAILED!
 4: Read samples using the mmap interface      : FAILED!
 5: Test data source output                    : Ok
 6: Parse event definition strings             : FAILED!
 7: Simple expression parser                   : Ok
 8: PERF_RECORD_* events & perf_sample fields  : FAILED!
 9: Parse perf pmu format                      : Ok
10: PMU events                                 :
10.1: PMU event table sanity                           : FAILED!
10.2: PMU event map aliases                            : FAILED!
10.3: Parsing of PMU event table metrics               : Ok
10.4: Parsing of PMU event table metrics with fake PMUs: Ok
11: DSO data read                              : Ok
12: DSO data cache                             : Ok
13: DSO data reopen                            : Ok
14: Roundtrip evsel->name                      : Ok
15: Parse sched tracepoints fields             : FAILED!
16: syscalls:sys_enter_openat event fields     : FAILED!
17: Setup struct perf_event_attr               : Skip
18: Match and link multiple hists              : Ok
19: 'import perf' in python                    : FAILED!
20: Breakpoint overflow signal handler         : FAILED!
21: Breakpoint overflow sampling               : FAILED!
22: Breakpoint accounting                      : Skip
23: Watchpoint                                 :
23.1: Read Only Watchpoint                     : FAILED!
23.2: Write Only Watchpoint                    : FAILED!
23.3: Read / Write Watchpoint                  : FAILED!
23.4: Modify Watchpoint                        : FAILED!
24: Number of exit events of a simple workload : FAILED!
25: Software clock events period values        : Ok
26: Object code reading                        : FAILED!
27: Sample parsing                             : Ok
28: Use a dummy software event to keep tracking: Skip
29: Parse with no sample_id_all bit set        : Ok
30: Filter hist entries                        : Ok
31: Lookup mmap thread                         : Ok
32: Share thread maps                          : Ok
33: Sort output of hist entries                : Ok
34: Cumulate child hist entries                : Ok
35: Track with sched_switch                    : Ok
36: Filter fds with revents mask in a fdarray  : Ok
37: Add fd to a fdarray, making it autogrow    : Ok
38: kmod_path__parse                           : Ok
39: Thread map                                 : Ok
40: LLVM search and compile                    :
40.1: Basic BPF llvm compile                    : Skip
40.2: kbuild searching                          : Skip
40.3: Compile source for BPF prologue generation: Skip
40.4: Compile source for BPF relocation         : Skip
41: Session topology                           : FAILED!
42: BPF filter                                 :
42.1: Basic BPF filtering                      : Skip
42.2: BPF pinning                              : Skip
43: Synthesize thread map                      : Ok
44: Remove thread map                          : Ok
45: Synthesize cpu map                         : Ok
46: Synthesize stat config                     : Ok
47: Synthesize stat                            : Ok
48: Synthesize stat round                      : Ok
49: Synthesize attr update                     : Ok
50: Event times                                : Skip
51: Read backward ring buffer                  : Skip
52: Print cpu map                              : Ok
53: Merge cpu map                              : Ok
54: Probe SDT events                           : Ok
55: is_printable_array                         : Ok
56: Print bitmap                               : Ok
57: perf hooks                                 : Ok
58: builtin clang support                      : Skip (not compiled in)
59: unit_number__scnprintf                     : Ok
60: mem2node                                   : Ok
61: time utils                                 : Ok
62: Test jit_write_elf                         : Skip
63: Test libpfm4 support                       : Skip (not compiled in)
64: Test api io                                : Ok
65: maps__merge_in                             : Ok
66: Demangle Java                              : Ok
67: Demangle OCaml                             : Ok
68: Parse and process metrics                  : Ok
69: PE file support                            : Skip
70: Event expansion for cgroups                : Ok
72: dlfilter C API                             : Ok
failed to open shell test directory:
/home/user/libexec/perf-core/tests/shell


BR
Paran Lee

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-04-06 14:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-06 14:39 How to check RISC-V CPU sscofpmf extension in runtime? Paran Lee

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).