These two patches add support for the bpf_get_current_task and
bpf_get_current_task_btf kfuncs in RISC-V JIT and add a selftest.
The first patch adds support for cpu and feature detection on
the JIT disassembly helper function as RISC-V JITed code was not
being disassembled using `LLVMCreateDisasm` as it was missing the
"+c" CPU feature and JITed code contained RISC-V Compressed (C)
Extension. This patch generalizes that to detect CPU features and
enables testing on more RISC-V JIT work ahead.
The second patch, which actually adds this support has been benchmarked
on QEMU RISC-V and shows significant improvements.
It was benchmarked using a simple loop inside a bpf program that ran
bpf_get_current_task() and execution time was measured. It used
bpf_prog_test_run_opts() to repeatedly trigger the BPF program. The loop
ran in 1 second intervals and it kept firing bpf_prog_test_run_opts() as
fast as possible until a second had elapsed and then reported statistics.
Varun R Mallya (2):
selftests/bpf: use host CPU features in JIT disassembler
bpf, riscv: inline bpf_get_current_task() and
bpf_get_current_task_btf()
arch/riscv/net/bpf_jit_comp64.c | 9 +++++++++
tools/testing/selftests/bpf/jit_disasm_helpers.c | 13 +++++++++++--
.../selftests/bpf/progs/verifier_jit_inline.c | 2 ++
3 files changed, 22 insertions(+), 2 deletions(-)
--
2.54.0