Hi David, The following pull-request contains BPF updates for your *net-next* tree.
It has three minor merge conflicts, resolutions: 1) tools/testing/selftests/bpf/test_verifier.c Take first chunk with alignment_prevented_execution. 2) net/core/filter.c [...] case bpf_ctx_range_ptr(struct __sk_buff, flow_keys): case bpf_ctx_range(struct __sk_buff, wire_len): return false; [...] 3) include/uapi/linux/bpf.h Take the second chunk for the two cases each. The main changes are: 1) Add support for BPF line info via BTF and extend libbpf as well as bpftool's program dump to annotate output with BPF C code to facilitate debugging and introspection, from Martin. 2) Add support for BPF_ALU | BPF_ARSH | BPF_{K,X} in interpreter and all JIT backends, from Jiong. 3) Improve BPF test coverage on archs with no efficient unaligned access by adding an "any alignment" flag to the BPF program load to forcefully disable verifier alignment checks, from David. 4) Add a new bpf_prog_test_run_xattr() API to libbpf which allows for proper use of BPF_PROG_TEST_RUN with data_out, from Lorenz. 5) Extend tc BPF programs to use a new __sk_buff field called wire_len for more accurate accounting of packets going to wire, from Petar. 6) Improve bpftool to allow dumping the trace pipe from it and add several improvements in bash completion and map/prog dump, from Quentin. 7) Optimize arm64 BPF JIT to always emit movn/movk/movk sequence for kernel addresses and add a dedicated BPF JIT backend allocator, from Ard. 8) Add a BPF helper function for IR remotes to report mouse movements, from Sean. 9) Various cleanups in BPF prog dump e.g. to make UAPI bpf_prog_info member naming consistent with existing conventions, from Yonghong and Song. 10) Misc cleanups and improvements in allowing to pass interface name via cmdline for xdp1 BPF example, from Matteo. 11) Fix a potential segfault in BPF sample loader's kprobes handling, from Daniel T. 12) Fix SPDX license in libbpf's README.rst, from Andrey. Please consider pulling these changes from: git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git Thanks a lot! ---------------------------------------------------------------- The following changes since commit 93029d7d407fa744a2de358664bd779cda694657: Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next (2018-11-29 18:15:07 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git for you to fetch changes up to aa570ff4fd3682d35cdcc5190c380e6c4d7d08e2: Merge branch 'rename-info_cnt-to-nr_info' (2018-12-10 14:51:46 -0800) ---------------------------------------------------------------- Alexei Starovoitov (8): Merge branch 'bpftool-fixes' Merge branch 'improve-test-coverage-sparc' Merge branch 'xdp1-improvements' Merge branch 'prog_test_run-improvement' Merge branch 'bpf_func_info-improvements' Merge branch 'support-alu32_arsh' Merge branch 'bpf_line_info' Merge branch 'rename-info_cnt-to-nr_info' Andrey Ignatov (1): libbpf: Fix license in README.rst Ard Biesheuvel (3): arm64/bpf: use movn/movk/movk sequence to generate kernel addresses bpf: add __weak hook for allocating executable memory arm64/bpf: don't allocate BPF JIT programs in module memory Daniel Borkmann (1): Merge branch 'bpf-jit-overridable-alloc' Daniel T. Lee (1): samples: bpf: fix: seg fault with NULL pointer arg David Miller (5): bpf: Fix verifier log string check for bad alignment. bpf: Add BPF_F_ANY_ALIGNMENT. bpf: Adjust F_NEEDS_EFFICIENT_UNALIGNED_ACCESS handling in test_verifier.c bpf: Make more use of 'any' alignment in test_verifier.c bpf: Apply F_NEEDS_EFFICIENT_UNALIGNED_ACCESS to more ACCEPT test cases. Jiong Wang (9): mips: bpf: fix encoding bug for mm_srlv32_op mips: bpf: implement jitting of BPF_ALU | BPF_ARSH | BPF_X ppc: bpf: implement jitting of BPF_ALU | BPF_ARSH | BPF_* s390: bpf: implement jitting of BPF_ALU | BPF_ARSH | BPF_* nfp: bpf: implement jitting of BPF_ALU | BPF_ARSH | BPF_* bpf: interpreter support BPF_ALU | BPF_ARSH bpf: verifier remove the rejection on BPF_ALU | BPF_ARSH selftests: bpf: update testcases for BPF_ALU | BPF_ARSH bpf: relax verifier restriction on BPF_MOV | BPF_ALU Lorenz Bauer (4): bpf: respect size hint to BPF_PROG_TEST_RUN if present tools: sync uapi/linux/bpf.h libbpf: add bpf_prog_test_run_xattr selftests: add a test for bpf_prog_test_run_xattr Martin KaFai Lau (13): bpf: Fix memleak in aux->func_info and aux->btf bpf: Improve the info.func_info and info.func_info_rec_size behavior bpf: Change insn_offset to insn_off in bpf_func_info bpf: tools: Sync uapi bpf.h for the name changes in bpf_func_info bpf: Expect !info.func_info and insn_off name changes in test_btf/libbpf/bpftool bpf: Add bpf_line_info support bpf: tools: Sync uapi bpf.h bpf: Refactor and bug fix in test_func_type in test_btf.c bpf: Add unit tests for bpf_line_info bpf: libbpf: Refactor and bug fix on the bpf_func_info loading logic bpf: libbpf: Add btf_line_info support to libbpf bpf: libbpf: bpftool: Print bpf_line_info during prog dump bpf: bpftool: Fix newline and p_err issue Matteo Croce (2): samples: bpf: improve xdp1 example samples: bpf: get ifindex from ifname Petar Penkov (1): bpf: allow BPF read access to qdisc pkt_len Quentin Monnet (7): tools: bpftool: use "/proc/self/" i.o. crafting links with getpid() tools: bpftool: fix bash completion for bpftool prog (attach|detach) tools: bpftool: fix bash completion for new map types (queue and stack) tools: bpftool: mark offloaded programs more explicitly in plain output tools: bpftool: add owner_prog_type and owner_jited to bpftool output bpf: fix documentation for eBPF helpers tools: bpftool: add a command to dump the trace pipe Sean Young (1): media: bpf: add bpf function to report mouse movement Song Liu (1): bpf: clean up bpf_prog_get_info_by_fd() Yonghong Song (3): bpf: rename *_info_cnt to nr_*_info in bpf_prog_info tools/bpf: sync kernel uapi bpf.h to tools directory tools/bpf: rename *_info_cnt to nr_*_info arch/arm64/include/asm/memory.h | 5 +- arch/arm64/net/bpf_jit_comp.c | 30 +- arch/mips/include/asm/uasm.h | 1 + arch/mips/include/uapi/asm/inst.h | 3 +- arch/mips/mm/uasm-micromips.c | 1 + arch/mips/mm/uasm-mips.c | 1 + arch/mips/mm/uasm.c | 9 +- arch/mips/net/ebpf_jit.c | 4 + arch/powerpc/include/asm/ppc-opcode.h | 2 + arch/powerpc/net/bpf_jit.h | 4 + arch/powerpc/net/bpf_jit_comp64.c | 6 + arch/s390/net/bpf_jit_comp.c | 12 + arch/x86/net/bpf_jit_comp.c | 2 + drivers/media/rc/bpf-lirc.c | 24 + drivers/net/ethernet/netronome/nfp/bpf/jit.c | 45 ++ include/linux/bpf.h | 21 + include/linux/bpf_verifier.h | 1 + include/linux/btf.h | 1 + include/linux/filter.h | 7 + include/uapi/linux/bpf.h | 150 ++-- kernel/bpf/btf.c | 2 +- kernel/bpf/core.c | 186 ++++- kernel/bpf/syscall.c | 130 +++- kernel/bpf/verifier.c | 239 ++++-- net/bpf/test_run.c | 15 +- net/core/filter.c | 16 + samples/bpf/bpf_load.c | 4 +- samples/bpf/xdp1_user.c | 27 +- tools/bpf/bpftool/Documentation/bpftool-prog.rst | 31 +- tools/bpf/bpftool/bash-completion/bpftool | 86 ++- tools/bpf/bpftool/btf_dumper.c | 64 ++ tools/bpf/bpftool/common.c | 7 +- tools/bpf/bpftool/jit_disasm.c | 34 +- tools/bpf/bpftool/main.h | 49 +- tools/bpf/bpftool/map.c | 50 +- tools/bpf/bpftool/prog.c | 149 ++-- tools/bpf/bpftool/tracelog.c | 157 ++++ tools/bpf/bpftool/xlated_dumper.c | 34 +- tools/bpf/bpftool/xlated_dumper.h | 7 +- tools/include/uapi/linux/bpf.h | 63 +- tools/lib/bpf/Build | 2 +- tools/lib/bpf/README.rst | 2 +- tools/lib/bpf/bpf.c | 124 +++- tools/lib/bpf/bpf.h | 24 +- tools/lib/bpf/bpf_prog_linfo.c | 253 +++++++ tools/lib/bpf/btf.c | 344 +++++---- tools/lib/bpf/btf.h | 25 +- tools/lib/bpf/libbpf.c | 159 ++-- tools/lib/bpf/libbpf.h | 13 + tools/lib/bpf/libbpf.map | 5 + tools/testing/selftests/bpf/bpf_helpers.h | 2 + tools/testing/selftests/bpf/test_align.c | 4 +- tools/testing/selftests/bpf/test_btf.c | 820 ++++++++++++++++++--- tools/testing/selftests/bpf/test_lirc_mode2.sh | 3 +- tools/testing/selftests/bpf/test_lirc_mode2_kern.c | 3 + tools/testing/selftests/bpf/test_lirc_mode2_user.c | 65 +- tools/testing/selftests/bpf/test_progs.c | 55 +- tools/testing/selftests/bpf/test_verifier.c | 176 ++++- 58 files changed, 3076 insertions(+), 682 deletions(-) create mode 100644 tools/bpf/bpftool/tracelog.c create mode 100644 tools/lib/bpf/bpf_prog_linfo.c