[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230515225603.27027-1-daniel@iogearbox.net>
Date: Tue, 16 May 2023 00:56:03 +0200
From: Daniel Borkmann <daniel@...earbox.net>
To: davem@...emloft.net
Cc: kuba@...nel.org,
pabeni@...hat.com,
edumazet@...gle.com,
daniel@...earbox.net,
ast@...nel.org,
andrii@...nel.org,
martin.lau@...ux.dev,
netdev@...r.kernel.org,
bpf@...r.kernel.org
Subject: pull-request: bpf-next 2023-05-16
Hi David, hi Jakub, hi Paolo, hi Eric,
The following pull-request contains BPF updates for your *net-next* tree.
We've added 57 non-merge commits during the last 19 day(s) which contain
a total of 63 files changed, 3293 insertions(+), 690 deletions(-).
The main changes are:
1) Add precision propagation to verifier for subprogs and callbacks, from Andrii Nakryiko.
2) Improve BPF's {g,s}setsockopt() handling with wrong option lengths, from Stanislav Fomichev.
3) Utilize pahole v1.25 for the kernel's BTF generation to filter out inconsistent
function prototypes, from Alan Maguire.
4) Various dyn-pointer verifier improvements to relax restrictions, from Daniel Rosenberg.
5) Add a new bpf_task_under_cgroup() kfunc for designated task, from Feng Zhou.
6) Unblock tests for arm64 BPF CI after ftrace supporting direct call, from Florent Revest.
7) Add XDP hint kfunc metadata for RX hash/timestamp for igc, from Jesper Dangaard Brouer.
8) Add several new dyn-pointer kfuncs to ease their usability, from Joanne Koong.
9) Add in-depth LRU internals description and dot function graph, from Joe Stringer.
10) Fix KCSAN report on bpf_lru_list when accessing node->ref, from Martin KaFai Lau.
11) Only dump unprivileged_bpf_disabled log warning upon write, from Kui-Feng Lee.
12) Extend test_progs to directly passing allow/denylist file, from Stephen Veiss.
13) Fix BPF trampoline memleak upon failure attaching to fentry, from Yafang Shao.
14) Fix emitting struct bpf_tcp_sock type in vmlinux BTF, from Yonghong Song.
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:
Alexei Starovoitov, Andrii Nakryiko, Bagas Sanjaya, Jiri Olsa, John
Fastabend, Lennart Poettering, Magnus Karlsson, Manu Bretelle, Nicky
Veitch, Quentin Monnet, Song Liu, Song Yoong Siang, Stanislav Fomichev,
Xuan Zhuo, Xu Kuohai, Yonghong Song
----------------------------------------------------------------
The following changes since commit 6e98b09da931a00bf4e0477d0fa52748bf28fcce:
Merge tag 'net-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next (2023-04-26 16:07:23 -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 108598c39eefbedc9882273ac0df96127a629220:
bpf: Fix memleak due to fentry attach failure (2023-05-15 23:41:59 +0200)
----------------------------------------------------------------
bpf-next-for-netdev
----------------------------------------------------------------
Alan Maguire (2):
bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
bpftool: JIT limited misreported as negative value on aarch64
Alexei Starovoitov (3):
Merge branch 'Add precision propagation for subprogs and callbacks'
Merge branch 'Introduce a new kfunc of bpf_task_under_cgroup'
Merge branch 'Dynptr Verifier Adjustments'
Andrii Nakryiko (13):
Merge branch 'selftests/bpf: test_progs can read test lists from file'
veristat: add -t flag for adding BPF_F_TEST_STATE_FREQ program flag
bpf: mark relevant stack slots scratched for register read instructions
bpf: encapsulate precision backtracking bookkeeping
bpf: improve precision backtrack logging
bpf: maintain bitmasks across all active frames in __mark_chain_precision
bpf: fix propagate_precision() logic for inner frames
bpf: fix mark_all_scalars_precise use in mark_chain_precision
bpf: support precision propagation in the presence of subprogs
selftests/bpf: add precision propagation tests in the presence of subprogs
selftests/bpf: revert iter test subprog precision workaround
libbpf: fix offsetof() and container_of() to work with CO-RE
bpf: fix calculation of subseq_idx during precision backtracking
Daniel Borkmann (1):
selftests/bpf: Add test case to assert precise scalar path pruning
Daniel Rosenberg (5):
bpf: Allow NULL buffers in bpf_dynptr_slice(_rw)
selftests/bpf: Test allowing NULL buffer in dynptr slice
selftests/bpf: Check overflow in optional buffer
bpf: verifier: Accept dynptr mem as mem in helpers
selftests/bpf: Accept mem from dynptr in helper funcs
Dave Marchevsky (1):
bpf: Remove anonymous union in bpf_kfunc_call_arg_meta
Feng Zhou (2):
bpf: Add bpf_task_under_cgroup() kfunc
selftests/bpf: Add testcase for bpf_task_under_cgroup
Florent Revest (2):
selftests/bpf: Update the aarch64 tests deny list
bpf, arm64: Support struct arguments in the BPF trampoline
Jesper Dangaard Brouer (5):
igc: Enable and fix RX hash usage by netstack
igc: Add igc_xdp_buff wrapper for xdp_buff in driver
igc: Add XDP hints kfuncs for RX hash
igc: Add XDP hints kfuncs for RX timestamp
selftests/bpf: xdp_hw_metadata track more timestamps
Joanne Koong (5):
bpf: Add bpf_dynptr_adjust
bpf: Add bpf_dynptr_is_null and bpf_dynptr_is_rdonly
bpf: Add bpf_dynptr_size
bpf: Add bpf_dynptr_clone
selftests/bpf: Add tests for dynptr convenience helpers
Joe Stringer (2):
docs/bpf: Add table to describe LRU properties
docs/bpf: Add LRU internals description and graph
Kal Conley (1):
xsk: Use pool->dma_pages to check for DMA
Kenjiro Nakayama (1):
libbpf: Fix comment about arc and riscv arch in bpf_tracing.h
Kui-Feng Lee (2):
bpftool: Show map IDs along with struct_ops links.
bpf: Print a warning only if writing to unprivileged_bpf_disabled.
Martin KaFai Lau (4):
selftests/bpf: Add fexit_sleep to DENYLIST.aarch64
libbpf: btf_dump_type_data_check_overflow needs to consider BTF_MEMBER_BITFIELD_SIZE
bpf: Address KCSAN report on bpf_lru_list
Merge branch 'bpf: Don't EFAULT for {g,s}setsockopt with wrong optlen'
Pengcheng Yang (1):
samples/bpf: Fix buffer overflow in tcp_basertt
Stanislav Fomichev (4):
bpf: Don't EFAULT for {g,s}setsockopt with wrong optlen
selftests/bpf: Update EFAULT {g,s}etsockopt selftests
selftests/bpf: Correctly handle optlen > 4096
bpf: Document EFAULT changes for sockopt
Stephen Veiss (2):
selftests/bpf: Extract insert_test from parse_test_list
selftests/bpf: Test_progs can read test lists from file
Will Hawkins (1):
bpf, docs: Update llvm_relocs.rst with typo fixes
Xueming Feng (1):
bpftool: Dump map id instead of value for map_of_maps types
Yafang Shao (2):
bpf: Remove bpf trampoline selector
bpf: Fix memleak due to fentry attach failure
Yonghong Song (2):
selftests/bpf: Fix selftest test_global_funcs/global_func1 failure with latest clang
bpf: Emit struct bpf_tcp_sock type in vmlinux BTF
Documentation/bpf/kfuncs.rst | 23 +-
Documentation/bpf/llvm_reloc.rst | 18 +-
Documentation/bpf/map_hash.rst | 53 +-
Documentation/bpf/map_lru_hash_update.dot | 172 +++++
Documentation/bpf/prog_cgroup_sockopt.rst | 57 +-
arch/arm64/net/bpf_jit_comp.c | 55 +-
drivers/net/ethernet/intel/igc/igc.h | 35 +
drivers/net/ethernet/intel/igc/igc_main.c | 116 ++-
include/linux/bpf.h | 3 +-
include/linux/bpf_verifier.h | 27 +-
include/linux/skbuff.h | 2 +-
include/net/xsk_buff_pool.h | 2 +-
kernel/bpf/bpf_lru_list.c | 21 +-
kernel/bpf/bpf_lru_list.h | 7 +-
kernel/bpf/cgroup.c | 15 +
kernel/bpf/helpers.c | 123 +++-
kernel/bpf/syscall.c | 3 +-
kernel/bpf/trampoline.c | 32 +-
kernel/bpf/verifier.c | 787 ++++++++++++++++-----
kernel/trace/bpf_trace.c | 4 +-
net/core/filter.c | 2 +
net/xdp/xsk_buff_pool.c | 7 +-
samples/bpf/tcp_basertt_kern.c | 2 +-
scripts/pahole-flags.sh | 3 +
tools/bpf/bpftool/feature.c | 24 +-
tools/bpf/bpftool/link.c | 10 +-
tools/bpf/bpftool/map.c | 12 +-
tools/lib/bpf/bpf_helpers.h | 15 +-
tools/lib/bpf/bpf_tracing.h | 3 +-
tools/lib/bpf/btf_dump.c | 22 +-
tools/testing/selftests/bpf/DENYLIST.aarch64 | 83 +--
tools/testing/selftests/bpf/DENYLIST.s390x | 1 +
tools/testing/selftests/bpf/bpf_kfuncs.h | 6 +
.../testing/selftests/bpf/prog_tests/arg_parsing.c | 68 ++
.../bpf/prog_tests/cgroup_getset_retval.c | 20 +
tools/testing/selftests/bpf/prog_tests/dynptr.c | 8 +
tools/testing/selftests/bpf/prog_tests/sockopt.c | 96 ++-
.../selftests/bpf/prog_tests/sockopt_inherit.c | 59 +-
.../selftests/bpf/prog_tests/sockopt_multi.c | 108 +--
.../selftests/bpf/prog_tests/sockopt_qos_to_cc.c | 2 +
.../selftests/bpf/prog_tests/task_under_cgroup.c | 53 ++
tools/testing/selftests/bpf/prog_tests/verifier.c | 2 +
tools/testing/selftests/bpf/progs/bpf_misc.h | 4 +
.../bpf/progs/cgroup_getset_retval_getsockopt.c | 13 +
.../bpf/progs/cgroup_getset_retval_setsockopt.c | 17 +
tools/testing/selftests/bpf/progs/dynptr_fail.c | 307 ++++++++
tools/testing/selftests/bpf/progs/dynptr_success.c | 336 +++++++++
tools/testing/selftests/bpf/progs/iters.c | 26 +-
.../testing/selftests/bpf/progs/sockopt_inherit.c | 18 +-
tools/testing/selftests/bpf/progs/sockopt_multi.c | 26 +-
.../selftests/bpf/progs/sockopt_qos_to_cc.c | 10 +-
tools/testing/selftests/bpf/progs/sockopt_sk.c | 25 +-
.../selftests/bpf/progs/test_global_func1.c | 2 +
.../selftests/bpf/progs/test_task_under_cgroup.c | 51 ++
.../bpf/progs/verifier_subprog_precision.c | 536 ++++++++++++++
.../testing/selftests/bpf/progs/xdp_hw_metadata.c | 4 +-
tools/testing/selftests/bpf/test_progs.c | 37 +-
tools/testing/selftests/bpf/testing_helpers.c | 207 ++++--
tools/testing/selftests/bpf/testing_helpers.h | 3 +
tools/testing/selftests/bpf/verifier/precise.c | 143 ++--
tools/testing/selftests/bpf/veristat.c | 9 +
tools/testing/selftests/bpf/xdp_hw_metadata.c | 47 +-
tools/testing/selftests/bpf/xdp_metadata.h | 1 +
63 files changed, 3293 insertions(+), 690 deletions(-)
create mode 100644 Documentation/bpf/map_lru_hash_update.dot
create mode 100644 tools/testing/selftests/bpf/prog_tests/task_under_cgroup.c
create mode 100644 tools/testing/selftests/bpf/progs/test_task_under_cgroup.c
create mode 100644 tools/testing/selftests/bpf/progs/verifier_subprog_precision.c
Powered by blists - more mailing lists