Re: [PATCHv2 bpf-next 02/24] bpf: Add cookies support for uprobe_multi link

Andrii Nakryiko
2023-06-23T00:18:25Z

On Tue, Jun 20, 2023 at 1:36 AM Jiri Olsa <jolsa@kernel.org> wrote:
>
> Adding support to specify cookies array for uprobe_multi link.
>
> The cookies array share indexes and length with other uprobe_multi
> arrays (offsets/ref_ctr_offsets).
>
> The cookies[i] value defines cookie for i-the uprobe and will be
> returned by bpf_get_attach_cookie helper when called from ebpf
> program hooked to that specific uprobe.
>
> Acked-by: Andrii Nakryiko <andrii@kernel.org>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> ---
> include/uapi/linux/bpf.h | 1 +
> kernel/bpf/syscall.c | 2 +-
> kernel/trace/bpf_trace.c | 48 +++++++++++++++++++++++++++++++---
> tools/include/uapi/linux/bpf.h | 1 +
> 4 files changed, 47 insertions(+), 5 deletions(-)
>

[...]

> @@ -3026,6 +3045,16 @@ uprobe_multi_link_ret_handler(struct uprobe_consumer *con, unsigned long func, s
> return uprobe_prog_run(uprobe, func, regs);
> }
>
> +static u64 bpf_uprobe_multi_cookie(struct bpf_run_ctx *ctx)
> +{
> + struct bpf_uprobe_multi_run_ctx *run_ctx;
> +
> + if (!ctx)
> + return 0;

can't happen, let's crash if it does happen?

> + run_ctx = container_of(current->bpf_ctx, struct bpf_uprobe_multi_run_ctx, run_ctx);
> + return run_ctx->uprobe->cookie;
> +}
> + …