On 4/15/2022 10:37 AM, Hou Tao wrote: > 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 ? Yes, more tests is needed. I'm curently testing with bpftrace's kfunc and bpf selftest, more testing results will be posted. >> >> 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(-) >> > > .