On Wed, Jan 3, 2024 at 10:54 AM Barret Rhoden <brho@xxxxxxxxxx> wrote: > > bpf_map__mmap_size() was internal to bpftool. Use that to make wrappers > for mmap and munmap. > > Signed-off-by: Barret Rhoden <brho@xxxxxxxxxx> > --- > tools/bpf/bpftool/gen.c | 16 +++------------- > tools/lib/bpf/libbpf.c | 18 ++++++++++++++++++ > tools/lib/bpf/libbpf.h | 6 ++++++ > tools/lib/bpf/libbpf.map | 4 ++++ > 4 files changed, 31 insertions(+), 13 deletions(-) > There is very little added value provided by these APIs, while adding API obligations. bpf_map__mmap() assumes READ/WRITE access, why? What if the user needs only read-only? And so on. Please drop this patch, we don't need to expose these functions as stable APIs. Definitely not bpf_map__mmap/munmap. bpf_map__mmap_size() might be useful to hide various per-map type details, but we'll need to discuss all this separately. > diff --git a/tools/bpf/bpftool/gen.c b/tools/bpf/bpftool/gen.c > index ee3ce2b8000d..a328e960c141 100644 > --- a/tools/bpf/bpftool/gen.c > +++ b/tools/bpf/bpftool/gen.c > @@ -453,16 +453,6 @@ static void print_hex(const char *data, int data_sz) > } > } > > -static size_t bpf_map_mmap_sz(const struct bpf_map *map) > -{ > - long page_sz = sysconf(_SC_PAGE_SIZE); > - size_t map_sz; > - > - map_sz = (size_t)roundup(bpf_map__value_size(map), 8) * bpf_map__max_entries(map); this is specifically ARRAY map's rules, it might differ for other map types (e.g., RINGBUF has different logic) > - map_sz = roundup(map_sz, page_sz); > - return map_sz; > -} > - [...]