linux-stable/tools/bpf/bpftool
Yonghong Song ac4e0e055f tools/bpftool: move set_max_rlimit() before __bpf_object__open_xattr()
For a host which has a lower rlimit for max locked memory (e.g., 64KB),
the following error occurs in one of our production systems:
  # /usr/sbin/bpftool prog load /paragon/pods/52877437/home/mark.o \
    /sys/fs/bpf/paragon_mark_21 type cgroup/skb \
    map idx 0 pinned /sys/fs/bpf/paragon_map_21
  libbpf: Error in bpf_object__probe_name():Operation not permitted(1).
    Couldn't load basic 'r0 = 0' BPF program.
  Error: failed to open object file

The reason is due to low locked memory during bpf_object__probe_name()
which probes whether program name is supported in kernel or not
during __bpf_object__open_xattr().

bpftool program load already tries to relax mlock rlimit before
bpf_object__load(). Let us move set_max_rlimit() before
__bpf_object__open_xattr(), which fixed the issue here.

Fixes: 47eff61777 ("bpf, libbpf: introduce bpf_object__probe_caps to test BPF capabilities")
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2019-05-16 11:44:50 -07:00
..
bash-completion bpftool: fix indendation in bash-completion/bpftool 2019-04-25 21:45:14 -07:00
Documentation bpftool/docs: add btf sub-command documentation 2019-04-25 21:45:14 -07:00
.gitignore bpftool: exclude bash-completion/bpftool from .gitignore pattern 2019-05-04 23:43:57 -07:00
btf.c bpftool: add ability to dump BTF types 2019-04-25 21:45:14 -07:00
btf_dumper.c bpf: bpftool support for dumping data/bss/rodata sections 2019-04-09 17:05:47 -07:00
cfg.c tools: bpftool: teach cfg code about JMP32 2019-01-26 13:33:01 -08:00
cfg.h tools: bpftool: replace Netronome boilerplate with SPDX license headers 2018-12-13 12:08:44 +01:00
cgroup.c bpftool: Support sysctl hook 2019-04-16 19:45:47 -07:00
common.c tools: bpftool: fix crash with un-owned prog arrays 2019-01-28 23:59:46 +01:00
feature.c bpftool: feature probing, change default action 2019-01-24 10:47:52 +01:00
jit_disasm.c tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
json_writer.c tools: bpftool: Cleanup license mess 2019-01-18 15:26:54 -08:00
json_writer.h tools: bpftool: Cleanup license mess 2019-01-18 15:26:54 -08:00
main.c bpftool: add ability to dump BTF types 2019-04-25 21:45:14 -07:00
main.h bpftool: add ability to dump BTF types 2019-04-25 21:45:14 -07:00
Makefile tools/bpf: properly account for libbfd variations 2019-01-16 00:53:48 +01:00
map.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-05-02 22:14:21 -04:00
map_perf_ring.c tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
net.c bpftool: show flow_dissector attachment status 2019-04-25 23:49:06 +02:00
netlink_dumper.c tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
netlink_dumper.h tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
perf.c tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
prog.c tools/bpftool: move set_max_rlimit() before __bpf_object__open_xattr() 2019-05-16 11:44:50 -07:00
tracelog.c tools: bpftool: add an option to prevent auto-mount of bpffs, tracefs 2018-12-18 14:47:17 +01:00
xlated_dumper.c bpf: implement lookup-free direct value access for maps 2019-04-09 17:05:46 -07:00
xlated_dumper.h tools: bpftool: replace Netronome boilerplate with SPDX license headers 2018-12-13 12:08:44 +01:00