Message ID | 20220208191306.6136-1-alexei.starovoitov@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | bpf: Light skeleton for the kernel. | expand |
On Tue, Feb 8, 2022 at 11:13 AM Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote: > > From: Alexei Starovoitov <ast@kernel.org> > > The libbpf performs a set of complex operations to load BPF programs. > With "loader program" and "CO-RE in the kernel" the loading job of > libbpf was diminished. The light skeleton became lean enough to perform > program loading and map creation tasks without libbpf. > It's now possible to tweak it further to make light skeleton usable > out of user space and out of kernel module. > This allows bpf_preload.ko to drop user-mode-driver usage, > drop host compiler dependency, allow cross compilation and simplify the code. > It's a building block toward safe and portable kernel modules. > > v1->v2: > - removed redundant anon struct and added comments (Andrii's reivew) > - added Yonghong's ack > - fixed build warning when JIT is off > > Alexei Starovoitov (5): > bpf: Extend sys_bpf commands for bpf_syscall programs. > libbpf: Prepare light skeleton for the kernel. > bpftool: Generalize light skeleton generation. > bpf: Update iterators.lskel.h. > bpf: Convert bpf_preload.ko to use light skeleton. > See question about error handling for rodata in skeleton. But otherwise LGTM. For the series: Acked-by: Andrii Nakryiko <andrii@kernel.org> > kernel/bpf/inode.c | 39 +--- > kernel/bpf/preload/Kconfig | 9 +- > kernel/bpf/preload/Makefile | 14 +- > kernel/bpf/preload/bpf_preload.h | 8 +- > kernel/bpf/preload/bpf_preload_kern.c | 119 +++++------ > kernel/bpf/preload/bpf_preload_umd_blob.S | 7 - > .../preload/iterators/bpf_preload_common.h | 13 -- > kernel/bpf/preload/iterators/iterators.c | 108 ---------- > .../bpf/preload/iterators/iterators.lskel.h | 28 +-- > kernel/bpf/syscall.c | 40 +++- > tools/bpf/bpftool/gen.c | 45 ++-- > tools/lib/bpf/skel_internal.h | 193 ++++++++++++++++-- > 12 files changed, 319 insertions(+), 304 deletions(-) > delete mode 100644 kernel/bpf/preload/bpf_preload_umd_blob.S > delete mode 100644 kernel/bpf/preload/iterators/bpf_preload_common.h > delete mode 100644 kernel/bpf/preload/iterators/iterators.c > > -- > 2.30.2 >
From: Alexei Starovoitov <ast@kernel.org> The libbpf performs a set of complex operations to load BPF programs. With "loader program" and "CO-RE in the kernel" the loading job of libbpf was diminished. The light skeleton became lean enough to perform program loading and map creation tasks without libbpf. It's now possible to tweak it further to make light skeleton usable out of user space and out of kernel module. This allows bpf_preload.ko to drop user-mode-driver usage, drop host compiler dependency, allow cross compilation and simplify the code. It's a building block toward safe and portable kernel modules. v1->v2: - removed redundant anon struct and added comments (Andrii's reivew) - added Yonghong's ack - fixed build warning when JIT is off Alexei Starovoitov (5): bpf: Extend sys_bpf commands for bpf_syscall programs. libbpf: Prepare light skeleton for the kernel. bpftool: Generalize light skeleton generation. bpf: Update iterators.lskel.h. bpf: Convert bpf_preload.ko to use light skeleton. kernel/bpf/inode.c | 39 +--- kernel/bpf/preload/Kconfig | 9 +- kernel/bpf/preload/Makefile | 14 +- kernel/bpf/preload/bpf_preload.h | 8 +- kernel/bpf/preload/bpf_preload_kern.c | 119 +++++------ kernel/bpf/preload/bpf_preload_umd_blob.S | 7 - .../preload/iterators/bpf_preload_common.h | 13 -- kernel/bpf/preload/iterators/iterators.c | 108 ---------- .../bpf/preload/iterators/iterators.lskel.h | 28 +-- kernel/bpf/syscall.c | 40 +++- tools/bpf/bpftool/gen.c | 45 ++-- tools/lib/bpf/skel_internal.h | 193 ++++++++++++++++-- 12 files changed, 319 insertions(+), 304 deletions(-) delete mode 100644 kernel/bpf/preload/bpf_preload_umd_blob.S delete mode 100644 kernel/bpf/preload/iterators/bpf_preload_common.h delete mode 100644 kernel/bpf/preload/iterators/iterators.c