mbox series

pull-request: bpf-next 2024-04-29

Message ID 20240429131657.19423-1-daniel@iogearbox.net (mailing list archive)
State Accepted
Commit 89de2db19317fb89a6e9163f33c3a7b23ee75a18
Headers show
Series pull-request: bpf-next 2024-04-29 | expand

Pull-request

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

Checks

Context Check Description
netdev/tree_selection success Pull request for net-next, async
netdev/build_32bit fail Errors and warnings before: 7463 this patch: 7475
netdev/build_tools success Errors and warnings before: 1 this patch: 1
netdev/build_clang success Errors and warnings before: 1210 this patch: 1210
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn fail Errors and warnings before: 7844 this patch: 7856
netdev/build_clang_rust success No Rust files in patch. Skipping build

Message

Daniel Borkmann April 29, 2024, 1:16 p.m. UTC
Hi David, hi Jakub, hi Paolo, hi Eric,

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

We've added 147 non-merge commits during the last 32 day(s) which contain
a total of 158 files changed, 9400 insertions(+), 2213 deletions(-).

Note, the merge is conflict-free. There is a small conflict once net lands
in net-next, see also:

  https://lore.kernel.org/bpf/20240429114939.210328b0@canb.auug.org.au

The main changes are:

1) Add an internal-only BPF per-CPU instruction for resolving per-CPU memory addresses and
   implement support in x86 BPF JIT. This allows inlining per-CPU array and hashmap lookups
   and the bpf_get_smp_processor_id() helper, from Andrii Nakryiko.

2) Add BPF link support for sk_msg and sk_skb programs, from Yonghong Song.

3) Optimize x86 BPF JIT's emit_mov_imm64, and add support for various atomics in bpf_arena
   which can be JITed as a single x86 instruction, from Alexei Starovoitov.

4) Add support for passing mark with bpf_fib_lookup helper, from Anton Protopopov.

5) Add a new bpf_wq API for deferring events and refactor sleepable bpf_timer code to keep
   common code where possible, from Benjamin Tissoires.

6) Fix BPF_PROG_TEST_RUN infra with regards to bpf_dummy_struct_ops programs to check
   when NULL is passed for non-NULLable parameters, from Eduard Zingerman.

7) Harden the BPF verifier's and/or/xor value tracking, from Harishankar Vishwanathan.

8) Introduce crypto kfuncs to make BPF programs able to utilize the kernel crypto subsystem,
   from Vadim Fedorenko.

9) Various improvements to the BPF instruction set standardization doc, from Dave Thaler.

10) Extend libbpf APIs to partially consume items from the BPF ringbuffer, from Andrea Righi.

11) Bigger batch of BPF selftests refactoring to use common network helpers and to drop
    duplicate code, from Geliang Tang.

12) Support bpf_tail_call_static() helper for BPF programs with GCC 13, from Jose E. Marchesi.

13) Add bpf_preempt_{disable,enable}() kfuncs in order to allow a BPF program to have code
    sections where preemption is disabled, from Kumar Kartikeya Dwivedi.

14) Allow invoking BPF kfuncs from BPF_PROG_TYPE_SYSCALL programs, from David Vernet.

15) Extend the BPF verifier to allow different input maps for a given bpf_for_each_map_elem()
    helper call in a BPF program, from Philo Lu.

16) Add support for PROBE_MEM32 and bpf_addr_space_cast instructions for riscv64 and arm64
    JITs to enable BPF Arena, from Puranjay Mohan.

17) Shut up a false-positive KMSAN splat in interpreter mode by unpoison the stack
    memory, from Martin KaFai Lau.

18) Improve xsk selftest coverage with new tests on maximum and minimum hardware ring
    size configurations, from Tushar Vyavahare.

19) Various rST man pages fixes as well as documentation and bash completion improvements
    for bpftool, from Rameez Rehman & Quentin Monnet.

20) Fix libbpf with regards to dumping subsequent char arrays, from Quentin Deslandes.

Please consider pulling these changes from:

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

Thanks a lot!

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

Alexander Lobakin, Andrii Nakryiko, Arnd Bergmann, Björn Töpel, Daniel 
Borkmann, David Ahern, David Vernet, Eduard Zingerman, Herbert Xu, Jiri 
Olsa, John Fastabend, Jose E. Marchesi, kernel test robot, Kui-Feng Lee, 
Kumar Kartikeya Dwivedi, Magnus Karlsson, Naresh Kamboju, Pu Lehui, 
Quentin Monnet, Yonghong Song

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

