lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 23 Sep 2020 12:58:39 -0700
From:   Alexei Starovoitov <alexei.starovoitov@...il.com>
To:     davem@...emloft.net
Cc:     daniel@...earbox.net, netdev@...r.kernel.org, bpf@...r.kernel.org,
        kernel-team@...com
Subject: pull-request: bpf-next 2020-09-23

Hi David,

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

We've added 95 non-merge commits during the last 22 day(s) which contain
a total of 124 files changed, 4211 insertions(+), 2040 deletions(-).

The main changes are:

1) Full multi function support in libbpf, from Andrii.

2) Refactoring of function argument checks, from Lorenz.

3) Make bpf_tail_call compatible with functions (subprograms), from Maciej.

4) Program metadata support, from YiFei.

5) bpf iterator optimizations, from Yonghong.

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, Björn Töpel, Jesper Dangaard Brouer, Jiri Olsa, John 
Fastabend, Josef Bacik, Kevin Yang, Martin KaFai Lau, Seth Forshee, Song 
Liu, Tirthendu Sarkar, Tobias Klauser, Yonghong Song, Yuchung Cheng

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

The following changes since commit 0697fecf7ecd8abf70d0f46e6a352818e984cc9f:

  Merge branch 'dpaa2-eth-add-a-dpaa2_eth_-prefix-to-all-functions' (2020-09-01 13:23:58 -0700)

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 dc3652d3f0d5479768ec8eb7f7aabbba6ed75d95:

  tools resolve_btfids: Always force HOSTARCH (2020-09-23 12:43:04 -0700)

----------------------------------------------------------------
Alexei Starovoitov (5):
      Merge branch 'libbpf-support-bpf-to-bpf-calls'
      Merge branch 'improve-bpf-tcp-cc-init'
      Merge branch 'bpf_metadata'
      bpf: Add abnormal return checks.
      Merge branch 'refactor-check_func_arg'

Andrii Nakryiko (18):
      libbpf: Ensure ELF symbols table is found before further ELF processing
      libbpf: Parse multi-function sections into multiple BPF programs
      libbpf: Support CO-RE relocations for multi-prog sections
      libbpf: Make RELO_CALL work for multi-prog sections and sub-program calls
      libbpf: Implement generalized .BTF.ext func/line info adjustment
      libbpf: Add multi-prog section support for struct_ops
      selftests/bpf: Add selftest for multi-prog sections and bpf-to-bpf calls
      tools/bpftool: Replace bpf_program__title() with bpf_program__section_name()
      selftests/bpf: Don't use deprecated libbpf APIs
      libbpf: Deprecate notion of BPF program "title" in favor of "section name"
      selftests/bpf: Turn fexit_bpf2bpf into test with subtests
      selftests/bpf: Add subprogs to pyperf, strobemeta, and l4lb_noinline tests
      selftests/bpf: Modernize xdp_noinline test w/ skeleton and __noinline
      selftests/bpf: Add __noinline variant of cls_redirect selftest
      libbpf: Fix another __u64 cast in printf
      libbpf: Fix potential multiplication overflow
      perf: Stop using deprecated bpf_program__title()
      selftests/bpf: Merge most of test_btf into test_progs

Chen Zhou (1):
      bpf: Remove duplicate headers

Daniel T. Lee (2):
      samples, bpf: Replace bpf_program__title() with bpf_program__section_name()
      samples, bpf: Add xsk_fwd test file to .gitignore

Gustavo A. R. Silva (1):
      xsk: Fix null check on error return path

Hao Luo (1):
      selftests/bpf: Fix check in global_data_init.

Ilya Leoshkevich (5):
      selftests/bpf: Fix test_ksyms on non-SMP kernels
      s390/bpf: Fix multiple tail calls
      selftests/bpf: Fix endianness issue in sk_assign
      selftests/bpf: Fix endianness issue in test_sockopt_sk
      samples/bpf: Fix test_map_in_map on s390

Jiri Olsa (3):
      selftests/bpf: Fix stat probe in d_path test
      bpf: Check CONFIG_BPF option for resolve_btfids
      tools resolve_btfids: Always force HOSTARCH

Lorenz Bauer (16):
      net: sockmap: Remove unnecessary sk_fullsock checks
      net: Allow iterating sockmap and sockhash
      selftests: bpf: Test iterating a sockmap
      bpf: Plug hole in struct bpf_sk_lookup_kern
      btf: Make btf_set_contains take a const pointer
      bpf: Check scalar or invalid register in check_helper_mem_access
      btf: Add BTF_ID_LIST_SINGLE macro
      bpf: Allow specifying a BTF ID per argument in function protos
      bpf: Make BTF pointer type checking generic
      bpf: Make reference tracking generic
      bpf: Make context access check generic
      bpf: Set meta->raw_mode for pointers close to use
      bpf: Check ARG_PTR_TO_SPINLOCK register type in check_func_arg
      bpf: Hoist type checking for nullable arg types
      bpf: Use a table to drive helper arg type checks
      bpf: Explicitly size compatible_reg_types

