On Thu, Apr 14, 2022 at 9:10 AM Xu Kuohai <xukuohai@xxxxxxxxxx> wrote: > > Add bpf trampoline support for arm64. Most of the logic is the same as > x86. > > fentry before bpf trampoline hooked: > mov x9, x30 > nop > > fentry after bpf trampoline hooked: > mov x9, x30 > bl <bpf_trampoline> > > 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 > > Signed-off-by: Xu Kuohai <xukuohai@xxxxxxxxxx> > Acked-by: Song Liu <songliubraving@xxxxxx> > --- Can you please also take a look at [0], which is an ongoing work to add support for BPF cookie to BPF trampoline-based BPF programs. It's very close to being done, so it would be good if you can implement that at the same time. [0] https://patchwork.kernel.org/project/netdevbpf/patch/20220412165555.4146407-4-kuifeng@xxxxxx/ > arch/arm64/net/bpf_jit.h | 14 +- > arch/arm64/net/bpf_jit_comp.c | 338 +++++++++++++++++++++++++++++++++- > 2 files changed, 348 insertions(+), 4 deletions(-) > [...]