Skip to content

Commit d66763f

Browse files
Sbermacmel
authored andcommitted
perf test trace_btf_enum: Add regression test for the BTF augmentation of enums in 'perf trace'
Trace landlock_add_rule syscall to see if the output is desirable. Trace the non-syscall tracepoint 'timer:hrtimer_init' and 'timer:hrtimer_start', see if the 'mode' argument is augmented, the 'mode' enum argument has the prefix of 'HRTIMER_MODE_' in its name. Committer testing: root@x1:~# perf test enum 124: perf trace enum augmentation tests : Ok root@x1:~# perf test -v enum 124: perf trace enum augmentation tests : Ok root@x1:~# perf trace -e landlock_add_rule perf test -v enum 0.000 ( 0.010 ms): perf/749827 landlock_add_rule(ruleset_fd: 11, rule_type: LANDLOCK_RULE_PATH_BENEATH, rule_attr: 0x7ffd324171d4, flags: 45) = -1 EINVAL (Invalid argument) 0.012 ( 0.002 ms): perf/749827 landlock_add_rule(ruleset_fd: 11, rule_type: LANDLOCK_RULE_NET_PORT, rule_attr: 0x7ffd324171e0, flags: 45) = -1 EINVAL (Invalid argument) 457.821 ( 0.007 ms): perf/749830 landlock_add_rule(ruleset_fd: 11, rule_type: LANDLOCK_RULE_PATH_BENEATH, rule_attr: 0x7ffd4acd31e4, flags: 45) = -1 EINVAL (Invalid argument) 457.832 ( 0.003 ms): perf/749830 landlock_add_rule(ruleset_fd: 11, rule_type: LANDLOCK_RULE_NET_PORT, rule_attr: 0x7ffd4acd31f0, flags: 45) = -1 EINVAL (Invalid argument) 124: perf trace enum augmentation tests : Ok root@x1:~# Suggested-by: Arnaldo Carvalho de Melo <[email protected]> Signed-off-by: Howard Chu <[email protected]> Tested-by: Arnaldo Carvalho de Melo <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Ian Rogers <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Kan Liang <[email protected]> Cc: Namhyung Kim <[email protected]> Link: https://lore.kernel.org/lkml/[email protected] Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent 3656e56 commit d66763f

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#!/bin/sh
2+
# perf trace enum augmentation tests
3+
# SPDX-License-Identifier: GPL-2.0
4+
5+
err=0
6+
set -e
7+
8+
syscall="landlock_add_rule"
9+
non_syscall="timer:hrtimer_init,timer:hrtimer_start"
10+
11+
TESTPROG="perf test -w landlock"
12+
13+
. "$(dirname $0)"/lib/probe.sh
14+
skip_if_no_perf_trace || exit 2
15+
16+
check_vmlinux() {
17+
echo "Checking if vmlinux exists"
18+
if ! ls /sys/kernel/btf/vmlinux 1>/dev/null 2>&1
19+
then
20+
echo "trace+enum test [Skipped missing vmlinux BTF support]"
21+
err=2
22+
fi
23+
}
24+
25+
trace_landlock() {
26+
echo "Tracing syscall ${syscall}"
27+
28+
# test flight just to see if landlock_add_rule and libbpf are available
29+
$TESTPROG
30+
31+
if perf trace -e $syscall $TESTPROG 2>&1 | \
32+
grep -q -E ".*landlock_add_rule\(ruleset_fd: 11, rule_type: (LANDLOCK_RULE_PATH_BENEATH|LANDLOCK_RULE_NET_PORT), rule_attr: 0x[a-f0-9]+, flags: 45\) = -1.*"
33+
then
34+
err=0
35+
else
36+
err=1
37+
fi
38+
}
39+
40+
trace_non_syscall() {
41+
echo "Tracing non-syscall tracepoint ${non-syscall}"
42+
if perf trace -e $non_syscall --max-events=1 2>&1 | \
43+
grep -q -E '.*timer:hrtimer_.*\(.*mode: HRTIMER_MODE_.*\)$'
44+
then
45+
err=0
46+
else
47+
err=1
48+
fi
49+
}
50+
51+
check_vmlinux
52+
53+
if [ $err = 0 ]; then
54+
trace_landlock
55+
fi
56+
57+
if [ $err = 0 ]; then
58+
trace_non_syscall
59+
fi
60+
61+
exit $err

0 commit comments

Comments
 (0)