mbox series

pull-request: bpf-next 2021-05-19

Message ID 20210519195159.41380-1-alexei.starovoitov@gmail.com (mailing list archive)
State Accepted
Delegated to: Netdev Maintainers
Headers show
Series pull-request: bpf-next 2021-05-19 | expand

Pull-request

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

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Message

Alexei Starovoitov May 19, 2021, 7:51 p.m. UTC
Hi David, hi Jakub,

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

We've added 43 non-merge commits during the last 11 day(s) which contain
a total of 74 files changed, 3717 insertions(+), 578 deletions(-).

The main changes are:

1) syscall program type, fd array, and light skeleton, from Alexei.

2) Stop emitting static variables in skeleton, from Andrii.

3) Low level tc-bpf api, from Kumar.

4) Reduce verifier kmalloc/kfree churn, from Lorenz.

Please consider pulling these changes from:

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

Thanks a lot!

Also thanks to reporters, reviewers and testers of commits in this pull-request:

Andrii Nakryiko, Edward Cree, John Fastabend, Song Liu, Toke 
Høiland-Jørgensen, Willem de Bruijn, Yonghong Song

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

The following changes since commit b741596468b010af2846b75f5e75a842ce344a6e:

  Merge tag 'riscv-for-linus-5.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux (2021-05-08 11:52:37 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 3a2daa7248647c0e5e165140553f9af5006e93a2:

  bpf: Make some symbols static (2021-05-19 10:47:43 -0700)

----------------------------------------------------------------
Alexei Starovoitov (23):
      Merge branch 'Reduce kmalloc / kfree churn in the verifier'
      bpf: Introduce bpf_sys_bpf() helper and program type.
      bpf: Introduce bpfptr_t user/kernel pointer.
      bpf: Prepare bpf syscall to be used from kernel and user space.
      libbpf: Support for syscall program type
      selftests/bpf: Test for syscall program type
      bpf: Make btf_load command to be bpfptr_t compatible.
      selftests/bpf: Test for btf_load command.
      bpf: Introduce fd_idx
      bpf: Add bpf_btf_find_by_name_kind() helper.
      bpf: Add bpf_sys_close() helper.
      libbpf: Change the order of data and text relocations.
      libbpf: Add bpf_object pointer to kernel_supports().
      libbpf: Preliminary support for fd_idx
      libbpf: Generate loader program out of BPF ELF file.
      libbpf: Cleanup temp FDs when intermediate sys_bpf fails.
      libbpf: Introduce bpf_map__initial_value().
      bpftool: Use syscall/loader program in "prog load" and "gen skeleton" command.
      selftests/bpf: Convert few tests to light skeleton.
      selftests/bpf: Convert atomics test to light skeleton.
      selftests/bpf: Convert test printk to use rodata.
      selftests/bpf: Convert test trace_printk to lskel.
      bpf: Add cmd alias BPF_PROG_RUN

Andrii Nakryiko (9):
      bpftool: Strip const/volatile/restrict modifiers from .bss and .data vars
      libbpf: Add per-file linker opts
      selftests/bpf: Stop using static variables for passing data to/from user-space
      bpftool: Stop emitting static variables in BPF skeleton
      libbpf: Fix ELF symbol visibility update logic
      libbpf: Treat STV_INTERNAL same as STV_HIDDEN for functions
      selftests/bpf: Validate skeleton gen handles skipped fields
      libbpf: Reject static maps
      libbpf: Reject static entry-point BPF programs

Cong Wang (1):
      skmsg: Remove unused parameters of sk_msg_wait_data()

Daniel Borkmann (1):
      Merge branch 'bpf-loader-progs'

Dongseok Yi (1):
      bpf: Check for BPF_F_ADJ_ROOM_FIXED_GSO when bpf_skb_change_proto

Hailong Liu (1):
      samples, bpf: Suppress compiler warning

Kumar Kartikeya Dwivedi (3):
      libbpf: Add various netlink helpers
      libbpf: Add low level TC-BPF management API
      libbpf: Add selftests for TC-BPF management API

Lorenz Bauer (3):
      bpf: verifier: Improve function state reallocation
      bpf: verifier: Use copy_array for jmp_history
      bpf: verifier: Allocate idmap scratch in verifier env

Pu Lehui (1):
      bpf: Make some symbols static

