Merge branch 'support-global-data'
Daniel Borkmann says: ==================== This series is a major rework of previously submitted libbpf patches [0] in order to add global data support for BPF. The kernel has been extended to add proper infrastructure that allows for full .bss/.data/.rodata sections on BPF loader side based upon feedback from LPC discussions [1]. Latter support is then also added into libbpf in this series which allows for more natural C-like programming of BPF programs. For more information on loader, please refer to 'bpf, libbpf: support global data/bss/ rodata sections' patch in this series. Thanks a lot! v5 -> v6: - Removed synchronize_rcu() from map freeze (Jann) - Rest as-is v4 -> v5: - Removed index selection again for ldimm64 (Alexei) - Adapted related test cases and added new ones to test rejection of off != 0 v3 -> v4: - Various fixes in BTF verification e.g. to disallow Var and DataSec to be an intermediate type during resolve (Martin) - More BTF test cases added - Few cleanups in key-less BTF commit (Martin) - Bump libbpf minor version from 2 to 3 - Renamed and simplified read-only locking - Various minor improvements all over the place v2 -> v3: - Implement BTF support in kernel, libbpf, bpftool, add tests - Fix idx + off conversion (Andrii) - Document lower / higher bits for direct value access (Andrii) - Add tests with small value size (Andrii) - Add index selection into ldimm64 (Andrii) - Fix missing fdput() (Jann) - Reject invalid flags in BPF_F_*_PROG (Jakub) - Complete rework of libbpf support, includes: - Add objname to map name (Stanislav) - Make .rodata map full read-only after setup (Andrii) - Merge relocation handling into single one (Andrii) - Store global maps into obj->maps array (Andrii, Alexei) - Debug message when skipping section (Andrii) - Reject non-static global data till we have semantics for sharing them (Yonghong, Andrii, Alexei) - More test cases and completely reworked prog test (Alexei) - Fixes, cleanups, etc all over the set - Not yet addressed: - Make BTF mandatory for these maps (Alexei) -> Waiting till BTF support for these lands first v1 -> v2: - Instead of 32-bit static data, implement full global data support (Alexei) [0] https://patchwork.ozlabs.org/cover/1040290/ [1] http://vger.kernel.org/lpc-bpf2018.html#session-3 ==================== Signed-off-by:Alexei Starovoitov <ast@kernel.org>
Showing
- Documentation/bpf/btf.rst 57 additions, 0 deletionsDocumentation/bpf/btf.rst
- include/linux/bpf.h 37 additions, 1 deletioninclude/linux/bpf.h
- include/linux/bpf_verifier.h 4 additions, 0 deletionsinclude/linux/bpf_verifier.h
- include/linux/btf.h 1 addition, 0 deletionsinclude/linux/btf.h
- include/uapi/linux/bpf.h 18 additions, 2 deletionsinclude/uapi/linux/bpf.h
- include/uapi/linux/btf.h 28 additions, 4 deletionsinclude/uapi/linux/btf.h
- kernel/bpf/arraymap.c 51 additions, 2 deletionskernel/bpf/arraymap.c
- kernel/bpf/btf.c 398 additions, 21 deletionskernel/bpf/btf.c
- kernel/bpf/core.c 2 additions, 1 deletionkernel/bpf/core.c
- kernel/bpf/disasm.c 3 additions, 2 deletionskernel/bpf/disasm.c
- kernel/bpf/hashtab.c 3 additions, 3 deletionskernel/bpf/hashtab.c
- kernel/bpf/local_storage.c 3 additions, 3 deletionskernel/bpf/local_storage.c
- kernel/bpf/lpm_trie.c 2 additions, 1 deletionkernel/bpf/lpm_trie.c
- kernel/bpf/queue_stack_maps.c 3 additions, 3 deletionskernel/bpf/queue_stack_maps.c
- kernel/bpf/syscall.c 104 additions, 27 deletionskernel/bpf/syscall.c
- kernel/bpf/verifier.c 110 additions, 22 deletionskernel/bpf/verifier.c
- tools/bpf/bpftool/btf_dumper.c 59 additions, 0 deletionstools/bpf/bpftool/btf_dumper.c
- tools/bpf/bpftool/map.c 6 additions, 4 deletionstools/bpf/bpftool/map.c
- tools/bpf/bpftool/xlated_dumper.c 3 additions, 0 deletionstools/bpf/bpftool/xlated_dumper.c
- tools/include/linux/filter.h 20 additions, 1 deletiontools/include/linux/filter.h
Please register or sign in to comment