Similar to commit 98770bd4e6df ("bpf,x86: add fsession support for x86_64"),
add fsession support on arm64.
Patch #1 adds bpf_arch_supports_fsession() to prevent fsession loading
on architectures that do not implement fsession support.
Patch #2 implements fsession support in the arm64 BPF JIT trampoline.
Patch #3 enables the relevant selftests on arm64, including get_func_ip,
and get_func_args.
All enabled tests pass on arm64:
cd tools/testing/selftests/bpf
./test_progs -t fsession
#135/1 fsession_test/fsession_test:OK
#135/2 fsession_test/fsession_reattach:OK
#135/3 fsession_test/fsession_cookie:OK
#135 fsession_test:OK
Summary: 1/3 PASSED, 0 SKIPPED, 0 FAILED
./test_progs -t get_func
#138 get_func_args_test:OK
#139 get_func_ip_test:OK
Summary: 2/0 PASSED, 0 SKIPPED, 0 FAILED
Changes:
v1 -> v2:
* Add bpf_arch_supports_fsession().
Leon Hwang (3):
bpf: Add bpf_arch_supports_fsession()
bpf, arm64: Add fsession support
bpf/selftests: Enable get_func_args and get_func_ip tests on arm64
arch/arm64/net/bpf_jit_comp.c | 71 ++++++++++++++++---
arch/x86/net/bpf_jit_comp.c | 5 ++
include/linux/bpf.h | 7 +-
include/linux/filter.h | 1 +
kernel/bpf/core.c | 5 ++
kernel/bpf/verifier.c | 3 +
.../selftests/bpf/prog_tests/fsession_test.c | 32 ++++++---
.../selftests/bpf/progs/get_func_args_test.c | 2 +-
.../selftests/bpf/progs/get_func_ip_test.c | 2 +-
9 files changed, 108 insertions(+), 20 deletions(-)
--
2.52.0