On Sat, Apr 23, 2022 at 7:01 AM Yafang Shao <laoar.shao@xxxxxxxxx> wrote: > > Currently there're helpers for allowing to open/load/attach BPF object > through BPF object skeleton. Let's also add helpers for pinning through > BPF object skeleton. It could simplify BPF userspace code which wants to > pin the progs into bpffs. > > After this change, with command 'bpftool gen skeleton XXX.bpf.o', the > helpers for pinning BPF prog will be generated in BPF object skeleton. > > The new helpers are named with __{pin, unpin}_prog, because it only pins > bpf progs. If the user also wants to pin bpf maps, he can use > LIBBPF_PIN_BY_NAME. API says it's pinning programs, but really it's trying to pin links. But those links might not even be created for non-auto-attachable programs, and for others users might or might not set <skel>.links.<prog_name> links. There are lots of questions about this new functionality... But the main one is why do we need it? What does it bring that's hard to do otherwise? > > Yafang Shao (4): > libbpf: Define DEFAULT_BPFFS > libbpf: Add helpers for pinning bpf prog through bpf object skeleton > bpftool: Fix incorrect return in generated detach helper > bpftool: Generate helpers for pinning prog through bpf object skeleton > > tools/bpf/bpftool/gen.c | 18 ++++++++++- > tools/lib/bpf/bpf_helpers.h | 2 +- > tools/lib/bpf/libbpf.c | 61 ++++++++++++++++++++++++++++++++++++- > tools/lib/bpf/libbpf.h | 10 ++++-- > tools/lib/bpf/libbpf.map | 2 ++ > 5 files changed, 88 insertions(+), 5 deletions(-) > > -- > 2.17.1 >