perf evsel: Add error message for unsupported branch stack cases
authorJames Clark <james.clark@arm.com>
Mon, 7 Mar 2022 17:19:14 +0000 (17:19 +0000)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 7 Mar 2022 17:49:09 +0000 (14:49 -0300)
commit8f431a28696d27e3370ebd1a5fd1681a8c773a8e
tree3934689b4b1f3665e7025ad649ee82343fa376db
parent4cee08fbd2cb160efb57f87a1e622c5248a2c22e
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>
tools/perf/util/evsel.c