pull-request: bpf-next 2021-07-30

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi David, hi Jakub,

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

We've added 64 non-merge commits during the last 15 day(s) which contain
a total of 83 files changed, 5027 insertions(+), 1808 deletions(-).

The main changes are:

1) BTF-guided binary data dumping libbpf API, from Alan.

2) Internal factoring out of libbpf CO-RE relocation logic, from Alexei.

3) Ambient BPF run context and cgroup storage cleanup, from Andrii.

4) Few small API additions for libbpf 1.0 effort, from Evgeniy and Hengqi.

5) bpf_program__attach_kprobe_opts() fixes in libbpf, from Jiri.

6) bpf_{get,set}sockopt() support in BPF iterators, from Martin.

7) BPF map pinning improvements in libbpf, from Martynas.

8) Improved module BTF support in libbpf and bpftool, from Quentin.

9) Bpftool cleanups and documentation improvements, from Quentin.

10) Libbpf improvements for supporting CO-RE on old kernels, from Shuyi.

11) Increased maximum cgroup storage size, from Stanislav.

12) Small fixes and improvements to BPF tests and samples, from various folks.

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:

Alan Maguire, Andrii Nakryiko, Eric Dumazet, Jakub Sitnicki, John 
Fastabend, Kuniyuki Iwashima, Linux Kernel Functional Testing, Martin 
KaFai Lau, Naresh Kamboju, Song Liu, Yonghong Song

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

