Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf test: Fix arm64 perf_event_attr tests wrt --call-graph initialization

The struct perf_event_attr is initialised differently in Arm64 when
recording in call-graph fp mode, so update the relevant tests, and add
two extra arm64-only tests.

Before:

$ perf test 17 -v
17: Setup struct perf_event_attr
[...]
running './tests/attr/test-record-graph-default'
expected sample_type=295, got 4391
expected sample_regs_user=0, got 1073741824
FAILED './tests/attr/test-record-graph-default' - match failure
test child finished with -1
---- end ----

After:

[...]
running './tests/attr/test-record-graph-default-aarch64'
test limitation 'aarch64'
running './tests/attr/test-record-graph-fp-aarch64'
test limitation 'aarch64'
running './tests/attr/test-record-graph-default'
test limitation '!aarch64'
excluded architecture list ['aarch64']
skipped [aarch64] './tests/attr/test-record-graph-default'
running './tests/attr/test-record-graph-fp'
test limitation '!aarch64'
excluded architecture list ['aarch64']
skipped [aarch64] './tests/attr/test-record-graph-fp'
[...]

Fixes: 7248e308a5758761 ("perf tools: Record ARM64 LR register automatically")
Signed-off-by: German Gomez <german.gomez@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexandre Truong <alexandre.truong@arm.com>
Cc: Ian Rogers <irogers@google.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: John Fastabend <john.fastabend@gmail.com>
Cc: KP Singh <kpsingh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Martin KaFai Lau <kafai@fb.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: Yonghong Song <yhs@fb.com>
Link: http://lore.kernel.org/lkml/20220125104435.2737-1-german.gomez@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

German Gomez and committed by
Arnaldo Carvalho de Melo
047e6032 52a9dab6

+24
+2
tools/perf/tests/attr/README
··· 45 45 perf record -d kill (test-record-data) 46 46 perf record -F 100 kill (test-record-freq) 47 47 perf record -g kill (test-record-graph-default) 48 + perf record -g kill (test-record-graph-default-aarch64) 48 49 perf record --call-graph dwarf kill (test-record-graph-dwarf) 49 50 perf record --call-graph fp kill (test-record-graph-fp) 51 + perf record --call-graph fp kill (test-record-graph-fp-aarch64) 50 52 perf record --group -e cycles,instructions kill (test-record-group) 51 53 perf record -e '{cycles,instructions}' kill (test-record-group1) 52 54 perf record -e '{cycles/period=1/,instructions/period=2/}:S' kill (test-record-group2)
+2
tools/perf/tests/attr/test-record-graph-default
··· 2 2 command = record 3 3 args = --no-bpf-event -g kill >/dev/null 2>&1 4 4 ret = 1 5 + # arm64 enables registers in the default mode (fp) 6 + arch = !aarch64 5 7 6 8 [event:base-record] 7 9 sample_type=295
+9
tools/perf/tests/attr/test-record-graph-default-aarch64
··· 1 + [config] 2 + command = record 3 + args = --no-bpf-event -g kill >/dev/null 2>&1 4 + ret = 1 5 + arch = aarch64 6 + 7 + [event:base-record] 8 + sample_type=4391 9 + sample_regs_user=1073741824
+2
tools/perf/tests/attr/test-record-graph-fp
··· 2 2 command = record 3 3 args = --no-bpf-event --call-graph fp kill >/dev/null 2>&1 4 4 ret = 1 5 + # arm64 enables registers in fp mode 6 + arch = !aarch64 5 7 6 8 [event:base-record] 7 9 sample_type=295
+9
tools/perf/tests/attr/test-record-graph-fp-aarch64
··· 1 + [config] 2 + command = record 3 + args = --no-bpf-event --call-graph fp kill >/dev/null 2>&1 4 + ret = 1 5 + arch = aarch64 6 + 7 + [event:base-record] 8 + sample_type=4391 9 + sample_regs_user=1073741824