The following changes since commit c602f4ca13a529b45692de4fdec96b4cdec866da:

  Merge branch 'ravb-support-describing-the-mdio-bus' (2024-03-28 18:17:54 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 07801a24e2f18624cd2400ce15f14569eb416c9a:

  bpf, docs: Clarify PC use in instruction-set.rst (2024-04-29 11:54:42 +0200)

----------------------------------------------------------------
bpf-next-for-netdev

----------------------------------------------------------------
Alexei Starovoitov (18):
      Merge branch 'bench-fast-in-kernel-triggering-benchmarks'
      Merge branch 'bpf-fix-a-couple-of-test-failures-with-lto-kernel'
      bpf: Avoid kfree_rcu() under lock in bpf_lpm_trie.
      Merge branch 'bpf-arm64-add-support-for-bpf-arena'
      Merge branch 'add-internal-only-bpf-per-cpu-instruction'
      bpf: Optimize emit_mov_imm64().
      Merge branch 'inline-bpf_get_branch_snapshot-bpf-helper'
      Merge branch 'bpf-allow-bpf_for_each_map_elem-helper-with-different-input-maps'
      bpf: Add support for certain atomics in bpf_arena to x86 JIT
      selftests/bpf: Add tests for atomics in bpf_arena.
      Merge branch 'bpf-add-bpf_link-support-for-sk_msg-and-sk_skb-progs'
      bpf: Fix JIT of is_mov_percpu_addr instruction.
      Merge branch 'introduce-bpf_wq'
      bpf: Don't check for recursion in bpf_wq_work.
      Merge branch 'introduce-bpf_preempt_-disable-enable'
      selftests/bpf: Fix wq test.
      bpf: Add bpf_guard_preempt() convenience macro
      Merge branch 'check-bpf_dummy_struct_ops-program-params-for-test-runs'

Andrea Righi (4):
      libbpf: Start v1.5 development cycle
      libbpf: ringbuf: Allow to consume up to a certain amount of items
      libbpf: Add ring__consume_n / ring_buffer__consume_n
      selftests/bpf: Add ring_buffer__consume_n test.

Andrii Nakryiko (19):
      selftests/bpf: rename and clean up userspace-triggered benchmarks
      selftests/bpf: add batched, mostly in-kernel BPF triggering benchmarks
      selftests/bpf: remove syscall-driven benchs, keep syscall-count only
      selftests/bpf: lazy-load trigger bench BPF programs
      bpf: add bpf_modify_return_test_tp() kfunc triggering tracepoint
      selftests/bpf: add batched tp/raw_tp/fmodret tests
      selftests/bpf: make multi-uprobe tests work in RELEASE=1 mode
      bpftool: Use __typeof__() instead of typeof() in BPF skeleton
      bpf: add special internal-only MOV instruction to resolve per-CPU addrs
      bpf: inline bpf_get_smp_processor_id() helper
      bpf: inline bpf_map_lookup_elem() for PERCPU_ARRAY maps
      bpf: inline bpf_map_lookup_elem() helper for PERCPU_HASH map
      bpf: handle CONFIG_SMP=n configuration in x86 BPF JIT
      bpf: make bpf_get_branch_snapshot() architecture-agnostic
      bpf: inline bpf_get_branch_snapshot() helper
      bpf: prevent r10 register from being marked as precise
      selftests/bpf: add fp-leaking precise subprog result tests
      Merge branch 'bpf-allow-invoking-kfuncs-from-bpf_prog_type_syscall-progs'
      Merge branch 'libbpf-api-to-partially-consume-items-from-ringbuffer'

Anton Protopopov (5):
      bpf: Add support for passing mark with bpf_fib_lookup
      selftests/bpf: Add BPF_FIB_LOOKUP_MARK tests
      bpf: Add a check for struct bpf_fib_lookup size
      bpf: Add a verbose message if map limit is reached
      bpf: Pack struct bpf_fib_lookup

Ard Biesheuvel (1):
      btf: Avoid weak external references

Arnd Bergmann (1):
      bpf: fix perf_snapshot_branch_stack link failure

Benjamin Tissoires (16):
      bpf: make timer data struct more generic
      bpf: replace bpf_timer_init with a generic helper
      bpf: replace bpf_timer_set_callback with a generic helper
      bpf: replace bpf_timer_cancel_and_free with a generic helper
      bpf: add support for bpf_wq user type
      tools: sync include/uapi/linux/bpf.h
      bpf: verifier: bail out if the argument is not a map
      bpf: add support for KF_ARG_PTR_TO_WORKQUEUE
      bpf: allow struct bpf_wq to be embedded in arraymaps and hashmaps
      selftests/bpf: add bpf_wq tests
      bpf: wq: add bpf_wq_init
      selftests/bpf: wq: add bpf_wq_init() checks
      bpf: wq: add bpf_wq_set_callback_impl
      selftests/bpf: add checks for bpf_wq_set_callback()
      bpf: add bpf_wq_start
      selftests/bpf: wq: add bpf_wq_start() checks

Chen Pei (1):
      bpf, tests: Fix typos in comments

Dave Thaler (5):
      bpf, docs: Editorial nits in instruction-set.rst
      bpf, docs: Clarify helper ID and pointer terms in instruction-set.rst
      bpf, docs: Fix formatting nit in instruction-set.rst
      bpf, docs: Add introduction for use in the ISA Internet Draft
      bpf, docs: Clarify PC use in instruction-set.rst

David Lechner (1):
      bpf: Fix typo in uapi doc comments

David Vernet (2):
      bpf: Allow invoking kfuncs from BPF_PROG_TYPE_SYSCALL progs
      selftests/bpf: Verify calling core kfuncs from BPF_PROG_TYPE_SYCALL

Eduard Zingerman (5):
      bpf: mark bpf_dummy_struct_ops.test_1 parameter as nullable
      selftests/bpf: adjust dummy_st_ops_success to detect additional error
      selftests/bpf: do not pass NULL for non-nullable params in dummy_st_ops
      bpf: check bpf_dummy_struct_ops program params for test runs
      selftests/bpf: dummy_st_ops should reject 0 for non-nullable params

Geliang Tang (17):
      selftests/bpf: Use connect_fd_to_fd in bpf_tcp_ca
      selftests/bpf: Drop settimeo in do_test
      selftests/bpf: Add pid limit for mptcpify prog
      selftests/bpf: Fix umount cgroup2 error in test_sockmap
      selftests/bpf: Add struct send_recv_arg
      selftests/bpf: Export send_recv_data helper
      selftests/bpf: Add start_server_addr helper
      selftests/bpf: Use start_server_addr in cls_redirect
      selftests/bpf: Use start_server_addr in sk_assign
      selftests/bpf: Update arguments of connect_to_addr
      selftests/bpf: Use connect_to_addr in cls_redirect
      selftests/bpf: Use connect_to_addr in sk_assign
      selftests/bpf: Fix a fd leak in error paths in open_netns
      selftests/bpf: Use log_err in open_netns/close_netns
      selftests/bpf: Use start_server_addr in test_sock_addr
      selftests/bpf: Use connect_to_addr in test_sock_addr
      selftests/bpf: Use make_sockaddr in test_sock_addr

Haiyue Wang (2):
      bpf,arena: Use helper sizeof_field in struct accessors
      bpf: update the comment for BTF_FIELDS_MAX

Harishankar Vishwanathan (1):
      bpf: Harden and/or/xor value tracking in verifier

Jason Xing (1):
      selftests/bpf: eliminate warning of get_cgroup_id_from_path()

Jiri Olsa (1):
      selftests/bpf: Add read_trace_pipe_iter function

Jose E. Marchesi (1):
      bpf_helpers.h: Define bpf_tail_call_static when building with GCC

Jose Fernandez (1):
      bpf: Improve program stats run-time calculation

Justin Stitt (1):
      bpf: Replace deprecated strncpy with strscpy

Kui-Feng Lee (1):
      selftests/bpf: Make sure libbpf doesn't enforce the signature of a func pointer.

Kumar Kartikeya Dwivedi (2):
      bpf: Introduce bpf_preempt_[disable,enable] kfuncs
      selftests/bpf: Add tests for preempt kfuncs

Martin KaFai Lau (9):
      bpf: Remove CONFIG_X86 and CONFIG_DYNAMIC_FTRACE guard from the tcp-cc kfuncs
      selftests/bpf: Test loading bpf-tcp-cc prog calling the kernel tcp-cc kfuncs
      bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode
      Merge branch 'Use start_server and connect_fd_to_fd'
      Merge branch 'export send_recv_data'
      Merge branch 'use network helpers, part 1'
      Merge branch 'use network helpers, part 2'
      Merge branch 'BPF crypto API framework'
      Merge branch 'bpf: add mrtt and srtt as ctx->args for BPF_SOCK_OPS_RTT_CB'

Mykyta Yatsenko (1):
      bpf: improve error message for unsupported helper

Philo Lu (5):
      bpf: store both map ptr and state in bpf_insn_aux_data
      bpf: allow invoking bpf_for_each_map_elem with different maps
      selftests/bpf: add test for bpf_for_each_map_elem() with different maps
      bpf: add mrtt and srtt as BPF_SOCK_OPS_RTT_CB args
      selftests/bpf: extend BPF_SOCK_OPS_RTT_CB test for srtt and mrtt_us

Pu Lehui (1):
      selftests/bpf: Skip test when perf_event_open returns EOPNOTSUPP

Puranjay Mohan (4):
      bpf: Add arm64 JIT support for PROBE_MEM32 pseudo instructions.
      bpf: Add arm64 JIT support for bpf_addr_space_cast instruction.
      bpf, riscv: Implement PROBE_MEM32 pseudo instructions
      bpf, riscv: Implement bpf_addr_space_cast instruction

Quentin Deslandes (2):
      libbpf: Fix misaligned array closing bracket
      libbpf: Fix dump of subsequent char arrays

Quentin Monnet (2):
      bpftool: Update documentation where progs/maps can be passed by name
      bpftool: Address minor issues in bash completion

Rafael Passos (2):
      bpf: Fix typo in function save_aux_ptr_type
      bpf: Fix typos in comments

Rameez Rehman (3):
      bpftool: Use simpler indentation in source rST for documentation
      bpftool: Remove useless emphasis on command description in man pages
      bpftool: Clean-up typos, punctuation, list formatting in docs

Sahil Siddiq (1):
      bpftool: Mount bpffs on provided dir instead of parent dir

Thorsten Blum (1):
      bpftool: Fix typo in error message

Tobias Böhm (1):
      libbpf: Use local bpf_helpers.h include

Tushar Vyavahare (7):
      tools: Add ethtool.h header to tooling infra
      selftests/xsk: Make batch size variable
      selftests/bpf: Implement get_hw_ring_size function to retrieve current and max interface size
      selftests/bpf: Implement set_hw_ring_size function to configure interface ring size
      selftests/xsk: Introduce set_ring_size function with a retry mechanism for handling AF_XDP socket closures
      selftests/xsk: Test AF_XDP functionality under minimal ring configurations
      selftests/xsk: Add new test case for AF_XDP under max ring sizes

Vadim Fedorenko (4):
      bpf: make common crypto API for TC/XDP programs
      bpf: crypto: add skcipher to bpf crypto
      selftests: bpf: crypto skcipher algo selftests
      selftests: bpf: crypto: add benchmark for crypto functions

Yafang Shao (1):
      bpf: Mitigate latency spikes associated with freeing non-preallocated htab

Yonghong Song (15):
      selftests/bpf: Replace CHECK with ASSERT macros for ksyms test
      libbpf: Mark libbpf_kallsyms_parse static function
      libbpf: Handle <orig_name>.llvm.<hash> symbol properly
      selftests/bpf: Refactor some functions for kprobe_multi_test
      selftests/bpf: Refactor trace helper func load_kallsyms_local()
      selftests/bpf: Add {load,search}_kallsyms_custom_local()
      selftests/bpf: Fix kprobe_multi_bench_attach test failure with LTO kernel
      selftests/bpf: Add a kprobe_multi subtest to use addrs instead of syms
      selftests/bpf: Using llvm may_goto inline asm for cond_break macro
      bpf: Add bpf_link support for sk_msg and sk_skb progs
      libbpf: Add bpf_link support for BPF_PROG_TYPE_SOCKMAP
      bpftool: Add link dump support for BPF_LINK_TYPE_SOCKMAP
      selftests/bpf: Refactor out helper functions for a few tests
      selftests/bpf: Add some tests with new bpf_program__attach_sockmap() APIs
      selftests/bpf: Enable tests for atomics with cpuv4

 .../bpf/standardization/instruction-set.rst        |  109 +-
 MAINTAINERS                                        |    8 +
 arch/arm64/net/bpf_jit_comp.c                      |   86 +-
 arch/riscv/net/bpf_jit.h                           |    2 +
 arch/riscv/net/bpf_jit_comp64.c                    |  203 +-
 arch/riscv/net/bpf_jit_core.c                      |    2 +
 arch/x86/net/bpf_jit_comp.c                        |   92 +-
 crypto/Makefile                                    |    3 +
 crypto/bpf_crypto_skcipher.c                       |   82 +
 include/linux/bpf.h                                |   22 +-
 include/linux/bpf_crypto.h                         |   24 +
 include/linux/bpf_verifier.h                       |   11 +-
 include/linux/filter.h                             |   30 +-
 include/linux/skmsg.h                              |    4 +
 include/net/tcp.h                                  |    4 +-
 include/trace/events/bpf_test_run.h                |   17 +
 include/uapi/linux/bpf.h                           |   37 +-
 kernel/bpf/Makefile                                |    3 +
 kernel/bpf/arena.c                                 |    2 +-
 kernel/bpf/arraymap.c                              |   51 +-
 kernel/bpf/bpf_local_storage.c                     |    2 +-
 kernel/bpf/btf.c                                   |   24 +-
 kernel/bpf/core.c                                  |   18 +-
 kernel/bpf/cpumask.c                               |    1 +
 kernel/bpf/crypto.c                                |  385 ++++
 kernel/bpf/disasm.c                                |   14 +
 kernel/bpf/hashtab.c                               |   79 +-
 kernel/bpf/helpers.c                               |  358 +++-
 kernel/bpf/log.c                                   |    4 +-
 kernel/bpf/lpm_trie.c                              |   13 +-
 kernel/bpf/syscall.c                               |   19 +-
 kernel/bpf/sysfs_btf.c                             |    6 +-
 kernel/bpf/trampoline.c                            |    3 +-
 kernel/bpf/verifier.c                              |  485 ++++-
 kernel/trace/bpf_trace.c                           |    4 -
 lib/test_bpf.c                                     |    2 +-
 net/bpf/bpf_dummy_struct_ops.c                     |   55 +-
 net/bpf/test_run.c                                 |    8 +
 net/core/filter.c                                  |   15 +-
 net/core/sock_map.c                                |  263 ++-
 net/ipv4/tcp_bbr.c                                 |    4 -
 net/ipv4/tcp_cubic.c                               |    4 -
 net/ipv4/tcp_dctcp.c                               |    4 -
 net/ipv4/tcp_input.c                               |    4 +-
 tools/bpf/bpftool/Documentation/Makefile           |    6 +-
 tools/bpf/bpftool/Documentation/bpftool-btf.rst    |  104 +-
 tools/bpf/bpftool/Documentation/bpftool-cgroup.rst |  219 +-
 .../bpf/bpftool/Documentation/bpftool-feature.rst  |  115 +-
 tools/bpf/bpftool/Documentation/bpftool-gen.rst    |  338 ++-
 tools/bpf/bpftool/Documentation/bpftool-iter.rst   |   60 +-
 tools/bpf/bpftool/Documentation/bpftool-link.rst   |   73 +-
 tools/bpf/bpftool/Documentation/bpftool-map.rst    |  232 +-
 tools/bpf/bpftool/Documentation/bpftool-net.rst    |  112 +-
 tools/bpf/bpftool/Documentation/bpftool-perf.rst   |   34 +-
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |  436 ++--
 .../bpftool/Documentation/bpftool-struct_ops.rst   |   81 +-
 tools/bpf/bpftool/Documentation/bpftool.rst        |   60 +-
 tools/bpf/bpftool/Documentation/common_options.rst |   26 +-
 tools/bpf/bpftool/bash-completion/bpftool          |   61 +-
 tools/bpf/bpftool/common.c                         |   96 +-
 tools/bpf/bpftool/feature.c                        |    3 +-
 tools/bpf/bpftool/gen.c                            |    4 +-
 tools/bpf/bpftool/iter.c                           |    2 +-
 tools/bpf/bpftool/link.c                           |    9 +
 tools/bpf/bpftool/main.h                           |    3 +-
 tools/bpf/bpftool/prog.c                           |    7 +-
 tools/bpf/bpftool/struct_ops.c                     |    2 +-
 tools/include/linux/filter.h                       |   18 +
 tools/include/uapi/linux/bpf.h                     |   37 +-
 tools/include/uapi/linux/ethtool.h                 | 2229 +++++++++++++++++++-
 tools/lib/bpf/bpf_core_read.h                      |    2 +-
 tools/lib/bpf/bpf_helpers.h                        |    4 +-
 tools/lib/bpf/btf_dump.c                           |    5 +
 tools/lib/bpf/libbpf.c                             |   33 +-
 tools/lib/bpf/libbpf.h                             |   14 +
 tools/lib/bpf/libbpf.map                           |    7 +
 tools/lib/bpf/libbpf_internal.h                    |    5 -
 tools/lib/bpf/libbpf_probes.c                      |    6 +-
 tools/lib/bpf/libbpf_version.h                     |    2 +-
 tools/lib/bpf/ringbuf.c                            |   55 +-
 tools/testing/selftests/bpf/DENYLIST.aarch64       |    3 +-
 tools/testing/selftests/bpf/DENYLIST.s390x         |    1 +
 tools/testing/selftests/bpf/Makefile               |   13 +-
 tools/testing/selftests/bpf/bench.c                |   39 +-
 .../selftests/bpf/benchs/bench_bpf_crypto.c        |  185 ++
 tools/testing/selftests/bpf/benchs/bench_trigger.c |  391 ++--
 .../selftests/bpf/benchs/run_bench_trigger.sh      |   22 +-
 .../selftests/bpf/benchs/run_bench_uprobes.sh      |    2 +-
 tools/testing/selftests/bpf/bpf_experimental.h     |   40 +
 .../selftests/bpf/bpf_testmod/bpf_testmod.c        |    5 +
 .../selftests/bpf/bpf_testmod/bpf_testmod_kfunc.h  |    1 +
 tools/testing/selftests/bpf/cgroup_helpers.c       |    2 +-
 tools/testing/selftests/bpf/config                 |    7 +
 tools/testing/selftests/bpf/network_helpers.c      |  198 +-
 tools/testing/selftests/bpf/network_helpers.h      |   12 +-
 .../selftests/bpf/prog_tests/arena_atomics.c       |  186 ++
 .../testing/selftests/bpf/prog_tests/bpf_tcp_ca.c  |   96 +-
 .../selftests/bpf/prog_tests/cls_redirect.c        |   38 +-
 .../selftests/bpf/prog_tests/crypto_sanity.c       |  197 ++
 .../selftests/bpf/prog_tests/dummy_st_ops.c        |   34 +-
 tools/testing/selftests/bpf/prog_tests/empty_skb.c |    2 +
 .../testing/selftests/bpf/prog_tests/fib_lookup.c  |  132 +-
 .../selftests/bpf/prog_tests/flow_dissector.c      |    1 -
 tools/testing/selftests/bpf/prog_tests/for_each.c  |   62 +
 .../selftests/bpf/prog_tests/ip_check_defrag.c     |    2 +
 .../selftests/bpf/prog_tests/kprobe_multi_test.c   |  248 ++-
 tools/testing/selftests/bpf/prog_tests/ksyms.c     |   30 +-
 tools/testing/selftests/bpf/prog_tests/mptcp.c     |    2 +
 .../selftests/bpf/prog_tests/preempt_lock.c        |    9 +
 tools/testing/selftests/bpf/prog_tests/ringbuf.c   |   65 +
 .../testing/selftests/bpf/prog_tests/send_signal.c |    2 +-
 tools/testing/selftests/bpf/prog_tests/sk_assign.c |   55 +-
 tools/testing/selftests/bpf/prog_tests/sock_addr.c |    6 +-
 .../selftests/bpf/prog_tests/sockmap_basic.c       |  171 +-
 .../selftests/bpf/prog_tests/sockmap_listen.c      |   38 +
 .../bpf/prog_tests/stacktrace_build_id_nmi.c       |    2 +-
 .../testing/selftests/bpf/prog_tests/tc_redirect.c |    2 +-
 tools/testing/selftests/bpf/prog_tests/tcp_rtt.c   |   14 +
 .../bpf/prog_tests/test_struct_ops_module.c        |   24 +
 .../testing/selftests/bpf/prog_tests/test_tunnel.c |    4 +
 .../selftests/bpf/prog_tests/trace_printk.c        |   36 +-
 .../selftests/bpf/prog_tests/trace_vprintk.c       |   36 +-
 .../bpf/prog_tests/verifier_kfunc_prog_types.c     |   11 +
 tools/testing/selftests/bpf/prog_tests/wq.c        |   42 +
 .../selftests/bpf/prog_tests/xdp_metadata.c        |   16 +
 tools/testing/selftests/bpf/progs/arena_atomics.c  |  178 ++
 .../selftests/bpf/progs/cgrp_kfunc_common.h        |    2 +-
 tools/testing/selftests/bpf/progs/crypto_basic.c   |   68 +
 tools/testing/selftests/bpf/progs/crypto_bench.c   |  109 +
 tools/testing/selftests/bpf/progs/crypto_common.h  |   66 +
 tools/testing/selftests/bpf/progs/crypto_sanity.c  |  169 ++
 .../selftests/bpf/progs/dummy_st_ops_success.c     |   15 +-
 .../selftests/bpf/progs/for_each_multi_maps.c      |   49 +
 tools/testing/selftests/bpf/progs/mptcpify.c       |    4 +
 tools/testing/selftests/bpf/progs/preempt_lock.c   |  132 ++
 .../selftests/bpf/progs/struct_ops_module.c        |   13 +
 .../selftests/bpf/progs/task_kfunc_common.h        |    2 +-
 tools/testing/selftests/bpf/progs/tcp_ca_kfunc.c   |  121 ++
 tools/testing/selftests/bpf/progs/tcp_rtt.c        |    6 +
 tools/testing/selftests/bpf/progs/test_ringbuf_n.c |   47 +
 .../selftests/bpf/progs/test_skmsg_load_helpers.c  |   27 +-
 .../selftests/bpf/progs/test_sockmap_pass_prog.c   |   17 +-
 .../bpf/progs/test_sockmap_skb_verdict_attach.c    |    2 +-
 tools/testing/selftests/bpf/progs/trigger_bench.c  |   68 +-
 .../bpf/progs/verifier_helper_restricted.c         |    8 +-
 .../bpf/progs/verifier_kfunc_prog_types.c          |  122 ++
 .../bpf/progs/verifier_subprog_precision.c         |   89 +
 tools/testing/selftests/bpf/progs/wq.c             |  180 ++
 tools/testing/selftests/bpf/progs/wq_failures.c    |  144 ++
 tools/testing/selftests/bpf/test_sock_addr.c       |  138 +-
 tools/testing/selftests/bpf/test_sockmap.c         |    2 +-
 tools/testing/selftests/bpf/testing_helpers.c      |   16 +-
 tools/testing/selftests/bpf/trace_helpers.c        |  109 +-
 tools/testing/selftests/bpf/trace_helpers.h        |    9 +
 tools/testing/selftests/bpf/uprobe_multi.c         |    2 +-
 tools/testing/selftests/bpf/xdp_hw_metadata.c      |   14 -
 tools/testing/selftests/bpf/xskxceiver.c           |  123 +-
 tools/testing/selftests/bpf/xskxceiver.h           |   12 +-
 158 files changed, 9400 insertions(+), 2213 deletions(-)
 create mode 100644 crypto/bpf_crypto_skcipher.c
 create mode 100644 include/linux/bpf_crypto.h
 create mode 100644 kernel/bpf/crypto.c
 create mode 100644 tools/testing/selftests/bpf/benchs/bench_bpf_crypto.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/arena_atomics.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/crypto_sanity.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/preempt_lock.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/verifier_kfunc_prog_types.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/wq.c
 create mode 100644 tools/testing/selftests/bpf/progs/arena_atomics.c
 create mode 100644 tools/testing/selftests/bpf/progs/crypto_basic.c
 create mode 100644 tools/testing/selftests/bpf/progs/crypto_bench.c
 create mode 100644 tools/testing/selftests/bpf/progs/crypto_common.h
 create mode 100644 tools/testing/selftests/bpf/progs/crypto_sanity.c
 create mode 100644 tools/testing/selftests/bpf/progs/for_each_multi_maps.c
 create mode 100644 tools/testing/selftests/bpf/progs/preempt_lock.c
 create mode 100644 tools/testing/selftests/bpf/progs/tcp_ca_kfunc.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_ringbuf_n.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_kfunc_prog_types.c
 create mode 100644 tools/testing/selftests/bpf/progs/wq.c
 create mode 100644 tools/testing/selftests/bpf/progs/wq_failures.c

Comments

Jakub Kicinski April 29, 2024, 8:22 p.m. UTC | #1
On Mon, 29 Apr 2024 15:16:57 +0200 Daniel Borkmann wrote:
>       tools: Add ethtool.h header to tooling infra

Could you follow up to remove this header?
Having to keep multiple headers in sync is annoying, and using 
'make headers' or including in-tree headers directly is not rocket
science.
patchwork-bot+netdevbpf@kernel.org April 29, 2024, 8:30 p.m. UTC | #2
Hello:

This pull request was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Mon, 29 Apr 2024 15:16:57 +0200 you wrote:
> Hi David, hi Jakub, hi Paolo, hi Eric,
> 
> The following pull-request contains BPF updates for your *net-next* tree.
> 
> We've added 147 non-merge commits during the last 32 day(s) which contain
> a total of 158 files changed, 9400 insertions(+), 2213 deletions(-).
> 
> [...]

Here is the summary with links:
  - pull-request: bpf-next 2024-04-29
    https://git.kernel.org/netdev/net-next/c/89de2db19317

You are awesome, thank you!
Daniel Borkmann April 29, 2024, 9:14 p.m. UTC | #3
On 4/29/24 10:22 PM, Jakub Kicinski wrote:
> On Mon, 29 Apr 2024 15:16:57 +0200 Daniel Borkmann wrote:
>>        tools: Add ethtool.h header to tooling infra
> 
> Could you follow up to remove this header?
> Having to keep multiple headers in sync is annoying, and using
> 'make headers' or including in-tree headers directly is not rocket
> science.

[ Adding Tushar/Magnus, ptal. ]
Tushar Vyavahare April 30, 2024, 8:03 a.m. UTC | #4
> -----Original Message-----
> From: Daniel Borkmann <daniel@iogearbox.net>
> Sent: Tuesday, April 30, 2024 2:44 AM
> To: Jakub Kicinski <kuba@kernel.org>
> Cc: davem@davemloft.net; pabeni@redhat.com; edumazet@google.com;
> ast@kernel.org; andrii@kernel.org; martin.lau@linux.dev;
> netdev@vger.kernel.org; bpf@vger.kernel.org; Vyavahare, Tushar
> <tushar.vyavahare@intel.com>; Karlsson, Magnus
> <magnus.karlsson@intel.com>
> Subject: Re: pull-request: bpf-next 2024-04-29
> 
> On 4/29/24 10:22 PM, Jakub Kicinski wrote:
> > On Mon, 29 Apr 2024 15:16:57 +0200 Daniel Borkmann wrote:
> >>        tools: Add ethtool.h header to tooling infra
> >
> > Could you follow up to remove this header?
> > Having to keep multiple headers in sync is annoying, and using 'make
> > headers' or including in-tree headers directly is not rocket science.
> 
> [ Adding Tushar/Magnus, ptal. ]

Sure , we are looking into it.
Magnus Karlsson April 30, 2024, 8:16 a.m. UTC | #5
On Mon, 29 Apr 2024 at 22:22, Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Mon, 29 Apr 2024 15:16:57 +0200 Daniel Borkmann wrote:
> >       tools: Add ethtool.h header to tooling infra
>
> Could you follow up to remove this header?
> Having to keep multiple headers in sync is annoying, and using
> 'make headers' or including in-tree headers directly is not rocket
> science.

Just because I am curious, what was the reason/history behind the
tools/include directory to start with? Most headers seem to be copies
there.

Thanks: Magnus
Jakub Kicinski April 30, 2024, 1:45 p.m. UTC | #6
On Tue, 30 Apr 2024 10:16:33 +0200 Magnus Karlsson wrote:
> > Could you follow up to remove this header?
> > Having to keep multiple headers in sync is annoying, and using
> > 'make headers' or including in-tree headers directly is not rocket
> > science.  
> 
> Just because I am curious, what was the reason/history behind the
> tools/include directory to start with? Most headers seem to be copies
> there.

I think it started as folks copying a handful of headers for perf tool
and snowballed from there. By the time I pulled this the copy of
ethtool.h was already out of date. So is if_xdp.h, BTW, as I am
reminded every time I built networking selftests.