The following changes since commit d4861fc6be581561d6964700110a4dede54da6a6:

  netdevsim: Add multi-queue support (2021-07-16 11:17:56 -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 ab0720ce227cc54a2b841dc3c926ed83a819e4fb:

  Merge branch 'tools: bpftool: update, synchronise and validate types and options' (2021-07-30 15:40:28 -0700)

----------------------------------------------------------------
Alan Maguire (9):
      libbpf: BTF dumper support for typed data
      selftests/bpf: Add ASSERT_STRNEQ() variant for test_progs
      selftests/bpf: Add dump type data tests to btf dump tests
      libbpf: Clarify/fix unaligned data issues for btf typed dump
      libbpf: Fix compilation errors on ppc64le for btf dump typed data
      libbpf: Btf typed dump does not need to allocate dump data
      libbpf: Avoid use of __int128 in typed dump display
      selftests/bpf: Add __int128-specific tests for typed data dump
      libbpf: Propagate errors when retrieving enum value for typed data display

Alexei Starovoitov (4):
      libbpf: Cleanup the layering between CORE and bpf_program.
      libbpf: Split bpf_core_apply_relo() into bpf_program independent helper.
      libbpf: Move CO-RE types into relo_core.h.
      libbpf: Split CO-RE logic into relo_core.c.

Andrii Nakryiko (9):
      bpf: Add ambient BPF runtime context stored in current
      Merge branch 'Add btf_custom_path in bpf_obj_open_opts'
      Merge branch 'libbpf: BTF dumper support for typed data'
      Merge branch 'libbpf: BTF typed dump cleanups'
      Merge branch 'libbpf: btf typed data dumping fixes (__int128 usage, error propagation)'
      Merge branch 'bpf: Allow bpf tcp iter to do bpf_(get|set)sockopt'
      Merge branch 'libbpf: Move CO-RE logic into separate file.'
      Merge branch 'libbpf: rename btf__get_from_id() and btf__load() APIs, support split BTF'
      Merge branch 'tools: bpftool: update, synchronise and validate types and options'

Arnd Bergmann (1):
      bpf: Fix pointer cast warning

Colin Ian King (1):
      bpf: Remove redundant intiialization of variable stype

Cong Wang (1):
      unix_bpf: Fix a potential deadlock in unix_dgram_bpf_recvmsg()

Evgeniy Litvinenko (2):
      libbpf: Add bpf_map__pin_path function
      selftests/bpf: Document vmtest.sh dependencies

Hengqi Chen (2):
      tools/resolve_btfids: Emit warnings and patch zero id for missing symbols
      libbpf: Add btf__load_vmlinux_btf/btf__load_module_btf

Jason Wang (1):
      libbpf: Fix comment typo

Jiri Olsa (3):
      libbpf: Fix func leak in attach_kprobe
      libbpf: Allow decimal offset for kprobes
      libbpf: Export bpf_program__attach_kprobe_opts function

Johan Almbladh (2):
      bpf/tests: Fix copy-and-paste error in double word test
      bpf/tests: Do not PASS tests without actually testing the result

John Fastabend (1):
      bpf, selftests: Fix test_maps now that sockmap supports UDP

Juhee Kang (2):
      samples: bpf: Fix tracex7 error raised on the missing argument
      samples: bpf: Add the omitted xdp samples to .gitignore

Jussi Maki (1):
      selftests/bpf: Use ping6 only if available in tc_redirect

Martin KaFai Lau (8):
      tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos
      tcp: seq_file: Refactor net and family matching
      bpf: tcp: seq_file: Remove bpf_seq_afinfo from tcp_iter_state
      tcp: seq_file: Add listening_get_first()
      tcp: seq_file: Replace listening_hash with lhash2
      bpf: tcp: Bpf iter batching and lock_sock
      bpf: tcp: Support bpf_(get|set)sockopt in bpf tcp iter
      bpf: selftest: Test batching and bpf_(get|set)sockopt in bpf tcp iter

Martynas Pumputis (4):
      libbpf: Fix removal of inner map in bpf_object__create_map
      selftests/bpf: Check inner map deletion
      selftests/bpf: Mute expected invalid map creation error msg
      libbpf: Fix race when pinning maps in parallel

Quentin Monnet (14):
      libbpf: Return non-null error on failures in libbpf_find_prog_btf_id()
      libbpf: Rename btf__load() as btf__load_into_kernel()
      libbpf: Rename btf__get_from_id() as btf__load_from_kernel_by_id()
      tools: Free BTF objects at various locations
      tools: Replace btf__get_from_id() with btf__load_from_kernel_by_id()
      libbpf: Add split BTF support for btf__load_from_kernel_by_id()
      tools: bpftool: Support dumping split BTF by id
      tools: bpftool: Slightly ease bash completion updates
      selftests/bpf: Check consistency between bpftool source, doc, completion
      tools: bpftool: Complete and synchronise attach or map types
      tools: bpftool: Update and synchronise option list in doc and help msg
      selftests/bpf: Update bpftool's consistency script for checking options
      tools: bpftool: Document and add bash completion for -L, -B options
      tools: bpftool: Complete metrics list in "bpftool prog profile" doc

Roy, UjjaL (1):
      bpf, doc: Add heading and example for extensions in cbpf

Shuyi Cheng (3):
      libbpf: Introduce 'btf_custom_path' to 'bpf_obj_open_opts'
      libbpf: Fix the possible memory leak on error
      selftests/bpf: Switch existing selftests to using open_opts for custom BTF

Stanislav Fomichev (1):
      bpf: Increase supported cgroup storage value size

Vincent Li (1):
      selftests, bpf: test_tc_tunnel.sh nc: Cannot use -p and -l

Yonghong Song (1):
      bpf: Emit better log message if bpf_iter ctx arg btf_id == 0

 Documentation/networking/filter.rst                |   23 +-
 include/linux/bpf-cgroup.h                         |   54 -
 include/linux/bpf.h                                |   62 +-
 include/linux/sched.h                              |    3 +
 include/net/inet_hashtables.h                      |    6 +
 include/net/tcp.h                                  |    1 -
 kernel/bpf/bpf_iter.c                              |   22 +
 kernel/bpf/btf.c                                   |    5 +
 kernel/bpf/helpers.c                               |   16 +-
 kernel/bpf/local_storage.c                         |   16 +-
 kernel/fork.c                                      |    1 +
 kernel/trace/bpf_trace.c                           |    9 +-
 lib/test_bpf.c                                     |   13 +-
 net/bpf/test_run.c                                 |   23 +-
 net/core/filter.c                                  |   34 +
 net/ipv4/tcp_ipv4.c                                |  410 ++++--
 net/unix/unix_bpf.c                                |   16 +-
 samples/bpf/.gitignore                             |    2 +
 samples/bpf/test_override_return.sh                |    1 +
 samples/bpf/tracex7_user.c                         |    5 +
 tools/bpf/bpftool/Documentation/bpftool-btf.rst    |   48 +-
 tools/bpf/bpftool/Documentation/bpftool-cgroup.rst |    3 +-
 .../bpf/bpftool/Documentation/bpftool-feature.rst  |    2 +-
 tools/bpf/bpftool/Documentation/bpftool-gen.rst    |    9 +-
 tools/bpf/bpftool/Documentation/bpftool-iter.rst   |    2 +
 tools/bpf/bpftool/Documentation/bpftool-link.rst   |    3 +-
 tools/bpf/bpftool/Documentation/bpftool-map.rst    |    3 +-
 tools/bpf/bpftool/Documentation/bpftool-net.rst    |    2 +-
 tools/bpf/bpftool/Documentation/bpftool-perf.rst   |    2 +-
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |   36 +-
 .../bpftool/Documentation/bpftool-struct_ops.rst   |    2 +-
 tools/bpf/bpftool/Documentation/bpftool.rst        |   12 +-
 tools/bpf/bpftool/bash-completion/bpftool          |   66 +-
 tools/bpf/bpftool/btf.c                            |   11 +-
 tools/bpf/bpftool/btf_dumper.c                     |    6 +-
 tools/bpf/bpftool/cgroup.c                         |    3 +-
 tools/bpf/bpftool/common.c                         |    6 +
 tools/bpf/bpftool/feature.c                        |    1 +
 tools/bpf/bpftool/gen.c                            |    3 +-
 tools/bpf/bpftool/iter.c                           |    2 +
 tools/bpf/bpftool/link.c                           |    3 +-
 tools/bpf/bpftool/main.c                           |    3 +-
 tools/bpf/bpftool/main.h                           |    3 +-
 tools/bpf/bpftool/map.c                            |   19 +-
 tools/bpf/bpftool/net.c                            |    1 +
 tools/bpf/bpftool/perf.c                           |    5 +-
 tools/bpf/bpftool/prog.c                           |   37 +-
 tools/bpf/bpftool/struct_ops.c                     |    2 +-
 tools/bpf/resolve_btfids/main.c                    |   13 +-
 tools/lib/bpf/Build                                |    2 +-
 tools/lib/bpf/btf.c                                |   47 +-
 tools/lib/bpf/btf.h                                |   31 +-
 tools/lib/bpf/btf_dump.c                           |  871 +++++++++++-
 tools/lib/bpf/libbpf.c                             | 1463 ++------------------
 tools/lib/bpf/libbpf.h                             |   25 +-
 tools/lib/bpf/libbpf.map                           |    8 +
 tools/lib/bpf/libbpf_internal.h                    |   81 +-
 tools/lib/bpf/relo_core.c                          | 1295 +++++++++++++++++
 tools/lib/bpf/relo_core.h                          |  100 ++
 tools/perf/util/bpf-event.c                        |   11 +-
 tools/perf/util/bpf_counter.c                      |   12 +-
 tools/testing/selftests/bpf/README.rst             |    7 +
 tools/testing/selftests/bpf/netcnt_common.h        |   38 +-
 tools/testing/selftests/bpf/network_helpers.c      |   85 +-
 tools/testing/selftests/bpf/network_helpers.h      |    4 +
 .../selftests/bpf/prog_tests/bpf_iter_setsockopt.c |  226 +++
 tools/testing/selftests/bpf/prog_tests/btf.c       |    4 +-
 tools/testing/selftests/bpf/prog_tests/btf_dump.c  |  615 ++++++++
 .../selftests/bpf/prog_tests/core_autosize.c       |   22 +-
 .../testing/selftests/bpf/prog_tests/core_reloc.c  |   25 +-
 .../selftests/bpf/prog_tests/get_func_ip_test.c    |    2 +
 tools/testing/selftests/bpf/prog_tests/pinning.c   |    9 +
 .../testing/selftests/bpf/prog_tests/tc_redirect.c |   23 +-
 .../selftests/bpf/progs/bpf_iter_setsockopt.c      |   72 +
 .../testing/selftests/bpf/progs/bpf_tracing_net.h  |    6 +
 .../testing/selftests/bpf/progs/get_func_ip_test.c |   11 +
 tools/testing/selftests/bpf/progs/netcnt_prog.c    |    8 +-
 .../selftests/bpf/progs/test_map_in_map_invalid.c  |   26 +
 .../selftests/bpf/test_bpftool_synctypes.py        |  586 ++++++++
 tools/testing/selftests/bpf/test_maps.c            |   72 +-
 tools/testing/selftests/bpf/test_netcnt.c          |    4 +-
 tools/testing/selftests/bpf/test_progs.h           |   12 +
 tools/testing/selftests/bpf/test_tc_tunnel.sh      |    2 +-
 83 files changed, 5027 insertions(+), 1808 deletions(-)
 create mode 100644 tools/lib/bpf/relo_core.c
 create mode 100644 tools/lib/bpf/relo_core.h
 create mode 100644 tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c
 create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_setsockopt.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_map_in_map_invalid.c
 create mode 100755 tools/testing/selftests/bpf/test_bpftool_synctypes.py



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux