On Sat, Jul 01, 2023 at 11:40:05AM +0800, Yafang Shao wrote: > On Fri, Jun 30, 2023 at 4:34 PM Jiri Olsa <jolsa@xxxxxxxxxx> 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@xxxxxxxxxx> > > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx> > > --- > > include/uapi/linux/bpf.h | 1 + > > kernel/bpf/syscall.c | 2 +- > > kernel/trace/bpf_trace.c | 45 +++++++++++++++++++++++++++++++--- > > tools/include/uapi/linux/bpf.h | 1 + > > 4 files changed, 44 insertions(+), 5 deletions(-) > > > > diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h > > index a236139f08ce..4103f395593b 100644 > > --- a/include/uapi/linux/bpf.h > > +++ b/include/uapi/linux/bpf.h > > @@ -1592,6 +1592,7 @@ union bpf_attr { > > __aligned_u64 path; > > __aligned_u64 offsets; > > __aligned_u64 ref_ctr_offsets; > > + __aligned_u64 cookies; > > Could you pls. explain why the 'cookies' is defined as a pointer ? Are > there real use cases to define different cookies for different probes > in a single uprobe_multi ? Why can't we just use one cookie for all > probes? Per my understanding, the cookie is used to identify the user > or the application, rather than each probe. > > We also defined it the same way in kprobe_multi... yes, each probed function (or symbol/offset for uprobe) can get its own cookie and we use that to get probe-specific config in generic bpf program with the bpf_get_attach_cookie helper jirka