On Mon, Feb 20, 2017 at 05:25:58PM +0100, Jesper Dangaard Brouer wrote: > On Mon, 20 Feb 2017 16:57:34 +0100 > Daniel Borkmann <dan...@iogearbox.net> wrote: > > > On 02/20/2017 04:35 PM, Jesper Dangaard Brouer wrote: > > > It is confusing users of samples/bpf that exceeding the resource > > > limits for RLIMIT_MEMLOCK result in an "Operation not permitted" > > > message. This is due to bpf limits check return -EPERM. > > > > > > Instead return -ENOMEM, like most other users of this API. > > > > > > Fixes: aaac3ba95e4c ("bpf: charge user for creation of BPF maps and > > > programs") > > > Fixes: 6c9059817432 ("bpf: pre-allocate hash map elements") > > > Fixes: 5ccb071e97fb ("bpf: fix overflow in prog accounting") > > > > Btw, last one just moves the helper so fixes doesn't really apply > > there, but apart from that this is already uapi exposed behavior > > like this for ~1.5yrs, so unfortunately too late to change now. I > > think the original intention (arguably confusing in this context) > > was that user doesn't have (rlimit) permission to allocate this > > resource. > > This is obviously confusing end-users, thus it should be fixed IMHO.
I don't think it's confusing and I think EPERM makes the most sense as return code in such situation. There is also code in iovisor/bcc that specifically looking for EPERM to adjust ulimit. May be it's not documented properly, but that's different story.