Subject: pull-request: bpf-next 2018-01-19

From: Alexei Starovoitov <[email-masked]>
Date: Fri, 19 Jan 2018 21:12:29 -0800

Hi David,

The following pull-request contains BPF updates for your *net-next* tree.

The main changes are:

1) bpf array map HW offload, from Jakub.

2) support for bpf_get_next_key() for LPM map, from Yonghong.

3) test_verifier now runs loaded programs, from Alexei.

4) xdp cpumap monitoring, from Jesper.

5) variety of tests, cleanups and small x64 JIT optimization, from Daniel.

6) user space can now retrieve HW JITed program, from Jiong.

Please consider pulling these changes from:

  git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git

Note there is a minor conflict between Russell's arm32 JIT fixes
and removal of bpf_jit_enable variable by Daniel which should
be resolved by keeping Russell's comment and removing that variable.

Thanks a lot!

----------------------------------------------------------------

The following changes since commit 4f7d58517f461aa6e7b7509668f04021e089323d:

  Merge tag 'linux-can-next-for-4.16-20180116' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next (2018-01-17 16:08:25 -0500)

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 1391040b6570584c177a238eeac01930beabbaa4:

  Merge branch 'bpf-misc-improvements' (2018-01-19 18:37:02 -0800)

----------------------------------------------------------------
Alexei Starovoitov (3):
      bpf: allow socket_filter programs to use bpf_prog_test_run
      selftests/bpf: make test_verifier run most programs
      Merge branch 'bpf-misc-improvements'

Dan Carpenter (1):
      tools/bpf_jit_disasm: silence a static checker warning

Daniel Borkmann (13):
      Merge branch 'bpf-dump-and-disasm-nfp-jit'
      Merge branch 'bpf-improve-test-verifier-coverage'
      Merge branch 'bpf-array-map-offload-and-tests'
      Merge branch 'bpf-lpm-get-next-key'
      bpf, verifier: detect misconfigured mem, size argument pair
      bpf: add csum_diff helper to xdp as well
      bpf: add couple of test cases for signed extended imms
      bpf: add couple of test cases for div/mod by zero
      bpf: get rid of pure_initcall dependency to enable jits
      bpf: restrict access to core bpf sysctls
      bpf, x86: small optimization in alu ops with imm
      bpf: add upper complexity limit to verifier log
      bpf: move event_output to const_size_or_zero for xdp/skb as well

Jakub Kicinski (8):
      bpf: arraymap: move checks out of alloc function
      bpf: arraymap: use bpf_map_init_from_attr()
      bpf: offload: allow array map offload
      bpf: offload: report device information about offloaded maps
      tools: bpftool: report device information for offloaded maps
      netdevsim: bpf: support fake map offload
      selftest/bpf: extend the offload test with map checks
      nfp: bpf: add short busy wait for FW replies

Jesper Dangaard Brouer (4):
      samples/bpf: xdp2skb_meta comment explain why pkt-data pointers are invalidated
      bpf: add comments to BPF ld/ldx sizes
      bpf: Sync kernel ABI header with tooling header
      samples/bpf: xdp_monitor include cpumap tracepoints in monitoring

Jiong Wang (3):
      bpf: add new jited info fields in bpf_dev_offload and bpf_prog_info
      nfp: bpf: set new jit info fields
      tools: bpftool: improve architecture detection by using ifindex

Roman Gushchin (1):
      bpftool: recognize BPF_MAP_TYPE_CPUMAP maps

Shuah Khan (1):
      selftests: bpf: update .gitignore with missing generated files

Yonghong Song (3):
      bpf: change fake_ip for bpf_trace_printk helper
      bpf: implement MAP_GET_NEXT_KEY command for LPM_TRIE map
      tools/bpf: add a testcase for MAP_GET_NEXT_KEY command of LPM_TRIE map

 arch/arm/net/bpf_jit_32.c                        |   2 -
 arch/arm64/net/bpf_jit_comp.c                    |   2 -
 arch/mips/net/bpf_jit.c                          |   2 -
 arch/mips/net/ebpf_jit.c                         |   2 -
 arch/powerpc/net/bpf_jit_comp.c                  |   2 -
 arch/powerpc/net/bpf_jit_comp64.c                |   2 -
 arch/s390/net/bpf_jit_comp.c                     |   2 -
 arch/sparc/net/bpf_jit_comp_32.c                 |   2 -
 arch/sparc/net/bpf_jit_comp_64.c                 |   2 -
 arch/x86/net/bpf_jit_comp.c                      |  37 +-
 drivers/net/ethernet/netronome/nfp/bpf/cmsg.c    |   9 +-
 drivers/net/ethernet/netronome/nfp/bpf/offload.c |  12 +-
 drivers/net/netdevsim/bpf.c                      | 246 ++++++++++++++
 drivers/net/netdevsim/netdevsim.h                |   3 +
 include/linux/bpf.h                              |   4 +
 include/uapi/linux/bpf.h                         |   5 +-
 include/uapi/linux/bpf_common.h                  |   7 +-
 kernel/bpf/arraymap.c                            |  49 +--
 kernel/bpf/core.c                                |  19 +-
 kernel/bpf/lpm_trie.c                            |  95 +++++-
 kernel/bpf/offload.c                             |  81 ++++-
 kernel/bpf/syscall.c                             |  39 ++-
 kernel/bpf/verifier.c                            |  82 +++--
 kernel/trace/bpf_trace.c                         |   2 +-
 lib/test_bpf.c                                   | 104 ++++++
 net/core/filter.c                                |   7 +-
 net/core/sysctl_net_core.c                       |  60 +++-
 net/socket.c                                     |   9 -
 samples/bpf/xdp2skb_meta_kern.c                  |   8 +-
 samples/bpf/xdp_monitor_kern.c                   |  94 ++++-
 samples/bpf/xdp_monitor_user.c                   | 416 +++++++++++++++++++----
 tools/bpf/bpf_jit_disasm.c                       |   7 +-
 tools/bpf/bpftool/common.c                       |  72 ++++
 tools/bpf/bpftool/jit_disasm.c                   |  16 +-
 tools/bpf/bpftool/main.h                         |   5 +-
 tools/bpf/bpftool/map.c                          |   8 +-
 tools/bpf/bpftool/prog.c                         |  12 +-
 tools/include/uapi/linux/bpf.h                   |  15 +-
 tools/testing/selftests/bpf/.gitignore           |   7 +
 tools/testing/selftests/bpf/Makefile             |   3 +-
 tools/testing/selftests/bpf/sample_map_ret0.c    |  34 ++
 tools/testing/selftests/bpf/test_lpm_map.c       | 122 +++++++
 tools/testing/selftests/bpf/test_offload.py      | 206 +++++++++--
 tools/testing/selftests/bpf/test_verifier.c      | 137 +++++++-
 44 files changed, 1828 insertions(+), 222 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/sample_map_ret0.c