On Mon, Feb 12, 2024 at 10:12 AM Eduard Zingerman <eddyz87@xxxxxxxxx> wrote: > > On Thu, 2024-02-08 at 20:06 -0800, Alexei Starovoitov wrote: > [...] > > > @@ -9830,8 +9861,8 @@ int bpf_map__set_value_size(struct bpf_map *map, __u32 size) > > int err; > > size_t mmap_old_sz, mmap_new_sz; > > > > - mmap_old_sz = bpf_map_mmap_sz(map->def.value_size, map->def.max_entries); > > - mmap_new_sz = bpf_map_mmap_sz(size, map->def.max_entries); > > + mmap_old_sz = bpf_map_mmap_sz(map); > > + mmap_new_sz = __bpf_map_mmap_sz(size, map->def.max_entries); > > err = bpf_map_mmap_resize(map, mmap_old_sz, mmap_new_sz); > > if (err) { > > pr_warn("map '%s': failed to resize memory-mapped region: %d\n", > > I think that as is bpf_map__set_value_size() won't work for arenas. It doesn't and doesn't work for ringbuf either. I guess we can add a filter by map type, but I'm not sure how big this can of worms (extra checks) will be. There are probably many libbpf apis that can be misused. Like bpf_map__set_type()