linux/samples
Daniel T. Lee bc1a85977b samples, bpf: Refactor tail call user progs with libbpf
BPF tail call uses the BPF_MAP_TYPE_PROG_ARRAY type map for calling
into other BPF programs and this PROG_ARRAY should be filled prior to
use. Currently, samples with the PROG_ARRAY type MAP fill this program
array with bpf_load. For bpf_load to fill this map, kernel BPF program
must specify the section with specific format of <prog_type>/<array_idx>
(e.g. SEC("socket/0"))

But by using libbpf instead of bpf_load, user program can specify which
programs should be added to PROG_ARRAY. The advantage of this approach
is that you can selectively add only the programs you want, rather than
adding all of them to PROG_ARRAY, and it's much more intuitive than the
traditional approach.

This commit refactors user programs with the PROG_ARRAY type MAP with
libbpf instead of using bpf_load.

Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20200516040608.1377876-4-danieltimlee@gmail.com
2020-05-19 17:12:56 +02:00
..
auxdisplay .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
binderfs treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
bpf samples, bpf: Refactor tail call user progs with libbpf 2020-05-19 17:12:56 +02:00
configfs treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 145 2019-05-30 11:25:18 -07:00
connector .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
ftrace tracing: Sample module to demonstrate kernel access to Ftrace instances. 2019-11-22 19:41:08 -05:00
hidraw .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
hw_breakpoint samples/hw_breakpoint: drop use of kallsyms_lookup_name() 2020-04-07 10:43:44 -07:00
kdb treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
kfifo proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
kobject treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
kprobes treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
livepatch livepatch: Handle allocation failure in the sample of shadow variable API 2020-01-17 11:12:06 +01:00
mei .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
mic/mpssd .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
pidfd .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
pktgen docs: networking: convert pktgen.txt to ReST 2020-04-30 12:56:37 -07:00
qmi treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
rpmsg samples/rpmsg: Introduce a module parameter for message count 2019-08-26 22:10:39 -07:00
seccomp .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
timers .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
trace_events tracing: Fix doc mistakes in trace sample 2020-05-07 13:32:57 -04:00
trace_printk samples/trace_printk: Wait for IRQ work to finish 2019-12-21 16:08:22 -05:00
uhid kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
v4l media: rename VFL_TYPE_GRABBER to _VIDEO 2020-02-24 16:52:39 +01:00
vfio-mdev vmalloc: fix remap_vmalloc_range() bounds checks 2020-04-21 11:11:56 -07:00
vfs .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
watchdog .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
Kconfig New tracing features: 2019-11-27 11:42:01 -08:00
Makefile objtool: Skip samples subdirectory 2020-01-22 07:55:02 +01:00