]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: Convert bpf_preload.ko to use light skeleton.
authorAlexei Starovoitov <ast@kernel.org>
Wed, 9 Feb 2022 23:20:01 +0000 (15:20 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 10 Feb 2022 22:31:51 +0000 (23:31 +0100)
commit85219103310a86b9ae5d6fe4f9d5d34c016a4ce7
tree2c708b487fbf686fe0ba29a31355236335e2ce75
parentd39a556fdbedaa6d6d96a0a043a7513ec9fd7eba
bpf: Convert bpf_preload.ko to use light skeleton.

The main change is a move of the single line
  #include "iterators.lskel.h"
from iterators/iterators.c to bpf_preload_kern.c.
Which means that generated light skeleton can be used from user space or
user mode driver like iterators.c or from the kernel module or the kernel itself.
The direct use of light skeleton from the kernel module simplifies the code,
since UMD is no longer necessary. The libbpf.a required user space and UMD. The
CO-RE in the kernel and generated "loader bpf program" used by the light
skeleton are capable to perform complex loading operations traditionally
provided by libbpf. In addition UMD approach was launching UMD process
every time bpffs has to be mounted. With light skeleton in the kernel
the bpf_preload kernel module loads bpf iterators once and pins them
multiple times into different bpffs mounts.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Yonghong Song <yhs@fb.com>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220209232001.27490-6-alexei.starovoitov@gmail.com
kernel/bpf/inode.c
kernel/bpf/preload/Kconfig
kernel/bpf/preload/Makefile
kernel/bpf/preload/bpf_preload.h
kernel/bpf/preload/bpf_preload_kern.c
kernel/bpf/preload/bpf_preload_umd_blob.S [deleted file]
kernel/bpf/preload/iterators/bpf_preload_common.h [deleted file]
kernel/bpf/preload/iterators/iterators.c [deleted file]
kernel/bpf/syscall.c