On Fri, Nov 8, 2019 at 4:01 PM Toke Høiland-Jørgensen <toke@xxxxxxxxxx> wrote: > > From: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> > > When loading an eBPF program, libbpf overrides the return code for EPERM > errors instead of returning it to the caller. This makes it hard to figure > out what went wrong on load. > > In particular, EPERM is returned when the system rlimit is too low to lock > the memory required for the BPF program. Previously, this was somewhat > obscured because the rlimit error would be hit on map creation (which does > return it correctly). However, since maps can now be reused, object load > can proceed all the way to loading programs without hitting the error; > propagating it even in this case makes it possible for the caller to react > appropriately (and, e.g., attempt to raise the rlimit before retrying). > > Acked-by: David S. Miller <davem@xxxxxxxxxxxxx> > Acked-by: Song Liu <songliubraving@xxxxxx> > Signed-off-by: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> > --- Acked-by: Andrii Nakryiko <andriin@xxxxxx> > tools/lib/bpf/libbpf.c | 27 +++++++++++---------------- > 1 file changed, 11 insertions(+), 16 deletions(-) > [...]