samples: bpf: Refactor hbm program with libbpf
authorDaniel T. Lee <danieltimlee@gmail.com>
Tue, 24 Nov 2020 09:03:04 +0000 (09:03 +0000)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 27 Nov 2020 03:33:35 +0000 (19:33 -0800)
commitc5815ac7e2aaff4f00b2b9e21d84b9f2fddddb48
tree67eab1bc0aa61911cb0190b38a9b4cf97f77ef90
parentfb3558127cb62ba2dea9e3d0efa1bb1d7e5eee2a
samples: bpf: Refactor hbm program with libbpf

This commit refactors the existing cgroup programs with libbpf
bpf loader. Since bpf_program__attach doesn't support cgroup program
attachment, this explicitly attaches cgroup bpf program with
bpf_program__attach_cgroup(bpf_prog, cg1).

Also, to change attach_type of bpf program, this uses libbpf's
bpf_program__set_expected_attach_type helper to switch EGRESS to
INGRESS. To keep bpf program attached to the cgroup hierarchy even
after the exit, this commit uses the BPF_LINK_PINNING to pin the link
attachment even after it is closed.

Besides, this program was broken due to the typo of BPF MAP definition.
But this commit solves the problem by fixing this from 'queue_stats' map
struct hvm_queue_stats -> hbm_queue_stats.

Fixes: 36b5d471135c ("selftests/bpf: samples/bpf: Split off legacy stuff from bpf_helpers.h")
Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20201124090310.24374-2-danieltimlee@gmail.com
samples/bpf/.gitignore
samples/bpf/Makefile
samples/bpf/do_hbm_test.sh
samples/bpf/hbm.c
samples/bpf/hbm_kern.h