bpf: Introduce global functions
From: | Alexei Starovoitov <ast-AT-kernel.org> | |
To: | <davem-AT-davemloft.net> | |
Subject: | [PATCH bpf-next 0/6] bpf: Introduce global functions | |
Date: | Tue, 7 Jan 2020 23:25:32 -0800 | |
Message-ID: | <20200108072538.3359838-1-ast@kernel.org> | |
Cc: | <daniel-AT-iogearbox.net>, <netdev-AT-vger.kernel.org>, <bpf-AT-vger.kernel.org>, <kernel-team-AT-fb.com> | |
Archive-link: | Article |
Introduce static vs global functions and function by function verification. This is another step toward dynamic re-linking (or replacement) of global functions. See patch 3 for details. The rest are supporting patches. Alexei Starovoitov (6): libbpf: Sanitize BTF_KIND_FUNC linkage libbpf: Collect static vs global info about functions bpf: Introduce function-by-function verification selftests/bpf: Add fexit-to-skb test for global funcs selftests/bpf: Add a test for a large global function selftests/bpf: Modify a test to check global functions include/linux/bpf.h | 7 +- include/linux/bpf_verifier.h | 7 +- include/uapi/linux/btf.h | 6 + kernel/bpf/btf.c | 147 ++++++++--- kernel/bpf/verifier.c | 228 ++++++++++++++---- tools/include/uapi/linux/btf.h | 6 + tools/lib/bpf/libbpf.c | 150 +++++++++++- .../bpf/prog_tests/bpf_verif_scale.c | 2 + .../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 1 + .../selftests/bpf/progs/fexit_bpf2bpf.c | 15 ++ tools/testing/selftests/bpf/progs/pyperf.h | 9 +- .../selftests/bpf/progs/pyperf_global.c | 5 + .../selftests/bpf/progs/test_pkt_access.c | 28 +++ .../selftests/bpf/progs/test_xdp_noinline.c | 4 +- 14 files changed, 528 insertions(+), 87 deletions(-) create mode 100644 tools/testing/selftests/bpf/progs/pyperf_global.c -- 2.23.0