This patch series: 1) Introduce ID for both bpf_prog and bpf_map. 2) Add bpf commands to iterate the prog IDs and map IDs of the system. 3) Add bpf commands to get a prog/map fd from an ID 4) Add bpf command to get prog/map info from a fd. The prog/map info is a jump start in this patchset and it is not meant to be a complete list. They can be extended in the future patches.
v2: Compiler warning fixes: - Remove lockdep_is_held() usage. Add comment to explain the lock situation instead. - Add static for idr related variables - Add __user to the uattr param in bpf_prog_get_info_by_fd() and bpf_map_get_info_by_fd(). Martin KaFai Lau (8): bpf: Introduce bpf_prog ID bpf: Introduce bpf_map ID bpf: Add BPF_(PROG|MAP)_GET_NEXT_ID command bpf: Add BPF_PROG_GET_FD_BY_ID bpf: Add BPF_MAP_GET_FD_BY_ID bpf: Add jited_len to struct bpf_prog bpf: Add BPF_OBJ_GET_INFO_BY_FD bpf: Test for bpf ID arch/arm64/net/bpf_jit_comp.c | 1 + arch/powerpc/net/bpf_jit_comp64.c | 1 + arch/s390/net/bpf_jit_comp.c | 1 + arch/sparc/net/bpf_jit_comp_64.c | 1 + arch/x86/net/bpf_jit_comp.c | 1 + include/linux/bpf.h | 2 + include/linux/filter.h | 3 +- include/uapi/linux/bpf.h | 41 +++ kernel/bpf/syscall.c | 433 ++++++++++++++++++++++++++++-- tools/include/uapi/linux/bpf.h | 41 +++ tools/lib/bpf/bpf.c | 68 +++++ tools/lib/bpf/bpf.h | 5 + tools/testing/selftests/bpf/Makefile | 2 +- tools/testing/selftests/bpf/test_obj_id.c | 35 +++ tools/testing/selftests/bpf/test_progs.c | 191 +++++++++++++ 15 files changed, 798 insertions(+), 28 deletions(-) create mode 100644 tools/testing/selftests/bpf/test_obj_id.c -- 2.9.3