Hi, On 4/15/2022 12:22 AM, Xu Kuohai wrote: > Add bpf trampoline support for arm64. Most of the logic is the same as > x86. > > Tested on qemu, result: > #55 fentry_fexit:OK > #56 fentry_test:OK > #58 fexit_sleep:OK > #59 fexit_stress:OK > #60 fexit_test:OK > #67 get_func_args_test:OK > #68 get_func_ip_test:OK > #101 modify_return:OK bpf_struct_ops also depends on bpf trampoline, could you please also add the test results for bpf_struct_ops related tests case ? > > v2: > - Add Song's ACK > - Change the multi-line comment in is_valid_bpf_tramp_flags() into net > style (patch 3) > - Fix a deadloop issue in ftrace selftest (patch 2) > - Replace pt_regs->x0 with pt_regs->orig_x0 in patch 1 commit message > - Replace "bpf trampoline" with "custom trampoline" in patch 1, as > ftrace direct call is not only used by bpf trampoline. > > v1: https://lore.kernel.org/bpf/20220413054959.1053668-1-xukuohai@xxxxxxxxxx/ > > Xu Kuohai (6): > arm64: ftrace: Add ftrace direct call support > ftrace: Fix deadloop caused by direct call in ftrace selftest > bpf: Move is_valid_bpf_tramp_flags() to the public trampoline code > bpf, arm64: Impelment bpf_arch_text_poke() for arm64 > bpf, arm64: bpf trampoline for arm64 > selftests/bpf: Fix trivial typo in fentry_fexit.c > > arch/arm64/Kconfig | 2 + > arch/arm64/include/asm/ftrace.h | 10 + > arch/arm64/kernel/asm-offsets.c | 1 + > arch/arm64/kernel/entry-ftrace.S | 28 +- > arch/arm64/net/bpf_jit.h | 14 +- > arch/arm64/net/bpf_jit_comp.c | 390 +++++++++++++++++- > arch/x86/net/bpf_jit_comp.c | 20 - > include/linux/bpf.h | 5 + > kernel/bpf/bpf_struct_ops.c | 4 +- > kernel/bpf/trampoline.c | 35 +- > kernel/trace/trace_selftest.c | 4 +- > .../selftests/bpf/prog_tests/fentry_fexit.c | 4 +- > 12 files changed, 482 insertions(+), 35 deletions(-) >