Maciej Fijalkowski (7):
      bpf, x64: use %rcx instead of %rax for tail call retpolines
      bpf: propagate poke descriptors to subprograms
      bpf: rename poke descriptor's 'ip' member to 'tailcall_target'
      bpf: Limit caller's stack depth 256 for subprogs with tailcalls
      bpf, x64: rework pro/epilogue and tailcall handling in JIT
      bpf: allow for tailcalls in BPF subprograms for x64 JIT
      selftests/bpf: Add tailcall_bpf2bpf tests

Magnus Karlsson (7):
      xsk: Fix possible segfault in xsk umem diagnostics
      xsk: Fix possible segfault at xskmap entry insertion
      xsk: Fix use-after-free in failed shared_umem bind
      samples/bpf: Fix one packet sending in xdpsock
      samples/bpf: Fix possible deadlock in xdpsock
      samples/bpf: Add quiet option to xdpsock
      xsk: Fix refcount warning in xp_dma_map

Martin KaFai Lau (1):
      bpf: Use hlist_add_head_rcu when linking to local_storage

Muchun Song (1):
      bpf: Fix potential call bpf_link_free() in atomic context

Neal Cardwell (5):
      tcp: Only init congestion control if not initialized already
      tcp: Simplify EBPF TCP_CONGESTION to always init CC
      tcp: simplify tcp_set_congestion_control(): Always reinitialize
      tcp: simplify _bpf_setsockopt(): Remove flags argument
      tcp: Simplify tcp_set_congestion_control() load=false case

Quentin Monnet (11):
      tools: bpftool: Fix formatting in bpftool-link documentation
      bpf: Fix formatting in documentation for BPF helpers
      tools, bpf: Synchronise BPF UAPI header with tools
      tools: bpftool: Log info-level messages when building bpftool man pages
      selftests, bpftool: Add bpftool (and eBPF helpers) documentation build
      tools: bpftool: Print optional built-in features along with version
      tools: bpftool: Include common options from separate file
      tools: bpftool: Clean up function to dump map entry
      tools: bpftool: Keep errors for map-of-map dumps if distinct from ENOENT
      tools: bpftool: Add "inner_map" to "bpftool map create" outer maps
      tools: bpftool: Automate generation for "SEE ALSO" sections in man pages

Song Liu (1):
      bpf: Fix comment for helper bpf_current_task_under_cgroup()

YiFei Zhu (5):
      bpf: Mutex protect used_maps array and count
      bpf: Add BPF_PROG_BIND_MAP syscall
      libbpf: Add BPF_PROG_BIND_MAP syscall and use it on .rodata section
      bpftool: Support dumping metadata
      selftests/bpf: Test load and dump metadata with btftool and skel

