[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20181221004642.2201-1-daniel@iogearbox.net>
Date: Fri, 21 Dec 2018 01:46:42 +0100
From: Daniel Borkmann <daniel@...earbox.net>
To: davem@...emloft.net
Cc: daniel@...earbox.net, ast@...nel.org, netdev@...r.kernel.org
Subject: pull-request: bpf-next 2018-12-21
Hi David,
The following pull-request contains BPF updates for your *net-next* tree.
There is a merge conflict in test_verifier.c. Result looks as follows:
[...]
},
{
"calls: cross frame pruning",
.insns = {
[...]
.prog_type = BPF_PROG_TYPE_SOCKET_FILTER,
.errstr_unpriv = "function calls to other bpf functions are allowed for root only",
.result_unpriv = REJECT,
.errstr = "!read_ok",
.result = REJECT,
},
{
"jset: functional",
.insns = {
[...]
{
"jset: unknown const compare not taken",
.insns = {
BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0,
BPF_FUNC_get_prandom_u32),
BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 1),
BPF_LDX_MEM(BPF_B, BPF_REG_8, BPF_REG_9, 0),
BPF_EXIT_INSN(),
},
.prog_type = BPF_PROG_TYPE_SOCKET_FILTER,
.errstr_unpriv = "!read_ok",
.result_unpriv = REJECT,
.errstr = "!read_ok",
.result = REJECT,
},
[...]
{
"jset: range",
.insns = {
[...]
},
.prog_type = BPF_PROG_TYPE_SOCKET_FILTER,
.result_unpriv = ACCEPT,
.result = ACCEPT,
},
The main changes are:
1) Various BTF related improvements in order to get line info
working. Meaning, verifier will now annotate the corresponding
BPF C code to the error log, from Martin and Yonghong.
2) Implement support for raw BPF tracepoints in modules, from Matt.
3) Add several improvements to verifier state logic, namely speeding
up stacksafe check, optimizations for stack state equivalence
test and safety checks for liveness analysis, from Alexei.
4) Teach verifier to make use of BPF_JSET instruction, add several
test cases to kselftests and remove nfp specific JSET optimization
now that verifier has awareness, from Jakub.
5) Improve BPF verifier's slot_type marking logic in order to
allow more stack slot sharing, from Jiong.
6) Add sk_msg->size member for context access and add set of fixes
and improvements to make sock_map with kTLS usable with openssl
based applications, from John.
7) Several cleanups and documentation updates in bpftool as well as
auto-mount of tracefs for "bpftool prog tracelog" command,
from Quentin.
8) Include sub-program tags from now on in bpf_prog_info in order to
have a reliable way for user space to get all tags of the program
e.g. needed for kallsyms correlation, from Song.
9) Add BTF annotations for cgroup_local_storage BPF maps and
implement bpf fs pretty print support, from Roman.
10) Fix bpftool in order to allow for cross-compilation, from Ivan.
11) Update of bpftool license to GPLv2-only + BSD-2-Clause in order
to be compatible with libbfd and allow for Debian packaging,
from Jakub.
12) Remove an obsolete prog->aux sanitation in dump and get rid of
version check for prog load, from Daniel.
13) Fix a memory leak in libbpf's line info handling, from Prashant.
14) Fix cpumap's frame alignment for build_skb() so that skb_shared_info
does not get unaligned, from Jesper.
15) Fix test_progs kselftest to work with older compilers which are less
smart in optimizing (and thus throwing build error), from Stanislav.
16) Cleanup and simplify AF_XDP socket teardown, from Björn.
17) Fix sk lookup in BPF kselftest's test_sock_addr with regards
to netns_id argument, from Andrey.
Please consider pulling these changes from:
git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
Thanks a lot & happy holidays!
----------------------------------------------------------------
The following changes since commit 0bd72117fba2dd51a65eaa7b480adc0eea9a4409:
bpf: fix up uapi helper description and sync bpf header with tools (2018-12-11 11:06:43 -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 1cf4a0ccc506b5c027afc5eaf3fddc83f96f31e7:
Merge branch 'bpf-sockmap-fixes-and-improvements' (2018-12-20 23:47:11 +0100)
----------------------------------------------------------------
Alexei Starovoitov (6):
Merge branch 'bpf_line_info-in-verifier'
bpf: speed up stacksafe check
selftests/bpf: check insn processed in test_verifier
bpf: improve stacksafe state comparison
bpf: add self-check logic to liveness analysis
Merge branch 'line_info-check-for-ld_imm64'
Andrey Ignatov (1):
selftests/bpf: Fix sk lookup usage in test_sock_addr
Björn Töpel (1):
xsk: simplify AF_XDP socket teardown
Daniel Borkmann (11):
Merge branch 'bpf-bpftool-license-update'
Merge branch 'bpf-fix-kptr-checks'
bpf: remove obsolete prog->aux sanitation in bpf_insn_prepare_dump
Merge branch 'bpf-improve-verifier-state-analysis'
Merge branch 'bpf-bpftool-cleanups'
bpf: remove useless version check for prog load
Merge branch 'bpf-btf-type-fixes'
Merge branch 'bpf-bpftool-mount-tracefs'
Merge branch 'bpf-sk-msg-size-member'
Merge branch 'bpf-jset-verifier'
Merge branch 'bpf-sockmap-fixes-and-improvements'
Ivan Babrou (1):
tools: bpftool: do not force gcc as CC
Jakub Kicinski (10):
tools: bpftool: fix SPDX format in headers
tools: bpftool: replace Netronome boilerplate with SPDX license headers
tools: bpftool: dual license all files
selftests: bpf: add trivial JSET tests
bpf: verifier: teach the verifier to reason about the BPF_JSET instruction
selftests: bpf: verifier: add tests for JSET interpretation
bpf: verifier: reorder stack size check with dead code sanitization
nfp: bpf: remove the trivial JSET optimization
nfp: bpf: optimize codegen for JSET with a constant
selftests: bpf: add missing executables to .gitignore
Jesper Dangaard Brouer (1):
bpf/cpumap: make sure frame_size for build_skb is aligned if headroom isn't
Jiong Wang (1):
bpf: correct slot_type marking logic to allow more stack slot sharing
John Fastabend (11):
bpf: sockmap, metadata support for reporting size of msg
bpf: add tools lib/include support sk_msg_md size field
bpf: sk_msg, add tests for size field
bpf: sk_msg, fix sk_msg_md access past end test
bpf: sk_msg, improve offset chk in _is_valid_access
bpf: skmsg, replace comments with BUILD bug
bpf: skb_verdict, support SK_PASS on RX BPF path
bpf: sk_msg, fix socket data_ready events
bpf: sk_msg, zap ingress queue on psock down
bpf: sk_msg, sock{map|hash} redirect through ULP
bpf: tls_sw, init TLS ULP removes BPF proto hooks
Martin KaFai Lau (8):
bpf: arm64: Enable arm64 jit to provide bpf_line_info
bpf: Remove bpf_dump_raw_ok() check for func_info and line_info
bpf: Remove !func_info and !line_info check from test_btf and bpftool
bpf: Create a new btf_name_by_offset() for non type name use case
bpf: verbose log bpf_line_info in verifier
bpf: Ensure line_info.insn_off cannot point to insn with zero code
bpf: Add BPF_LD_IMM64 to the line_info test
bpf: sparc64: Enable sparc64 jit to provide bpf_line_info
Matt Mullins (1):
bpf: support raw tracepoints in modules
Prashant Bhole (1):
bpf: libbpf: fix memleak by freeing line_info
Quentin Monnet (7):
tools: bpftool: add doc for -m option to bpftool-prog.rst
tools: bpftool: fix examples in documentation for bpftool prog
tools: bpftool: add a prog array map update example to documentation
tools: bpftool: fix warning on struct bpf_prog_linfo definition
tools: bpftool: fix -Wmissing declaration warnings
tools: bpftool: attempt to mount tracefs if required for tracelog cmd
tools: bpftool: add an option to prevent auto-mount of bpffs, tracefs
Roman Gushchin (3):
bpf: pass struct btf pointer to the map_check_btf() callback
bpf: add bpffs pretty print for cgroup local storage maps
selftests/bpf: add btf annotations for cgroup_local_storage maps
Song Liu (2):
bpf: include sub program tags in bpf_prog_info
bpf: sync tools/include/uapi/linux/bpf.h
Stanislav Fomichev (1):
selftests/bpf: use __bpf_constant_htons in test_prog.c
Yonghong Song (10):
bpf: btf: refactor btf_int_bits_seq_show()
bpf: btf: fix struct/union/fwd types with kind_flag
bpf: enable cgroup local storage map pretty print with kind_flag
tools/bpf: sync btf.h header from kernel to tools
tools/bpf: add test_btf unit tests for kind_flag
tools/bpf: test kernel bpffs map pretty print with struct kind_flag
tools: bpftool: refactor btf_dumper_int_bits()
tools: bpftool: support pretty print with kind_flag set
tools/bpf: check precise {func, line, jited_line}_info_rec_size in test_btf
bpf: log struct/union attribute for forward type
arch/arm64/net/bpf_jit_comp.c | 1 +
arch/sparc/net/bpf_jit_comp_64.c | 1 +
drivers/net/ethernet/netronome/nfp/bpf/jit.c | 27 +-
include/linux/bpf.h | 3 +
include/linux/bpf_verifier.h | 2 +
include/linux/btf.h | 5 +-
include/linux/module.h | 4 +
include/linux/skmsg.h | 9 +
include/linux/socket.h | 1 +
include/linux/trace_events.h | 8 +-
include/net/tls.h | 9 +
include/uapi/linux/bpf.h | 13 +-
include/uapi/linux/btf.h | 20 +-
kernel/bpf/arraymap.c | 1 +
kernel/bpf/btf.c | 393 +++++++++++--
kernel/bpf/cpumap.c | 2 +-
kernel/bpf/local_storage.c | 84 ++-
kernel/bpf/lpm_trie.c | 1 +
kernel/bpf/syscall.c | 80 +--
kernel/bpf/verifier.c | 241 +++++++-
kernel/module.c | 5 +
kernel/trace/bpf_trace.c | 99 +++-
net/core/filter.c | 30 +-
net/core/skmsg.c | 23 +-
net/ipv4/tcp_bpf.c | 15 +-
net/tls/tls_main.c | 14 +-
net/tls/tls_sw.c | 43 +-
net/xdp/xsk.c | 16 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 59 ++
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 105 ++--
tools/bpf/bpftool/Documentation/bpftool.rst | 4 +
tools/bpf/bpftool/Makefile | 2 -
tools/bpf/bpftool/bash-completion/bpftool | 31 +-
tools/bpf/bpftool/btf_dumper.c | 63 +-
tools/bpf/bpftool/cfg.c | 36 +-
tools/bpf/bpftool/cfg.h | 38 +-
tools/bpf/bpftool/cgroup.c | 2 +-
tools/bpf/bpftool/common.c | 69 +--
tools/bpf/bpftool/jit_disasm.c | 1 +
tools/bpf/bpftool/json_writer.c | 7 +-
tools/bpf/bpftool/json_writer.h | 1 +
tools/bpf/bpftool/main.c | 42 +-
tools/bpf/bpftool/main.h | 42 +-
tools/bpf/bpftool/map.c | 34 +-
tools/bpf/bpftool/map_perf_ring.c | 2 +-
tools/bpf/bpftool/net.c | 2 +-
tools/bpf/bpftool/netlink_dumper.c | 2 +-
tools/bpf/bpftool/netlink_dumper.h | 2 +-
tools/bpf/bpftool/perf.c | 2 +-
tools/bpf/bpftool/prog.c | 45 +-
tools/bpf/bpftool/tracelog.c | 23 +-
tools/bpf/bpftool/xlated_dumper.c | 43 +-
tools/bpf/bpftool/xlated_dumper.h | 38 +-
tools/include/uapi/linux/bpf.h | 13 +-
tools/include/uapi/linux/btf.h | 20 +-
tools/lib/bpf/bpf_prog_linfo.c | 6 +-
tools/lib/bpf/libbpf.c | 1 +
tools/testing/selftests/bpf/.gitignore | 1 +
tools/testing/selftests/bpf/connect4_prog.c | 6 +-
tools/testing/selftests/bpf/connect6_prog.c | 6 +-
tools/testing/selftests/bpf/netcnt_prog.c | 6 +
tools/testing/selftests/bpf/test_btf.c | 708 ++++++++++++++++++++++-
tools/testing/selftests/bpf/test_progs.c | 8 +-
tools/testing/selftests/bpf/test_verifier.c | 392 +++++++++++--
64 files changed, 2332 insertions(+), 680 deletions(-)
Powered by blists - more mailing lists