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

Reply via email to