Em Sun, Jan 22, 2017 at 05:11:21PM -0800, Joe Stringer escreveu: > Patch 1 fixes an issue when using drastically different BPF map definitions > inside ELFs from a client using libbpf, vs the map definition libbpf uses. > > Patches 2-4 add some simple, useful helper functions for setting prog type > and retrieving libbpf errors without depending on kernel headers from > userspace programs. > > Patches 5-7 add a new pinning functionality for maps, programs, and objects. > Library users may call bpf_map__pin(map, path) or bpf_program__pin(prog, path) > to pin maps and programs separately, or use bpf_object__pin(obj, path) to > pin all maps and programs from the BPF object to the path. The map and program > variations require a full path where it will be pinned in the filesystem, > and the object variation will create directories "maps/" and "progs/" under > the specified path, then mount each map and program under those > subdirectories.
Merged the ones either acked by Wang or adjusted by you to address Wang's remarks, the last ones introducing those __pin() methods, please provide users together with those APIs, preferably entries for 'perf test', - Arnaldo > --- > v1: Initial post. > v2: Wang Nan provided improvements to patch 1. > Dropped patch 2 from v1. > Added acks for acked patches. > Split the bpf_obj__pin() to also provide map / program pinning APIs. > Allow users to provide full filesystem path (don't autodetect/mount > BPFFS). > > Joe Stringer (7): > tools lib bpf: Fix map offsets in relocation > tools lib bpf: Define prog_type fns with macro > tools lib bpf: Add set/is helpers for all prog types > tools lib bpf: Add libbpf_get_error() > tools lib bpf: Add bpf_program__pin() > tools lib bpf: Add bpf_map__pin() > tools lib bpf: Add bpf_object__pin() > > tools/lib/bpf/libbpf.c | 240 > ++++++++++++++++++++++++++++++++++++++++++------ > tools/lib/bpf/libbpf.h | 17 +++- > tools/perf/tests/llvm.c | 2 +- > 3 files changed, 229 insertions(+), 30 deletions(-) > > -- > 2.11.0