Bpf links seem to be one of the important structures for which no iterator is provided. Such iterator could be useful in those cases when generic 'task/file' is not suitable or better performance is needed. The implementation is mostly copied from prog iterator, and I would like to get any high-level feedback about what needs to be different or have to be taken into account. As a side note, I would also appreciate if someone could point me out to some guide about writing selftests for bpf subsystem -- for some unclear reason I couldn't compile the test from this changeset, and was testing it only manually with a custom test program. Dmitrii Dolgov (2): bpf: Add bpf_link iterator selftests/bpf: Add bpf_link test include/linux/bpf.h | 1 + kernel/bpf/Makefile | 2 +- kernel/bpf/link_iter.c | 107 ++++++++++++++++++ kernel/bpf/syscall.c | 19 ++++ .../selftests/bpf/prog_tests/bpf_iter.c | 15 +++ .../selftests/bpf/progs/bpf_iter_bpf_link.c | 18 +++ 6 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 kernel/bpf/link_iter.c create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_bpf_link.c -- 2.32.0