Re: [PATCH v5 00/11] perf: Support multiple system call tables in the build
From: Namhyung Kim
Date: Fri Mar 14 2025 - 01:46:01 EST
On Thu, Mar 13, 2025 at 05:47:27PM -0300, Arnaldo Carvalho de Melo wrote:
> On Thu, Mar 13, 2025 at 05:20:09PM -0300, Arnaldo Carvalho de Melo wrote:
> > Still building, but noticed this on x86_64:
> >
> > 105: perf trace enum augmentation tests : FAILED!
> > 106: perf trace BTF general tests : FAILED!
> > 107: perf trace exit race : Ok
> > 108: perf trace record and replay : FAILED!
> >
> >
> > The first doesn´t help that much with verbose mode, haven't checked if
> > before this series it was failing :-\
> >
> > root@x1:~# perf test -vvv 105
> > 105: perf trace enum augmentation tests:
> > --- start ---
> > test child forked, pid 19411
> > Checking if vmlinux exists
> > Tracing syscall landlock_add_rule
> > ---- end(-1) ----
> > 105: perf trace enum augmentation tests : FAILED!
> > root@x1:~#
>
> So:
>
> root@x1:~# perf trace -e landlock_add_rule perf test -w landlock
> root@x1:~#
>
> But:
>
> root@x1:~# perf trace perf test -w landlock |& grep landlock_add_rule
> 26.120 ( 0.002 ms): perf/19791 landlock_add_rule(ruleset_fd: 11, rule_type: LANDLOCK_RULE_PATH_BENEATH, rule_attr: 0x7ffde75e2680, flags: 45) = -1 EINVAL (Invalid argument)
> 26.124 ( 0.001 ms): perf/19791 landlock_add_rule(ruleset_fd: 11, rule_type: LANDLOCK_RULE_NET_PORT, rule_attr: 0x7ffde75e2690, flags: 45) = -1 EINVAL (Invalid argument)
> root@x1:~#
>
> -e is having some trouble, when no event is specified, then it works.
>
> Something in the changes made to:
>
> static int trace__parse_events_option(const struct option *opt, const char *str,
> int unset __maybe_unused)
Thanks for the test, I think this should fix it:
Thanks,
Namhyung
---8<---
diff --git a/tools/perf/util/syscalltbl.c b/tools/perf/util/syscalltbl.c
index ace66e69c1bcde1e..67a8ec10e9e4bc8d 100644
--- a/tools/perf/util/syscalltbl.c
+++ b/tools/perf/util/syscalltbl.c
@@ -76,7 +76,7 @@ int syscalltbl__id(int e_machine, const char *name)
{
const struct syscalltbl *table = find_table(e_machine);
struct syscall_cmp_key key;
- const int *id;
+ const uint16_t *id;
if (!table)
return -1;