Thread (21 messages) 21 messages, 6 authors, 2022-07-08

Re: [PATCH bpf-next v6 0/4] bpf trampoline for arm64

From: KP Singh <kpsingh@kernel.org>
Date: 2022-07-05 18:34:56
Also in: bpf, linux-arm-kernel, lkml

On Tue, Jul 5, 2022 at 6:00 PM Will Deacon [off-list ref] wrote:
Hi Daniel,

On Thu, Jun 30, 2022 at 11:12:54PM +0200, Daniel Borkmann wrote:
quoted
On 6/25/22 6:12 PM, Xu Kuohai wrote:
quoted
This patchset introduces bpf trampoline on arm64. A bpf trampoline converts
native calling convention to bpf calling convention and is used to implement
various bpf features, such as fentry, fexit, fmod_ret and struct_ops.

The trampoline introduced does essentially the same thing as the bpf
trampoline does on x86.

Tested on raspberry pi 4b and qemu:

  #18 /1     bpf_tcp_ca/dctcp:OK
  #18 /2     bpf_tcp_ca/cubic:OK
  #18 /3     bpf_tcp_ca/invalid_license:OK
  #18 /4     bpf_tcp_ca/dctcp_fallback:OK
  #18 /5     bpf_tcp_ca/rel_setsockopt:OK
  #18        bpf_tcp_ca:OK
  #51 /1     dummy_st_ops/dummy_st_ops_attach:OK
  #51 /2     dummy_st_ops/dummy_init_ret_value:OK
  #51 /3     dummy_st_ops/dummy_init_ptr_arg:OK
  #51 /4     dummy_st_ops/dummy_multiple_args:OK
  #51        dummy_st_ops:OK
  #57 /1     fexit_bpf2bpf/target_no_callees:OK
  #57 /2     fexit_bpf2bpf/target_yes_callees:OK
  #57 /3     fexit_bpf2bpf/func_replace:OK
  #57 /4     fexit_bpf2bpf/func_replace_verify:OK
  #57 /5     fexit_bpf2bpf/func_sockmap_update:OK
  #57 /6     fexit_bpf2bpf/func_replace_return_code:OK
  #57 /7     fexit_bpf2bpf/func_map_prog_compatibility:OK
  #57 /8     fexit_bpf2bpf/func_replace_multi:OK
  #57 /9     fexit_bpf2bpf/fmod_ret_freplace:OK
  #57        fexit_bpf2bpf:OK
  #237       xdp_bpf2bpf:OK

v6:
- Since Mark is refactoring arm64 ftrace to support long jump and reduce the
   ftrace trampoline overhead, it's not clear how we'll attach bpf trampoline
   to regular kernel functions, so remove ftrace related patches for now.
- Add long jump support for attaching bpf trampoline to bpf prog, since bpf
   trampoline and bpf prog are allocated via vmalloc, there is chance the
   distance exceeds the max branch range.
- Collect ACK/Review-by, not sure if the ACK and Review-bys for bpf_arch_text_poke()
   should be kept, since the changes to it is not trivial
+1 I need to give it another pass.
quoted
quoted
- Update some commit messages and comments
Given you've been taking a look and had objections in v5, would be great if you
can find some cycles for this v6.
Mark's out at the moment, so I wouldn't hold this series up pending his ack.
However, I agree that it would be good if _somebody_ from the Arm side can
give it the once over, so I've added Jean-Philippe to cc in case he has time
Makes sense,  Jean-Philippe had worked on BPF trampolines for ARM.
for a quick review. KP said he would also have a look, as he is interested
Thank you so much Will, I will give this another pass before the end
of the week.
in this series landing.

Failing that, I'll try to look this week, but I'm off next week and I don't
want this to miss the merge window on my account.
Thanks for being considerate. Much appreciated.

- KP
Cheers,

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help