OSDN Git Service

bpf: Prepare relo_core.c for kernel duty.
authorAlexei Starovoitov <ast@kernel.org>
Wed, 1 Dec 2021 18:10:26 +0000 (10:10 -0800)
committerAndrii Nakryiko <andrii@kernel.org>
Thu, 2 Dec 2021 19:18:34 +0000 (11:18 -0800)
commit29db4bea1d10b73749d7992c1fc9ac13499e8871
tree31f7d97402820d1003f9a6e21c0a2b85cafe7e4f
parent8293eb995f349aed28006792cad4cb48091919dd
bpf: Prepare relo_core.c for kernel duty.

Make relo_core.c to be compiled for the kernel and for user space libbpf.

Note the patch is reducing BPF_CORE_SPEC_MAX_LEN from 64 to 32.
This is the maximum number of nested structs and arrays.
For example:
 struct sample {
     int a;
     struct {
         int b[10];
     };
 };

 struct sample *s = ...;
 int *y = &s->b[5];
This field access is encoded as "0:1:0:5" and spec len is 4.

The follow up patch might bump it back to 64.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20211201181040.23337-4-alexei.starovoitov@gmail.com
include/linux/btf.h
kernel/bpf/Makefile
kernel/bpf/btf.c
tools/lib/bpf/relo_core.c