Yonghong Song (9):
      bpf: Avoid iterating duplicated files for task_file iterator
      selftests/bpf: Test task_file iterator without visiting pthreads
      bpf: Permit map_ptr arithmetic with opcode add and offset 0
      selftests/bpf: Add test for map_ptr arithmetic
      selftests/bpf: Fix test_sysctl_loop{1, 2} failure due to clang change
      selftests/bpf: Define string const as global for test_sysctl_prog.c
      bpftool: Fix build failure
      libbpf: Fix a compilation error with xsk.c for ubuntu 16.04
      bpf: Using rcu_read_lock for bpf_sk_storage_map iterator

 Makefile                                           |    4 +-
 arch/s390/net/bpf_jit_comp.c                       |   61 +-
 arch/x86/include/asm/nospec-branch.h               |   16 +-
 arch/x86/net/bpf_jit_comp.c                        |  265 +++-
 drivers/net/ethernet/netronome/nfp/bpf/offload.c   |   18 +-
 include/linux/bpf.h                                |   30 +-
 include/linux/bpf_verifier.h                       |    3 +
 include/linux/btf_ids.h                            |    8 +
 include/linux/filter.h                             |    4 +-
 include/net/inet_connection_sock.h                 |    3 +-
 include/net/tcp.h                                  |    2 +-
 include/uapi/linux/bpf.h                           |   98 +-
 kernel/bpf/arraymap.c                              |   55 +-
 kernel/bpf/bpf_inode_storage.c                     |    8 +-
 kernel/bpf/bpf_local_storage.c                     |    2 +-
 kernel/bpf/btf.c                                   |   15 +-
 kernel/bpf/core.c                                  |   18 +-
 kernel/bpf/stackmap.c                              |    5 +-
 kernel/bpf/syscall.c                               |   87 +-
 kernel/bpf/task_iter.c                             |   15 +-
 kernel/bpf/verifier.c                              |  540 +++++---
 kernel/trace/bpf_trace.c                           |   23 +-
 net/core/bpf_sk_storage.c                          |   40 +-
 net/core/dev.c                                     |   11 +-
 net/core/filter.c                                  |   49 +-
 net/core/sock_map.c                                |  284 +++-
 net/ipv4/bpf_tcp_ca.c                              |   19 +-
 net/ipv4/tcp.c                                     |    3 +-
 net/ipv4/tcp_cong.c                                |   27 +-
 net/ipv4/tcp_input.c                               |    4 +-
 net/xdp/xsk.c                                      |    7 +-
 net/xdp/xsk.h                                      |    1 -
 net/xdp/xsk_buff_pool.c                            |    6 +-
 net/xdp/xsk_diag.c                                 |   14 +-
 net/xdp/xskmap.c                                   |    5 -
 samples/bpf/.gitignore                             |    1 +
 samples/bpf/sockex3_user.c                         |    6 +-
 samples/bpf/spintest_user.c                        |    6 +-
 samples/bpf/test_map_in_map_kern.c                 |    7 +-
 samples/bpf/tracex5_user.c                         |    6 +-
 samples/bpf/xdp_redirect_cpu_user.c                |    2 +-
 samples/bpf/xdpsock_user.c                         |   28 +-
 scripts/link-vmlinux.sh                            |    6 +-
 tools/bpf/bpftool/Documentation/Makefile           |   15 +-
 tools/bpf/bpftool/Documentation/bpftool-btf.rst    |   37 +-
 tools/bpf/bpftool/Documentation/bpftool-cgroup.rst |   33 +-
 .../bpf/bpftool/Documentation/bpftool-feature.rst  |   33 +-
 tools/bpf/bpftool/Documentation/bpftool-gen.rst    |   37 +-
 tools/bpf/bpftool/Documentation/bpftool-iter.rst   |   27 +-
 tools/bpf/bpftool/Documentation/bpftool-link.rst   |   36 +-
 tools/bpf/bpftool/Documentation/bpftool-map.rst    |   46 +-
 tools/bpf/bpftool/Documentation/bpftool-net.rst    |   34 +-
 tools/bpf/bpftool/Documentation/bpftool-perf.rst   |   34 +-
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |   34 +-
 .../bpftool/Documentation/bpftool-struct_ops.rst   |   35 +-
 tools/bpf/bpftool/Documentation/bpftool.rst        |   34 +-
 tools/bpf/bpftool/Documentation/common_options.rst |   22 +
 tools/bpf/bpftool/bash-completion/bpftool          |   22 +-
 tools/bpf/bpftool/json_writer.c                    |    6 +
 tools/bpf/bpftool/json_writer.h                    |    3 +
 tools/bpf/bpftool/main.c                           |   33 +-
 tools/bpf/bpftool/map.c                            |  149 ++-
 tools/bpf/bpftool/prog.c                           |  203 ++-
 tools/bpf/resolve_btfids/Makefile                  |    2 +
 tools/include/linux/btf_ids.h                      |    8 +
 tools/include/uapi/linux/bpf.h                     |   98 +-
 tools/lib/bpf/bpf.c                                |   16 +
 tools/lib/bpf/bpf.h                                |    8 +
 tools/lib/bpf/btf.h                                |   18 +-
 tools/lib/bpf/libbpf.c                             | 1356 +++++++++++++-------
 tools/lib/bpf/libbpf.h                             |    5 +-
 tools/lib/bpf/libbpf.map                           |    2 +
 tools/lib/bpf/libbpf_common.h                      |    2 +
 tools/lib/bpf/xsk.c                                |    1 +
 tools/perf/util/bpf-loader.c                       |   12 +-
 tools/testing/selftests/bpf/.gitignore             |    1 -
 tools/testing/selftests/bpf/Makefile               |   10 +-
 tools/testing/selftests/bpf/flow_dissector_load.h  |    8 +-
 tools/testing/selftests/bpf/prog_tests/bpf_iter.c  |   21 +
 .../selftests/bpf/prog_tests/bpf_verif_scale.c     |    4 +
 .../selftests/bpf/{test_btf.c => prog_tests/btf.c} |  410 ++----
 .../selftests/bpf/prog_tests/cls_redirect.c        |   72 +-
 tools/testing/selftests/bpf/prog_tests/d_path.c    |   10 +
 .../selftests/bpf/prog_tests/fexit_bpf2bpf.c       |   21 +-
 .../selftests/bpf/prog_tests/global_data_init.c    |    3 +-
 tools/testing/selftests/bpf/prog_tests/ksyms.c     |    6 +-
 tools/testing/selftests/bpf/prog_tests/l4lb_all.c  |    9 +-
 tools/testing/selftests/bpf/prog_tests/metadata.c  |  141 ++
 .../selftests/bpf/prog_tests/reference_tracking.c  |    2 +-
 tools/testing/selftests/bpf/prog_tests/sk_assign.c |    2 +-
 .../selftests/bpf/prog_tests/sockmap_basic.c       |   89 ++
 .../testing/selftests/bpf/prog_tests/sockopt_sk.c  |    4 +-
 tools/testing/selftests/bpf/prog_tests/subprogs.c  |   31 +
 tools/testing/selftests/bpf/prog_tests/tailcalls.c |  332 +++++
 .../selftests/bpf/prog_tests/xdp_noinline.c        |   49 +-
 tools/testing/selftests/bpf/progs/bpf_iter.h       |    9 +
 .../testing/selftests/bpf/progs/bpf_iter_sockmap.c |   43 +
 .../testing/selftests/bpf/progs/bpf_iter_sockmap.h |    3 +
 .../selftests/bpf/progs/bpf_iter_task_file.c       |   10 +-
 tools/testing/selftests/bpf/progs/map_ptr_kern.c   |   10 +-
 .../testing/selftests/bpf/progs/metadata_unused.c  |   15 +
 tools/testing/selftests/bpf/progs/metadata_used.c  |   15 +
 tools/testing/selftests/bpf/progs/pyperf.h         |   11 +-
 .../testing/selftests/bpf/progs/pyperf_subprogs.c  |    5 +
 tools/testing/selftests/bpf/progs/strobemeta.h     |   30 +-
 .../selftests/bpf/progs/strobemeta_subprogs.c      |   10 +
 .../selftests/bpf/progs/tailcall_bpf2bpf1.c        |   38 +
 .../selftests/bpf/progs/tailcall_bpf2bpf2.c        |   41 +
 .../selftests/bpf/progs/tailcall_bpf2bpf3.c        |   61 +
 .../selftests/bpf/progs/tailcall_bpf2bpf4.c        |   61 +
 .../selftests/bpf/progs/test_cls_redirect.c        |  105 +-
 .../bpf/progs/test_cls_redirect_subprogs.c         |    2 +
 tools/testing/selftests/bpf/progs/test_d_path.c    |    9 +-
 .../selftests/bpf/progs/test_l4lb_noinline.c       |   41 +-
 tools/testing/selftests/bpf/progs/test_subprogs.c  |  103 ++
 .../selftests/bpf/progs/test_sysctl_loop1.c        |    4 +-
 .../selftests/bpf/progs/test_sysctl_loop2.c        |    4 +-
 .../testing/selftests/bpf/progs/test_sysctl_prog.c |    4 +-
 .../selftests/bpf/progs/test_xdp_noinline.c        |   36 +-
 tools/testing/selftests/bpf/test_bpftool_build.sh  |   21 +
 .../testing/selftests/bpf/test_bpftool_metadata.sh |   82 ++
 tools/testing/selftests/bpf/test_socket_cookie.c   |    2 +-
 tools/testing/selftests/bpf/verifier/calls.c       |    6 +-
 tools/testing/selftests/bpf/verifier/map_ptr.c     |   32 +
 124 files changed, 4211 insertions(+), 2040 deletions(-)
 create mode 100644 tools/bpf/bpftool/Documentation/common_options.rst
 rename tools/testing/selftests/bpf/{test_btf.c => prog_tests/btf.c} (96%)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/metadata.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/subprogs.c
 create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_sockmap.c
 create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_sockmap.h
 create mode 100644 tools/testing/selftests/bpf/progs/metadata_unused.c
 create mode 100644 tools/testing/selftests/bpf/progs/metadata_used.c
 create mode 100644 tools/testing/selftests/bpf/progs/pyperf_subprogs.c
 create mode 100644 tools/testing/selftests/bpf/progs/strobemeta_subprogs.c
 create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf1.c
 create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf2.c
 create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf3.c
 create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf4.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_cls_redirect_subprogs.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_subprogs.c
 create mode 100755 tools/testing/selftests/bpf/test_bpftool_metadata.sh

Powered by blists - more mailing lists