Re: [PATCH v2 09/10] perf trace: Collect augmented data using BPF

Arnaldo Carvalho de Melo
2024-08-23T13:24:13Z

On Thu, Aug 15, 2024 at 09:36:25AM +0800, Howard Chu wrote:
> +++ b/tools/perf/util/bpf_skel/augmented_raw_syscalls.bpf.c
> @@ -427,7 +538,8 @@ int sys_enter(struct syscall_enter_args *args)
> * "!raw_syscalls:unaugmented" that will just return 1 to return the
> * unaugmented tracepoint payload.
> */
> - bpf_tail_call(args, &syscalls_sys_enter, augmented_args->args.syscall_nr);
> + if (augment_sys_enter(args, &augmented_args->args))
> + bpf_tail_call(args, &syscalls_sys_enter, augmented_args->args.syscall_nr);

We shouldn't do that, instead we keep doing

bpf_tail_call(args, &syscalls_sys_enter, augmented_args->args.syscall_nr);

And userspace will setup the syscalls_sys_enter map adding the generic
pointer collector (augment_sys_enter) for syscalls that have pointers
_and_ are not serviced by a pre-existing, specialized handler, this way
we keep the ones we have already and that already take into account
pretty printing network addresses based on the network family, knows how
to pretty print flags (the perf_event_open, etc).

I'll try to do this now.

- Arnaldo

>
> // If not found on the PROG_ARRAY syscalls map, then we're filtering it:
> return 0;
> --
> 2.45.2