linux/tools/perf
James Clark 8f431a2869 perf evsel: Add error message for unsupported branch stack cases
EOPNOTSUPP is a possible return value when branch stacks are requested
but they aren't enabled in the kernel or hardware. It's also returned if
they aren't supported on the specific event type. The currently printed
error message about sampling/overflow-interrupts is not correct in this
case.

Add a check for branch stacks before sample_period is checked because
sample_period is also set (to the default value) when using branch
stacks.

Before this change (when branch stacks aren't supported):

  perf record -j any
  Error:
  cycles: PMU Hardware doesn't support sampling/overflow-interrupts. Try 'perf stat'

After this change:

  perf record -j any
  Error:
  cycles: PMU Hardware or event type doesn't support branch stack sampling.

Signed-off-by: James Clark <james.clark@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: German Gomez <german.gomez@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20220307171917.2555829-2-james.clark@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2022-03-07 14:49:09 -03:00
..
arch perf arm-spe: Use advertised caps/min_interval as default sample_period 2022-02-23 07:02:23 -03:00
bench perf cpumap: Migrate to libperf cpumap api 2022-01-22 17:08:42 -03:00
dlfilters perf dlfilter: Drop unused variable 2021-12-16 12:18:11 -03:00
Documentation perf intel-pt: Add documentation for Event Trace and TNT disable 2022-02-15 17:15:27 -03:00
examples/bpf perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
include perf build: Move perf_dlfilters.h in the source tree 2021-08-11 09:35:24 -03:00
jvmti perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
pmu-events perf vendor events intel: Add uncore event list for Alderlake 2022-03-05 15:58:29 -03:00
python tweewide: Fix most Shebang lines 2020-12-08 23:30:04 +09:00
scripts perf scripts python: export-to-postgresql.py: Export all sample flags 2022-02-15 17:15:07 -03:00
tests perf test: Add perf_event_attr tests for the arm_spe event 2022-03-05 16:00:12 -03:00
trace perf beauty: Make the prctl arg regexp more strict to cope with PR_SET_VMA 2022-02-01 13:03:27 -03:00
ui perf annotate: Avoid TUI crash when navigating in the annotation of recursive functions 2022-01-10 15:47:30 -03:00
util perf evsel: Add error message for unsupported branch stack cases 2022-03-07 14:49:09 -03:00
.gitignore Add 'tools/perf/libbpf/' to ignored files 2021-11-08 11:33:35 -08:00
Build perf daemon: Add daemon command 2021-02-09 15:42:57 -03:00
builtin-annotate.c perf annotate: Remove redundant 'ret' variable 2022-02-16 10:38:55 -03:00
builtin-bench.c perf bench: Use unbuffered output when pipe/tee'ing to a file 2021-12-16 12:18:11 -03:00
builtin-buildid-cache.c perf record: Disable debuginfod by default 2022-01-15 17:41:25 -03:00
builtin-buildid-list.c perf tools: Remove repipe argument from perf_session__new() 2021-08-02 10:06:51 -03:00
builtin-c2c.c perf c2c: Replace bitmap_weight() with bitmap_empty() where appropriate 2022-02-15 17:15:31 -03:00
builtin-config.c
builtin-daemon.c perf daemon: Remove duplicate sys/file.h include 2021-10-08 15:14:50 -03:00
builtin-data.c perf data: Don't mention --to-ctf if it's not supported 2022-02-22 21:23:08 -03:00
builtin-diff.c perf tools: Remove repipe argument from perf_session__new() 2021-08-02 10:06:51 -03:00
builtin-evlist.c perf tools: Remove repipe argument from perf_session__new() 2021-08-02 10:06:51 -03:00
builtin-ftrace.c perf ftrace: system_wide collection is not effective by default 2022-02-06 09:19:51 -03:00
builtin-help.c
builtin-inject.c perf namespaces: Add functions to access nsinfo 2022-02-11 14:31:22 -03:00
builtin-kallsyms.c
builtin-kmem.c perf cpumap: Give CPUs their own type 2022-01-12 14:28:23 -03:00
builtin-kvm.c perf report: Output data file name in raw trace dump 2022-02-10 16:27:34 -03:00
builtin-list.c perf list: Display hybrid PMU events with cpu type 2021-10-25 13:47:42 -03:00
builtin-lock.c perf lock: Carefully combine lock stats for discarded entries 2022-02-10 15:43:56 -03:00
builtin-mem.c perf tools: Remove repipe argument from perf_session__new() 2021-08-02 10:06:51 -03:00
builtin-probe.c perf namespaces: Add functions to access nsinfo 2022-02-11 14:31:22 -03:00
builtin-record.c perf data: Adding error message if perf_data__create_dir() fails 2022-02-22 21:15:56 -03:00
builtin-report.c perf tui: Only support --tui with slang 2022-02-15 17:15:29 -03:00
builtin-sched.c perf cpumap: Give CPUs their own type 2022-01-12 14:28:23 -03:00
builtin-script.c perf script: Display new D (Intr Disabled) and t (Intr Toggle) flags 2022-02-15 17:14:43 -03:00
builtin-stat.c perf cpumap: Migrate to libperf cpumap api 2022-01-22 17:08:42 -03:00
builtin-timechart.c perf tools: Remove repipe argument from perf_session__new() 2021-08-02 10:06:51 -03:00
builtin-top.c perf top: Remove redundant 'err' variable 2022-02-16 10:38:03 -03:00
builtin-trace.c Merge remote-tracking branch 'torvalds/master' into perf/core 2022-02-17 18:40:54 -03:00
builtin-version.c
builtin.h perf daemon: Add daemon command 2021-02-09 15:42:57 -03:00
check-headers.sh tools lib: Adopt list_sort() from the kernel sources 2021-10-20 10:30:59 -03:00
command-list.txt perf stat: Enable iostat mode for x86 platforms 2021-04-20 08:40:20 -03:00
CREDITS
design.txt perf design.txt: Synchronize the definition of enum perf_hw_id with code 2021-11-13 18:11:50 -03:00
Makefile perf tools: Add a build-test variant to use in builds from a tarball 2021-04-20 08:43:58 -03:00
Makefile.config perf tools: Drop requirement for libstdc++.so for libopencsd check 2021-12-07 22:18:24 -03:00
Makefile.perf perf ftrace: Add -b/--use-bpf option for latency subcommand 2021-12-16 12:18:12 -03:00
MANIFEST perf MANIFEST: Add bpftool files to allow building with BUILD_BPF_SKEL=1 2021-11-07 15:39:28 -03:00
perf-archive.sh perf archive: Fix filtering of empty build-ids 2021-03-06 16:54:31 -03:00
perf-completion.sh
perf-iostat.sh perf stat: Enable iostat mode for x86 platforms 2021-04-20 08:40:20 -03:00
perf-read-vdso.c
perf-sys.h
perf-with-kcore.sh
perf.c perf debug: Move debug initialization earlier 2021-05-27 13:24:22 -03:00
perf.h