[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200515020321.31979-1-alexei.starovoitov@gmail.com>
Date: Thu, 14 May 2020 19:03:21 -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-05-14
Hi David,
The following pull-request contains BPF updates for your *net-next* tree.
The main changes are:
1) Merged tag 'perf-for-bpf-2020-05-06' from tip tree that includes CAP_PERFMON.
2) support for narrow loads in bpf_sock_addr progs and additional
helpers in cg-skb progs, from Andrey.
3) bpf benchmark runner, from Andrii.
4) arm and riscv JIT optimizations, from Luke.
5) bpf iterator infrastructure, from Yonghong.
Please consider pulling these changes from:
git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
Thanks a lot!
----------------------------------------------------------------
The following changes since commit 60bcbc41ffb35572288681f41d1d8ab8bdb98841:
Merge branch 'net-smc-add-and-delete-link-processing' (2020-05-03 16:08:29 -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 b92d44b5c2efe70dbe7fc44fdd2ad46f8612418a:
Merge branch 'expand-cg_skb-helpers' (2020-05-14 18:42:02 -0700)
----------------------------------------------------------------
Alexei Starovoitov (5):
Merge tag 'perf-for-bpf-2020-05-06' of git://git.kernel.org/.../tip/tip into bpf-next
Merge branch 'bpf_iter'
Merge branch 'benchmark-runner'
Merge branch 'bpf_iter-fixes'
Merge branch 'expand-cg_skb-helpers'
Alexey Budankov (1):
capabilities: Introduce CAP_PERFMON to kernel and user space
Andrey Ignatov (7):
bpf: Support narrow loads from bpf_sock_addr.user_port
selftests/bpf: Test narrow loads for bpf_sock_addr.user_port
bpf: Allow sk lookup helpers in cgroup skb
bpf: Allow skb_ancestor_cgroup_id helper in cgroup skb
bpf: Introduce bpf_sk_{, ancestor_}cgroup_id helpers
selftests/bpf: Add connect_fd_to_fd, connect_wait net helpers
selftests/bpf: Test for sk helpers in cgroup skb
Andrii Nakryiko (5):
selftests/bpf: Extract parse_num_list into generic testing_helpers.c
selftests/bpf: Add benchmark runner infrastructure
selftest/bpf: Fmod_ret prog and implement test_overhead as part of bench
selftest/bpf: Add BPF triggering benchmark
bpf: Fix bpf_iter's task iterator logic
Arnaldo Carvalho de Melo (1):
perf stat: Honour --timeout for forked workloads
Arnd Bergmann (2):
bpf: Avoid gcc-10 stringop-overflow warning in struct bpf_prog
sysctl: Fix unused function warning
Colin Ian King (1):
selftest/bpf: Fix spelling mistake "SIGALARM" -> "SIGALRM"
Daniel Borkmann (1):
Merge branch 'bpf-rv64-jit'
Eelco Chaudron (1):
libbpf: Fix probe code to return EPERM if encountered
Gustavo A. R. Silva (1):
bpf, libbpf: Replace zero-length array with flexible-array
Jason Yan (1):
bpf, i386: Remove unneeded conversion to bool
Jiri Olsa (3):
perf tools: Synthesize bpf_trampoline/dispatcher ksymbol event
perf machine: Set ksymbol dso as loaded on arrival
perf annotate: Add basic support for bpf_image
Lorenzo Bianconi (1):
samples/bpf: xdp_redirect_cpu: Set MAX_CPUS according to NR_CPUS
Luke Nelson (6):
bpf, arm: Optimize ALU64 ARSH X using orrpl conditional instruction
bpf, arm: Optimize ALU ARSH K using asr immediate instruction
bpf, riscv: Enable missing verifier_zext optimizations on RV64
bpf, riscv: Optimize FROM_LE using verifier_zext on RV64
bpf, riscv: Optimize BPF_JMP BPF_K when imm == 0 on RV64
bpf, riscv: Optimize BPF_JSET BPF_K using andi on RV64
Magnus Karlsson (2):
xsk: Change two variable names for increased clarity
xsk: Remove unnecessary member in xdp_umem
Quentin Monnet (4):
tools, bpftool: Poison and replace kernel integer typedefs
tools, bpftool: Minor fixes for documentation
bpf: Minor fixes to BPF helpers documentation
tools, bpf: Synchronise BPF UAPI header with tools
Song Liu (1):
bpf, runqslower: include proper uapi/bpf.h
Stanislav Fomichev (4):
selftests/bpf: Generalize helpers to control background listener
selftests/bpf: Move existing common networking parts into network_helpers
net: Refactor arguments of inet{,6}_bind
bpf: Allow any port in bpf_bind helper
Yauheni Kaliuta (1):
selftests/bpf: Install generated test progs
Yonghong Song (28):
bpf: Implement an interface to register bpf_iter targets
bpf: Allow loading of a bpf_iter program
bpf: Support bpf tracing/iter programs for BPF_LINK_CREATE
bpf: Support bpf tracing/iter programs for BPF_LINK_UPDATE
bpf: Implement bpf_seq_read() for bpf iterator
bpf: Create anonymous bpf iterator
bpf: Create file bpf iterator
bpf: Implement common macros/helpers for target iterators
bpf: Add bpf_map iterator
net: bpf: Add netlink and ipv6_route bpf_iter targets
bpf: Add task and task/file iterator targets
bpf: Add PTR_TO_BTF_ID_OR_NULL support
bpf: Add bpf_seq_printf and bpf_seq_write helpers
bpf: Handle spilled PTR_TO_BTF_ID properly when checking stack_boundary
bpf: Support variable length array in tracing programs
tools/libbpf: Add bpf_iter support
tools/libpf: Add offsetof/container_of macro in bpf_helpers.h
tools/bpftool: Add bpf_iter support for bptool
tools/bpf: selftests: Add iterator programs for ipv6_route and netlink
tools/bpf: selftests: Add iter progs for bpf_map/task/task_file
tools/bpf: selftests: Add bpf_iter selftests
tools/bpf: selftests : Explain bpf_iter test failures with llvm 10.0.0
bpf: Change btf_iter func proto prefix to "bpf_iter_"
bpf: Add comments to interpret bpf_prog return values
bpf: net: Refactor bpf_iter target registration
bpf: Change func bpf_iter_unreg_target() signature
bpf: Enable bpf_iter targets registering ctx argument types
samples/bpf: Remove compiler warnings
arch/arm/net/bpf_jit_32.c | 14 +-
arch/arm/net/bpf_jit_32.h | 3 +
arch/riscv/net/bpf_jit_comp64.c | 64 ++-
arch/x86/net/bpf_jit_comp32.c | 4 +-
fs/proc/proc_net.c | 19 +
include/linux/bpf.h | 46 ++
include/linux/bpf_types.h | 1 +
include/linux/capability.h | 4 +
include/linux/filter.h | 6 +-
include/linux/proc_fs.h | 3 +
include/net/inet_common.h | 8 +-
include/net/ip6_fib.h | 7 +
include/net/ipv6_stubs.h | 2 +-
include/net/xdp_sock.h | 5 +-
include/uapi/linux/bpf.h | 173 +++++--
include/uapi/linux/capability.h | 8 +-
kernel/bpf/Makefile | 2 +-
kernel/bpf/bpf_iter.c | 539 +++++++++++++++++++++
kernel/bpf/btf.c | 47 +-
kernel/bpf/inode.c | 5 +-
kernel/bpf/map_iter.c | 102 ++++
kernel/bpf/queue_stack_maps.c | 2 +-
kernel/bpf/syscall.c | 59 +++
kernel/bpf/task_iter.c | 353 ++++++++++++++
kernel/bpf/verifier.c | 41 +-
kernel/sysctl.c | 2 +-
kernel/trace/bpf_trace.c | 214 ++++++++
net/core/filter.c | 101 +++-
net/ipv4/af_inet.c | 20 +-
net/ipv6/af_inet6.c | 22 +-
net/ipv6/ip6_fib.c | 60 ++-
net/ipv6/route.c | 42 ++
net/netlink/af_netlink.c | 92 +++-
net/xdp/xdp_umem.c | 21 +-
net/xdp/xsk.c | 8 +-
net/xdp/xsk_queue.c | 4 +-
net/xdp/xsk_queue.h | 8 +-
samples/bpf/offwaketime_kern.c | 4 +-
samples/bpf/sockex2_kern.c | 4 +-
samples/bpf/sockex3_kern.c | 4 +-
samples/bpf/xdp_redirect_cpu_kern.c | 2 +-
samples/bpf/xdp_redirect_cpu_user.c | 29 +-
scripts/bpf_helpers_doc.py | 8 +
security/selinux/include/classmap.h | 4 +-
tools/bpf/bpftool/Documentation/bpftool-btf.rst | 11 +-
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 12 +-
.../bpf/bpftool/Documentation/bpftool-feature.rst | 12 +-
tools/bpf/bpftool/Documentation/bpftool-gen.rst | 21 +-
tools/bpf/bpftool/Documentation/bpftool-iter.rst | 81 ++++
tools/bpf/bpftool/Documentation/bpftool-link.rst | 9 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 37 +-
tools/bpf/bpftool/Documentation/bpftool-net.rst | 12 +-
tools/bpf/bpftool/Documentation/bpftool-perf.rst | 12 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 23 +-
.../bpftool/Documentation/bpftool-struct_ops.rst | 11 +-
tools/bpf/bpftool/Documentation/bpftool.rst | 11 +-
tools/bpf/bpftool/bash-completion/bpftool | 13 +
tools/bpf/bpftool/btf_dumper.c | 4 +-
tools/bpf/bpftool/cfg.c | 4 +-
tools/bpf/bpftool/iter.c | 88 ++++
tools/bpf/bpftool/link.c | 1 +
tools/bpf/bpftool/main.c | 3 +-
tools/bpf/bpftool/main.h | 4 +
tools/bpf/bpftool/map.c | 3 +-
tools/bpf/bpftool/map_perf_ring.c | 2 +-
tools/bpf/bpftool/prog.c | 2 +-
tools/bpf/runqslower/Makefile | 3 +-
tools/include/uapi/linux/bpf.h | 173 +++++--
tools/lib/bpf/bpf.c | 10 +
tools/lib/bpf/bpf.h | 2 +
tools/lib/bpf/bpf_helpers.h | 14 +
tools/lib/bpf/bpf_tracing.h | 16 +
tools/lib/bpf/libbpf.c | 90 +++-
tools/lib/bpf/libbpf.h | 9 +
tools/lib/bpf/libbpf.map | 2 +
tools/lib/bpf/libbpf_internal.h | 2 +-
tools/perf/builtin-stat.c | 5 +-
tools/perf/util/annotate.c | 20 +
tools/perf/util/bpf-event.c | 93 ++++
tools/perf/util/dso.c | 1 +
tools/perf/util/dso.h | 1 +
tools/perf/util/machine.c | 12 +
tools/perf/util/symbol.c | 1 +
tools/testing/selftests/bpf/.gitignore | 1 +
tools/testing/selftests/bpf/Makefile | 19 +-
tools/testing/selftests/bpf/README.rst | 43 ++
tools/testing/selftests/bpf/bench.c | 449 +++++++++++++++++
tools/testing/selftests/bpf/bench.h | 81 ++++
tools/testing/selftests/bpf/benchs/bench_count.c | 91 ++++
tools/testing/selftests/bpf/benchs/bench_rename.c | 195 ++++++++
tools/testing/selftests/bpf/benchs/bench_trigger.c | 167 +++++++
.../selftests/bpf/benchs/run_bench_rename.sh | 9 +
.../selftests/bpf/benchs/run_bench_trigger.sh | 9 +
tools/testing/selftests/bpf/network_helpers.c | 158 ++++++
tools/testing/selftests/bpf/network_helpers.h | 41 ++
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 409 ++++++++++++++++
.../bpf/prog_tests/cgroup_skb_sk_lookup.c | 95 ++++
.../selftests/bpf/prog_tests/connect_force_port.c | 115 +++++
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 1 +
.../selftests/bpf/prog_tests/flow_dissector.c | 1 +
.../bpf/prog_tests/flow_dissector_load_bytes.c | 1 +
.../testing/selftests/bpf/prog_tests/global_data.c | 1 +
tools/testing/selftests/bpf/prog_tests/kfree_skb.c | 1 +
tools/testing/selftests/bpf/prog_tests/l4lb_all.c | 1 +
tools/testing/selftests/bpf/prog_tests/map_lock.c | 14 +
.../testing/selftests/bpf/prog_tests/pkt_access.c | 1 +
.../selftests/bpf/prog_tests/pkt_md_access.c | 1 +
.../selftests/bpf/prog_tests/prog_run_xattr.c | 1 +
.../selftests/bpf/prog_tests/queue_stack_map.c | 1 +
.../selftests/bpf/prog_tests/signal_pending.c | 1 +
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 1 +
tools/testing/selftests/bpf/prog_tests/spinlock.c | 14 +
tools/testing/selftests/bpf/prog_tests/tcp_rtt.c | 116 +----
.../selftests/bpf/prog_tests/test_overhead.c | 14 +-
tools/testing/selftests/bpf/prog_tests/xdp.c | 1 +
.../selftests/bpf/prog_tests/xdp_adjust_tail.c | 1 +
.../testing/selftests/bpf/prog_tests/xdp_bpf2bpf.c | 1 +
.../selftests/bpf/prog_tests/xdp_noinline.c | 1 +
.../testing/selftests/bpf/progs/bpf_iter_bpf_map.c | 28 ++
.../selftests/bpf/progs/bpf_iter_ipv6_route.c | 62 +++
.../testing/selftests/bpf/progs/bpf_iter_netlink.c | 66 +++
tools/testing/selftests/bpf/progs/bpf_iter_task.c | 25 +
.../selftests/bpf/progs/bpf_iter_task_file.c | 26 +
.../selftests/bpf/progs/bpf_iter_test_kern1.c | 4 +
.../selftests/bpf/progs/bpf_iter_test_kern2.c | 4 +
.../selftests/bpf/progs/bpf_iter_test_kern3.c | 18 +
.../selftests/bpf/progs/bpf_iter_test_kern4.c | 52 ++
.../bpf/progs/bpf_iter_test_kern_common.h | 22 +
.../bpf/progs/cgroup_skb_sk_lookup_kern.c | 97 ++++
.../selftests/bpf/progs/connect_force_port4.c | 28 ++
.../selftests/bpf/progs/connect_force_port6.c | 28 ++
.../testing/selftests/bpf/progs/core_reloc_types.h | 2 +-
tools/testing/selftests/bpf/progs/test_overhead.c | 6 +
tools/testing/selftests/bpf/progs/trigger_bench.c | 47 ++
tools/testing/selftests/bpf/test_progs.c | 97 +---
tools/testing/selftests/bpf/test_progs.h | 24 +-
tools/testing/selftests/bpf/test_sock_addr.c | 38 +-
tools/testing/selftests/bpf/testing_helpers.c | 66 +++
tools/testing/selftests/bpf/testing_helpers.h | 5 +
139 files changed, 5253 insertions(+), 544 deletions(-)
create mode 100644 kernel/bpf/bpf_iter.c
create mode 100644 kernel/bpf/map_iter.c
create mode 100644 kernel/bpf/task_iter.c
create mode 100644 tools/bpf/bpftool/Documentation/bpftool-iter.rst
create mode 100644 tools/bpf/bpftool/iter.c
create mode 100644 tools/testing/selftests/bpf/README.rst
create mode 100644 tools/testing/selftests/bpf/bench.c
create mode 100644 tools/testing/selftests/bpf/bench.h
create mode 100644 tools/testing/selftests/bpf/benchs/bench_count.c
create mode 100644 tools/testing/selftests/bpf/benchs/bench_rename.c
create mode 100644 tools/testing/selftests/bpf/benchs/bench_trigger.c
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_rename.sh
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_trigger.sh
create mode 100644 tools/testing/selftests/bpf/network_helpers.c
create mode 100644 tools/testing/selftests/bpf/network_helpers.h
create mode 100644 tools/testing/selftests/bpf/prog_tests/bpf_iter.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_skb_sk_lookup.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/connect_force_port.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_bpf_map.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_ipv6_route.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_netlink.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_task.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_task_file.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_test_kern1.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_test_kern2.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_test_kern3.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_test_kern4.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_test_kern_common.h
create mode 100644 tools/testing/selftests/bpf/progs/cgroup_skb_sk_lookup_kern.c
create mode 100644 tools/testing/selftests/bpf/progs/connect_force_port4.c
create mode 100644 tools/testing/selftests/bpf/progs/connect_force_port6.c
create mode 100644 tools/testing/selftests/bpf/progs/trigger_bench.c
create mode 100644 tools/testing/selftests/bpf/testing_helpers.c
create mode 100644 tools/testing/selftests/bpf/testing_helpers.h
Powered by blists - more mailing lists