Hi David, The following pull-request contains BPF updates for your *net-next* tree. We've added 41 non-merge commits during the last 7 day(s) which contain a total of 49 files changed, 1383 insertions(+), 499 deletions(-). The main changes are: 1) BPF and Real-Time nicely co-exist. 2) bpftool feature improvements. 3) retrieve bpf_sk_storage via INET_DIAG. 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: Alexei Starovoitov, Jason Wang, Martin KaFai Lau, Michael S. Tsirkin, Quentin Monnet, Song Liu, Thomas Gleixner ---------------------------------------------------------------- The following changes since commit 732a0dee501f9a693c9a711730838129f4587041: Merge branch 'mlxfw-Improve-error-reporting-and-FW-reactivate-support' (2020-02-21 15:41:10 -0800) 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 812285fa5ab129e3a55682314bf235f701564310: Merge branch 'bpf_sk_storage_via_inet_diag' (2020-02-27 18:53:37 -0800) ---------------------------------------------------------------- Alexei Starovoitov (4): Merge tag 'sched-for-bpf-2020-02-20' of git://git.kernel.org/.../tip/tip into bpf-next bpf: disable preemption for bpf progs attached to uprobe Merge branch 'BPF_and_RT' Merge branch 'bpf_sk_storage_via_inet_diag' Andrey Ignatov (1): bpftool: Support struct_ops, tracing, ext prog types Andrii Nakryiko (1): selftests/bpf: Print backtrace on SIGSEGV in test_progs Daniel Borkmann (1): Merge branch 'bpf-bpftool-probes' David Miller (5): bpf: Use bpf_prog_run_pin_on_cpu() at simple call sites. bpf/tests: Use migrate disable instead of preempt disable bpf: Use migrate_disable/enabe() in trampoline code. bpf: Use migrate_disable/enable in array macros and cgroup/lirc code. bpf/stackmap: Dont trylock mmap_sem with PREEMPT_RT and interrupts disabled Gustavo A. R. Silva (1): bpf: Replace zero-length array with flexible-array member Jakub Sitnicki (2): selftests/bpf: Run reuseport tests only with supported socket types selftests/bpf: Run SYN cookies with reuseport BPF test only for TCP Martin KaFai Lau (4): inet_diag: Refactor inet_sk_diag_fill(), dump(), and dump_one() inet_diag: Move the INET_DIAG_REQ_BYTECODE nlattr to cb->data bpf: INET_DIAG support in bpf_sk_storage bpf: inet_diag: Dump bpf_sk_storages in inet_diag_dump() Michal Rostecki (5): bpftool: Move out sections to separate functions bpftool: Make probes which emit dmesg warnings optional bpftool: Update documentation of "bpftool feature" command bpftool: Update bash completion for "bpftool feature" command selftests/bpf: Add test for "bpftool feature" command Scott Branden (1): scripts/bpf: Switch to more portable python3 shebang Thomas Gleixner (18): sched: Provide cant_migrate() bpf: Tighten the requirements for preallocated hash maps bpf: Enforce preallocation for instrumentation programs on RT bpf: Update locking comment in hashtab code bpf/tracing: Remove redundant preempt_disable() in __bpf_trace_run() bpf/trace: Remove EXPORT from trace_call_bpf() bpf/trace: Remove redundant preempt_disable from trace_call_bpf() perf/bpf: Remove preempt disable around BPF invocation bpf: Remove recursion prevention from rcu free callback bpf: Dont iterate over possible CPUs with interrupts disabled bpf: Provide bpf_prog_run_pin_on_cpu() helper bpf: Replace cant_sleep() with cant_migrate() bpf: Provide recursion prevention helpers bpf: Use recursion prevention helpers in hashtab code bpf: Replace open coded recursion prevention in sys_bpf() bpf: Factor out hashtab bucket lock operations bpf: Prepare hashtab locking for PREEMPT_RT bpf, lpm: Make locking RT friendly Yuya Kusakabe (2): virtio_net: Keep vnet header zeroed if XDP is loaded for small buffer virtio_net: Add XDP meta data support drivers/net/virtio_net.c | 56 ++-- include/linux/bpf-cgroup.h | 2 +- include/linux/bpf.h | 41 ++- include/linux/filter.h | 37 ++- include/linux/inet_diag.h | 27 +- include/linux/kernel.h | 7 + include/linux/netlink.h | 4 +- include/linux/preempt.h | 30 ++ include/net/bpf_sk_storage.h | 27 ++ include/uapi/linux/bpf.h | 2 +- include/uapi/linux/inet_diag.h | 5 +- include/uapi/linux/sock_diag.h | 26 ++ kernel/bpf/bpf_struct_ops.c | 2 +- kernel/bpf/hashtab.c | 174 ++++++++---- kernel/bpf/lpm_trie.c | 14 +- kernel/bpf/percpu_freelist.c | 20 +- kernel/bpf/stackmap.c | 18 +- kernel/bpf/syscall.c | 42 +-- kernel/bpf/trampoline.c | 9 +- kernel/bpf/verifier.c | 40 ++- kernel/events/core.c | 2 - kernel/seccomp.c | 4 +- kernel/trace/bpf_trace.c | 7 +- kernel/trace/trace_uprobe.c | 11 +- lib/test_bpf.c | 4 +- net/bpf/test_run.c | 8 +- net/core/bpf_sk_storage.c | 283 ++++++++++++++++++- net/core/flow_dissector.c | 4 +- net/core/skmsg.c | 8 +- net/dccp/diag.c | 9 +- net/ipv4/inet_diag.c | 307 +++++++++++++-------- net/ipv4/raw_diag.c | 24 +- net/ipv4/tcp_diag.c | 8 +- net/ipv4/udp_diag.c | 41 ++- net/kcm/kcmsock.c | 4 +- net/sctp/diag.c | 7 +- scripts/bpf_helpers_doc.py | 2 +- .../bpf/bpftool/Documentation/bpftool-feature.rst | 19 +- tools/bpf/bpftool/Documentation/bpftool-prog.rst | 3 +- tools/bpf/bpftool/bash-completion/bpftool | 6 +- tools/bpf/bpftool/feature.c | 283 +++++++++++-------- tools/bpf/bpftool/main.h | 3 + tools/bpf/bpftool/prog.c | 4 +- tools/testing/selftests/.gitignore | 5 +- tools/testing/selftests/bpf/Makefile | 5 +- .../selftests/bpf/prog_tests/select_reuseport.c | 30 +- tools/testing/selftests/bpf/test_bpftool.py | 178 ++++++++++++ tools/testing/selftests/bpf/test_bpftool.sh | 5 + tools/testing/selftests/bpf/test_progs.c | 25 ++ 49 files changed, 1383 insertions(+), 499 deletions(-) create mode 100644 tools/testing/selftests/bpf/test_bpftool.py create mode 100755 tools/testing/selftests/bpf/test_bpftool.sh