mbox series

[0/4] bpf: Add more information into bpffs

Message ID 20220211121145.35237-1-laoar.shao@gmail.com (mailing list archive)
Headers show
Series bpf: Add more information into bpffs | expand

Message

Yafang Shao Feb. 11, 2022, 12:11 p.m. UTC
We have a bpf manager (bpfman) running on the host to maintain the
lifecycle of all the bpf progs and maps on this host.

The purpose of the bpfman includes,
- pin and unpin bpf progs and maps
- attach and detach bpf progs
- update running bpf progs and the related bpf maps
- update some running bpf progs only without updating the related bpf
  maps
- check the possible conflict of bpf progs
- etc

In order to safely do these works, we used many tools to get the
required information, like bpftool and some other customized tools. Some
of these works seem a little heavy. After the preloaded progs.debug and
maps.debug are introduced, we decided to improve these two files to get
the full view of progs and maps that required by bpfman.

This patchset includes below features,
- the pinned file of progs and maps are introduced into these two files
- the relateship of progs and maps is introduced into progs.debug

With these features we may also improve how bpftool get the pinned
file[1] in the next step.

[1]. https://github.com/torvalds/linux/blob/master/tools/bpf/bpftool/prog.c#L648

Yafang Shao (4):
  bpf: Add pin_name into struct bpf_prog_aux
  bpf: Add pin_name into struct bpf_map
  bpf: show pinned file name in {progs, maps}.debug
  bpf: Show the used maps of each prog in progs.debug

 include/linux/bpf.h                           |   3 +
 include/uapi/linux/bpf.h                      |   1 +
 kernel/bpf/inode.c                            |  29 +-
 kernel/bpf/preload/iterators/iterators.bpf.c  |  33 +-
 kernel/bpf/preload/iterators/iterators.skel.h | 676 +++++++++++++++-----------
 5 files changed, 460 insertions(+), 282 deletions(-)