On Mon, Nov 28, 2022 at 5:30 AM Jiri Olsa <jolsa@xxxxxxxxxx> wrote: > > Adding tests for using new bpf_vma_build_id_parse kfunc in find_vma > callback function. > > On bpf side the test finds the vma of the test_progs text through the > test function pointer and reads its build id with the new kfunc. > > On user side the test uses readelf to get test_progs build id and > compares it with the one from bpf side. > > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx> > --- <...> > diff --git a/tools/testing/selftests/bpf/progs/bpf_vma_build_id_parse.c b/tools/testing/selftests/bpf/progs/bpf_vma_build_id_parse.c > new file mode 100644 > index 000000000000..8937212207db > --- /dev/null > +++ b/tools/testing/selftests/bpf/progs/bpf_vma_build_id_parse.c <...> > + > +SEC("fentry/bpf_fentry_test1") > +int BPF_PROG(test1, int a) > +{ > + struct task_struct *task = bpf_get_current_task_btf(); > + > + if (task->pid != target_pid) > + return 0; I think here we should use task->tgid. IIRC, task->pid corresponds to thread id in the userspace. task->tgid is the process id. > + > + ret = bpf_find_vma(task, addr, check_vma, NULL, 0); > + return 0; > +} <...> > -- > 2.38.1 >