Re: [PATCH bpf-next] samples/bpf: fix broken bpf programs due to function inlining

From: Andrii Nakryiko
Date: Tue Mar 08 2022 - 01:11:53 EST


On Sun, Mar 6, 2022 at 4:15 AM Muhammad Falak R Wani
<falakreyaz@xxxxxxxxx> wrote:
>
> commit: "be6bfe36db17 block: inline hot paths of blk_account_io_*()"
> inlines the function `blk_account_io_done`. As a result we can't attach a
> kprobe to the function anymore. Use `__blk_account_io_done` instead.
>
> Signed-off-by: Muhammad Falak R Wani <falakreyaz@xxxxxxxxx>
> ---
> samples/bpf/task_fd_query_kern.c | 2 +-
> samples/bpf/tracex3_kern.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/samples/bpf/task_fd_query_kern.c b/samples/bpf/task_fd_query_kern.c
> index c821294e1774..186ac0a79c0a 100644
> --- a/samples/bpf/task_fd_query_kern.c
> +++ b/samples/bpf/task_fd_query_kern.c

samples/bpf/task_fd_query_user.c also needs adjusting, no? Have you
tried running those samples?


> @@ -10,7 +10,7 @@ int bpf_prog1(struct pt_regs *ctx)
> return 0;
> }
>
> -SEC("kretprobe/blk_account_io_done")
> +SEC("kretprobe/__blk_account_io_done")
> int bpf_prog2(struct pt_regs *ctx)
> {
> return 0;
> diff --git a/samples/bpf/tracex3_kern.c b/samples/bpf/tracex3_kern.c
> index 710a4410b2fb..bde6591cb20c 100644
> --- a/samples/bpf/tracex3_kern.c
> +++ b/samples/bpf/tracex3_kern.c
> @@ -49,7 +49,7 @@ struct {
> __uint(max_entries, SLOTS);
> } lat_map SEC(".maps");
>
> -SEC("kprobe/blk_account_io_done")
> +SEC("kprobe/__blk_account_io_done")
> int bpf_prog2(struct pt_regs *ctx)
> {
> long rq = PT_REGS_PARM1(ctx);
> --
> 2.35.1
>