Re: [PATCH bpf-next v3 1/2] bpf, x64: Propagate tailcall info only for subprogs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 24/11/12 05:31PM, Alexei Starovoitov wrote:
> On Thu, Nov 7, 2024 at 5:46 AM Leon Hwang <leon.hwang@xxxxxxxxx> wrote:
> >
> > In x64 JIT, propagate tailcall info only for subprogs, not for helpers
> > or kfuncs.
> >
> > Acked-by: Yonghong Song <yonghong.song@xxxxxxxxx>
> > Signed-off-by: Leon Hwang <leon.hwang@xxxxxxxxx>
> > ---
> >  arch/x86/net/bpf_jit_comp.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
> > index 06b080b61aa57..eb08cc6d66401 100644
> > --- a/arch/x86/net/bpf_jit_comp.c
> > +++ b/arch/x86/net/bpf_jit_comp.c
> > @@ -2124,10 +2124,11 @@ st:                     if (is_imm8(insn->off))
> >
> >                         /* call */
> >                 case BPF_JMP | BPF_CALL: {
> > +                       bool pseudo_call = src_reg == BPF_PSEUDO_CALL;
> >                         u8 *ip = image + addrs[i - 1];
> >
> >                         func = (u8 *) __bpf_call_base + imm32;
> > -                       if (tail_call_reachable) {
> > +                       if (pseudo_call && tail_call_reachable) {
> >                                 LOAD_TAIL_CALL_CNT_PTR(bpf_prog->aux->stack_depth);
> >                                 ip += 7;
> >                         }
> 
> I've applied this patch with this tweak:
> if (src_reg == BPF_PSEUDO_CALL && tail_call_reachable)
> 
> I don't see much value in patch 2.
> The tail_call feature is an old approach. It is now causing
> maintenance issues with other features.
> I'd rather not touch anything tail call related.
> So I dropped patch 2.
> 
> I'd like to see proper indirect goto and indirect call
> support being developed further.
> Anton started working on it, but dropped the ball.
> We need to commandeer the patches.

Actually, I am still on it. I will start sending patches this week.




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux