Hi David, The following pull-request contains BPF updates for your *net-next* tree. We've added 46 non-merge commits during the last 6 day(s) which contain a total of 68 files changed, 4929 insertions(+), 526 deletions(-). The main changes are: 1) Run BPF program on socket lookup, from Jakub. 2) Introduce cpumap, from Lorenzo. 3) s390 JIT fixes, from Ilya. 4) teach riscv JIT to emit compressed insns, from Luke. 5) use build time computed BTF ids in bpf iter, 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, Ilya Leoshkevich, Jakub Sitnicki, Jesper Dangaard Brouer, Jiri Olsa, Quentin Monnet, Randy Dunlap, Seth Forshee, Stephen Rothwell ---------------------------------------------------------------- The following changes since commit 9b74ebb2b0f259474da65fa0178c657e5fa5c640: cpumap: Use non-locked version __ptr_ring_consume_batched (2020-07-16 17:00:31 +0200) 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 9165e1d70fb34ce438e78aad90408cfa86e4c2d0: bpftool: Use only nftw for file tree parsing (2020-07-21 23:42:56 +0200) ---------------------------------------------------------------- Alexei Starovoitov (3): Merge branch 'bpf-socket-lookup' Merge branch 'compressed-JITed-insn' Merge branch 'bpf_iter-BTF_ID-at-build-time' David Ahern (1): net: Refactor xdp_convert_buff_to_frame Ian Rogers (1): libbpf bpf_helpers: Use __builtin_offsetof for offsetof Ilya Leoshkevich (7): selftests: bpf: test_kmod.sh: Fix running out of srctree s390/bpf: Fix sign extension in branch_ku s390/bpf: Use brcl for jumping to exit_ip if necessary s390/bpf: Tolerate not converging code shrinking s390/bpf: Use bpf_skip() in bpf_jit_prologue() selftests/bpf: Fix test_lwt_seg6local.sh hangs samples/bpf, selftests/bpf: Use bpf_probe_read_kernel Jakub Sitnicki (16): bpf, netns: Handle multiple link attachments bpf: Introduce SK_LOOKUP program type with a dedicated attach point inet: Extract helper for selecting socket from reuseport group inet: Run SK_LOOKUP BPF program on socket lookup inet6: Extract helper for selecting socket from reuseport group inet6: Run SK_LOOKUP BPF program on socket lookup udp: Extract helper for selecting socket from reuseport group udp: Run SK_LOOKUP BPF program on socket lookup udp6: Extract helper for selecting socket from reuseport group udp6: Run SK_LOOKUP BPF program on socket lookup bpf: Sync linux/bpf.h to tools/ libbpf: Add support for SK_LOOKUP program type tools/bpftool: Add name mappings for SK_LOOKUP prog and attach type selftests/bpf: Add verifier tests for bpf_sk_lookup context access selftests/bpf: Tests for BPF_SK_LOOKUP attach point bpf, netns: Fix build without CONFIG_INET Lorenzo Bianconi (8): samples/bpf: xdp_redirect_cpu_user: Do not update bpf maps in option loop cpumap: Formalize map value as a named struct bpf: cpumap: Add the possibility to attach an eBPF program to cpumap bpf: cpumap: Implement XDP_REDIRECT for eBPF programs attached to map entries libbpf: Add SEC name for xdp programs attached to CPUMAP samples/bpf: xdp_redirect_cpu: Load a eBPF program on cpumap selftest: Add tests for XDP programs in CPUMAP entries bpf: cpumap: Fix possible rcpu kthread hung Luke Nelson (3): bpf, riscv: Modify JIT ctx to support compressed instructions bpf, riscv: Add encodings for compressed instructions bpf, riscv: Use compressed instructions in the rv64 JIT Randy Dunlap (1): bpf: Drop duplicated words in uapi helper comments Seth Forshee (1): bpf: revert "test_bpf: Flag tests that cannot be jited on s390" Stanislav Fomichev (1): selftests/bpf: Fix possible hang in sockopt_inherit Tony Ambardar (1): bpftool: Use only nftw for file tree parsing Yonghong Song (5): bpf: Compute bpf_skc_to_*() helper socket btf ids at build time tools/bpf: Sync btf_ids.h to tools bpf: Add BTF_ID_LIST_GLOBAL in btf_ids.h bpf: Make btf_sock_ids global bpf: net: Use precomputed btf_id for bpf iterators YueHaibing (1): tools/bpftool: Fix error handing in do_skeleton() arch/riscv/net/bpf_jit.h | 483 +++++++- arch/riscv/net/bpf_jit_comp32.c | 14 +- arch/riscv/net/bpf_jit_comp64.c | 293 ++--- arch/riscv/net/bpf_jit_core.c | 6 +- arch/s390/net/bpf_jit_comp.c | 63 +- include/linux/bpf-netns.h | 3 + include/linux/bpf.h | 15 +- include/linux/bpf_types.h | 2 + include/linux/btf_ids.h | 40 +- include/linux/filter.h | 147 +++ include/net/xdp.h | 41 +- include/trace/events/xdp.h | 16 +- include/uapi/linux/bpf.h | 97 +- kernel/bpf/btf.c | 6 +- kernel/bpf/core.c | 55 + kernel/bpf/cpumap.c | 167 ++- kernel/bpf/map_iter.c | 7 +- kernel/bpf/net_namespace.c | 131 +- kernel/bpf/syscall.c | 9 + kernel/bpf/task_iter.c | 12 +- kernel/bpf/verifier.c | 13 +- lib/test_bpf.c | 20 - net/core/dev.c | 9 + net/core/filter.c | 228 +++- net/ipv4/inet_hashtables.c | 60 +- net/ipv4/tcp_ipv4.c | 4 +- net/ipv4/udp.c | 97 +- net/ipv6/inet6_hashtables.c | 66 +- net/ipv6/route.c | 7 +- net/ipv6/udp.c | 97 +- net/netlink/af_netlink.c | 7 +- samples/bpf/offwaketime_kern.c | 7 +- samples/bpf/test_overhead_kprobe_kern.c | 12 +- samples/bpf/tracex1_kern.c | 9 +- samples/bpf/tracex5_kern.c | 4 +- samples/bpf/xdp_redirect_cpu_kern.c | 25 +- samples/bpf/xdp_redirect_cpu_user.c | 209 +++- scripts/bpf_helpers_doc.py | 9 +- tools/bpf/bpftool/Documentation/bpftool-prog.rst | 2 +- tools/bpf/bpftool/bash-completion/bpftool | 2 +- tools/bpf/bpftool/common.c | 138 ++- tools/bpf/bpftool/gen.c | 5 +- tools/bpf/bpftool/main.h | 4 +- tools/bpf/bpftool/prog.c | 3 +- tools/bpf/bpftool/skeleton/pid_iter.bpf.c | 3 +- tools/include/linux/btf_ids.h | 51 +- tools/include/uapi/linux/bpf.h | 97 +- tools/lib/bpf/bpf_helpers.h | 2 +- tools/lib/bpf/libbpf.c | 5 + tools/lib/bpf/libbpf.h | 2 + tools/lib/bpf/libbpf.map | 2 + tools/lib/bpf/libbpf_probes.c | 3 + tools/testing/selftests/bpf/network_helpers.c | 58 +- tools/testing/selftests/bpf/network_helpers.h | 2 + .../selftests/bpf/prog_tests/resolve_btfids.c | 34 +- tools/testing/selftests/bpf/prog_tests/sk_lookup.c | 1282 ++++++++++++++++++++ .../selftests/bpf/prog_tests/sockopt_inherit.c | 3 +- .../selftests/bpf/prog_tests/xdp_cpumap_attach.c | 70 ++ .../testing/selftests/bpf/progs/bpf_iter_netlink.c | 6 +- tools/testing/selftests/bpf/progs/bpf_iter_tcp4.c | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_tcp6.c | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_udp4.c | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_udp6.c | 2 +- tools/testing/selftests/bpf/progs/test_sk_lookup.c | 641 ++++++++++ .../bpf/progs/test_xdp_with_cpumap_helpers.c | 36 + tools/testing/selftests/bpf/test_kmod.sh | 12 +- tools/testing/selftests/bpf/test_lwt_seg6local.sh | 2 +- .../testing/selftests/bpf/verifier/ctx_sk_lookup.c | 492 ++++++++ 68 files changed, 4929 insertions(+), 526 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/sk_lookup.c create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c create mode 100644 tools/testing/selftests/bpf/progs/test_sk_lookup.c create mode 100644 tools/testing/selftests/bpf/progs/test_xdp_with_cpumap_helpers.c create mode 100644 tools/testing/selftests/bpf/verifier/ctx_sk_lookup.c