Re: [PATCH bpf-next v3 4/4] bpf_trace: pass array of u64 values in kprobe_multi.addrs

From: Andrii Nakryiko
Date: Wed May 18 2022 - 19:51:15 EST


On Tue, May 17, 2022 at 12:37 AM Eugene Syromiatnikov <esyr@xxxxxxxxxx> wrote:
>
> With the interface as defined, it is impossible to pass 64-bit kernel
> addresses from a 32-bit userspace process in BPF_LINK_TYPE_KPROBE_MULTI,
> which severly limits the useability of the interface, change the ABI
> to accept an array of u64 values instead of (kernel? user?) longs.
> Interestingly, the rest of the libbpf infrastructure uses 64-bit values
> for kallsyms addresses already, so this patch also eliminates
> the sym_addr cast in tools/lib/bpf/libbpf.c:resolve_kprobe_multi_cb().
>
> Fixes: 0dcac272540613d4 ("bpf: Add multi kprobe link")
> Fixes: 5117c26e877352bc ("libbpf: Add bpf_link_create support for multi kprobes")
> Fixes: ddc6b04989eb0993 ("libbpf: Add bpf_program__attach_kprobe_multi_opts function")
> Fixes: f7a11eeccb111854 ("selftests/bpf: Add kprobe_multi attach test")
> Fixes: 9271a0c7ae7a9147 ("selftests/bpf: Add attach test for bpf_program__attach_kprobe_multi_opts")
> Fixes: 2c6401c966ae1fbe ("selftests/bpf: Add kprobe_multi bpf_cookie test")
> Signed-off-by: Eugene Syromiatnikov <esyr@xxxxxxxxxx>
> ---
> kernel/trace/bpf_trace.c | 25 ++++++++++++++++++----

kernel changes should go into a separate patch (and seems like they
logically fit together with patch #3, no?)

> tools/lib/bpf/bpf.h | 2 +-
> tools/lib/bpf/libbpf.c | 8 +++----
> tools/lib/bpf/libbpf.h | 2 +-
> .../testing/selftests/bpf/prog_tests/bpf_cookie.c | 2 +-
> .../selftests/bpf/prog_tests/kprobe_multi_test.c | 8 +++----
> 6 files changed, 32 insertions(+), 15 deletions(-)
>

[...]