Tiezhu Yang (2):
      bpf, arm64: Replace STACK_ALIGN() with round_up() to align stack size
      bpf, arm64: Remove redundant switch case about BPF_DIV and BPF_MOD

 arch/arm64/net/bpf_jit_comp.c                      |  19 +-
 include/linux/bpf.h                                |  19 +-
 include/linux/bpf_types.h                          |   2 +
 include/linux/bpf_verifier.h                       |   9 +
 include/linux/bpfptr.h                             |  75 +++
 include/linux/btf.h                                |   2 +-
 include/linux/skmsg.h                              |   3 +-
 include/uapi/linux/bpf.h                           |  39 +-
 kernel/bpf/bpf_iter.c                              |  13 +-
 kernel/bpf/btf.c                                   |  70 +-
 kernel/bpf/syscall.c                               | 194 ++++--
 kernel/bpf/verifier.c                              | 345 +++++-----
 net/bpf/test_run.c                                 |  45 +-
 net/core/filter.c                                  |  22 +-
 net/core/skmsg.c                                   |   3 +-
 net/ipv4/tcp_bpf.c                                 |   9 +-
 net/ipv4/udp_bpf.c                                 |   8 +-
 samples/bpf/task_fd_query_user.c                   |   2 +-
 tools/bpf/bpftool/Makefile                         |   2 +-
 tools/bpf/bpftool/gen.c                            | 394 ++++++++++-
 tools/bpf/bpftool/main.c                           |   7 +-
 tools/bpf/bpftool/main.h                           |   1 +
 tools/bpf/bpftool/prog.c                           | 107 ++-
 tools/bpf/bpftool/xlated_dumper.c                  |   3 +
 tools/include/uapi/linux/bpf.h                     |  39 +-
 tools/lib/bpf/Build                                |   2 +-
 tools/lib/bpf/bpf_gen_internal.h                   |  41 ++
 tools/lib/bpf/gen_loader.c                         | 729 +++++++++++++++++++++
 tools/lib/bpf/libbpf.c                             | 427 +++++++++---
 tools/lib/bpf/libbpf.h                             |  67 +-
 tools/lib/bpf/libbpf.map                           |   7 +
 tools/lib/bpf/libbpf_internal.h                    |   2 +
 tools/lib/bpf/linker.c                             |  18 +-
 tools/lib/bpf/netlink.c                            | 568 +++++++++++++---
 tools/lib/bpf/nlattr.h                             |  48 ++
 tools/lib/bpf/skel_internal.h                      | 123 ++++
 tools/testing/selftests/bpf/.gitignore             |   1 +
 tools/testing/selftests/bpf/Makefile               |  16 +-
 tools/testing/selftests/bpf/prog_tests/atomics.c   |  72 +-
 .../selftests/bpf/prog_tests/fentry_fexit.c        |   6 +-
 .../testing/selftests/bpf/prog_tests/fentry_test.c |  10 +-
 .../testing/selftests/bpf/prog_tests/fexit_sleep.c |   6 +-
 .../testing/selftests/bpf/prog_tests/fexit_test.c  |  10 +-
 .../testing/selftests/bpf/prog_tests/kfunc_call.c  |   6 +-
 .../selftests/bpf/prog_tests/ksyms_module.c        |   2 +-
 tools/testing/selftests/bpf/prog_tests/ringbuf.c   |   8 +-
 .../testing/selftests/bpf/prog_tests/send_signal.c |   2 +-
 tools/testing/selftests/bpf/prog_tests/skeleton.c  |   6 +-
 .../selftests/bpf/prog_tests/static_linked.c       |   9 +-
 tools/testing/selftests/bpf/prog_tests/syscall.c   |  55 ++
 tools/testing/selftests/bpf/prog_tests/tc_bpf.c    | 395 +++++++++++
 .../selftests/bpf/prog_tests/trace_printk.c        |   5 +-
 .../selftests/bpf/progs/bpf_iter_test_kern4.c      |   4 +-
 tools/testing/selftests/bpf/progs/kfree_skb.c      |   4 +-
 tools/testing/selftests/bpf/progs/linked_maps1.c   |   2 +-
 tools/testing/selftests/bpf/progs/syscall.c        | 121 ++++
 tools/testing/selftests/bpf/progs/tailcall3.c      |   2 +-
 tools/testing/selftests/bpf/progs/tailcall4.c      |   2 +-
 tools/testing/selftests/bpf/progs/tailcall5.c      |   2 +-
 .../selftests/bpf/progs/tailcall_bpf2bpf2.c        |   2 +-
 .../selftests/bpf/progs/tailcall_bpf2bpf4.c        |   2 +-
 tools/testing/selftests/bpf/progs/test_check_mtu.c |   4 +-
 .../selftests/bpf/progs/test_cls_redirect.c        |   4 +-
 .../selftests/bpf/progs/test_global_func_args.c    |   2 +-
 .../testing/selftests/bpf/progs/test_rdonly_maps.c |   6 +-
 tools/testing/selftests/bpf/progs/test_ringbuf.c   |   4 +-
 tools/testing/selftests/bpf/progs/test_skeleton.c  |   4 +-
 .../selftests/bpf/progs/test_snprintf_single.c     |   2 +-
 .../selftests/bpf/progs/test_sockmap_listen.c      |   4 +-
 .../selftests/bpf/progs/test_static_linked1.c      |  10 +-
 .../selftests/bpf/progs/test_static_linked2.c      |  10 +-
 tools/testing/selftests/bpf/progs/test_subprogs.c  |  13 +
 tools/testing/selftests/bpf/progs/test_tc_bpf.c    |  12 +
 tools/testing/selftests/bpf/progs/trace_printk.c   |   6 +-
 74 files changed, 3717 insertions(+), 578 deletions(-)
 create mode 100644 include/linux/bpfptr.h
 create mode 100644 tools/lib/bpf/bpf_gen_internal.h
 create mode 100644 tools/lib/bpf/gen_loader.c
 create mode 100644 tools/lib/bpf/skel_internal.h
 create mode 100644 tools/testing/selftests/bpf/prog_tests/syscall.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_bpf.c
 create mode 100644 tools/testing/selftests/bpf/progs/syscall.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_tc_bpf.c