Re: [PATCH bpf-next v6 0/4] Parameterize task iterators.

Andrii Nakryiko
2022-08-24T22:06:41Z

On Fri, Aug 19, 2022 at 3:09 PM Kui-Feng Lee <kuifeng@fb.com> wrote:
>
> Allow creating an iterator that loops through resources of one task/thread.
>
> People could only create iterators to loop through all resources of
> files, vma, and tasks in the system, even though they were interested in only the
> resources of a specific task or process. Passing the addintional
> parameters, people can now create an iterator to go through all
> resources or only the resources of a task.
>
> Major Changes:
>
> - Add new parameters in bpf_iter_link_info to indicate to go through
> all tasks or to go through a specific task.
>
> - Change the implementations of BPF iterators of vma, files, and
> tasks to allow going through only the resources of a specific task.
>
> - Provide the arguments of parameterized task iterators in
> bpf_link_info.
>
> Differences from v5:
>
> - Use user-speace tid/pid terminologies in bpf_iter_link_info *** BLURB HERE ***

BLURB HERE :)

> bpf_link_info.
>
> - Fix reference count
>
> - Merge all variants to one 'u32 pid' in internal structs.
> (bpf_iter_aux_info and bpf_iter_seq_task_common)
>
> - Compare the result of get_uprobe_offset() with the implementation
> with the vma iterators.
>
> - Implement show_fdinfo.
>
> Differences from v4:
>
> - Remove 'type' from bpf_iter_link_info and bpf_link_info.
>

We normally carry over entire change history across revisions, so we
don't have to jump through multiple links to see what happened
earlier. Please consider preserving all the changes in one place for
next revision.

> v5: https://lore.kernel.org/bpf/20220811001654.1316689-1-kuifeng@fb.com/
> v4: https://lore.kernel.org/bpf/20220809195429.1043220-1-kuifeng@fb.com/
> v3: https://lore.kernel.org/bpf/20220809063501.667610-1-kuifeng@fb.com/
> v2: https://lore.kernel.org/bpf/20220801232649.2306614-1-kuifeng@fb.com/
> v1: https://lore.kernel.org/bpf/20220726051713.840431-1-kuifeng@fb.com/
>
> Kui-Feng Lee (4):
> bpf: Parameterize task iterators.
> bpf: Handle bpf_link_info for the parameterized task BPF iterators.
> bpf: Handle show_fdinfo for the parameterized task BPF iterators
> selftests/bpf: Test parameterized task BPF iterators.
>
> include/linux/bpf.h | 25 ++
> include/uapi/linux/bpf.h | 12 +
> kernel/bpf/task_iter.c | 142 +++++++--
> tools/include/uapi/linux/bpf.h | 12 +
> .../selftests/bpf/prog_tests/bpf_iter.c | 284 +++++++++++++++++-
> .../selftests/bpf/prog_tests/btf_dump.c | 2 +-
> .../selftests/bpf/progs/bpf_iter_task.c | 9 +
> .../selftests/bpf/progs/bpf_iter_task_file.c | 9 +-
> .../selftests/bpf/progs/bpf_iter_task_vma.c | 6 +-
> .../bpf/progs/bpf_iter_uprobe_offset.c | 35 +++
> 10 files changed, 493 insertions(+), 43 deletions(-)
> create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_uprobe_offset.c
>
> --
> 2.30.2
>