[PATCH bpf-next v3 0/4] Mixing bpf2bpf and tailcalls for RV64

Alexei Starovoitov alexei.starovoitov at gmail.com
Thu Feb 1 12:36:31 PST 2024


On Thu, Feb 1, 2024 at 9:30 AM Björn Töpel <bjorn at kernel.org> wrote:
>
> Alexei Starovoitov <alexei.starovoitov at gmail.com> writes:
>
> > On Thu, Feb 1, 2024 at 2:56 AM Daniel Borkmann <daniel at iogearbox.net> wrote:
> >>
> >> > will be destroyed. So we implemented mixing bpf2bpf and tailcalls
> >> > similar to x86_64, i.e. using a non-callee saved register to transfer
> > ...
> >> Iiuc, this still needs a respin as per the ongoing discussions. Also,
> >> if you have worked on BPF selftests which exercise the corner case
> >> around a6, please include them in the series as well for coverage.
> >
> > Hold on, folks.
> > I'm not sure it's such a code idea to support tailcalls from subprogs
> > in risc-v.
> > They're broken on x86-64 and so far several attempts to fix them
> > were not successful.
> > If we don't have a fix soon we will disable this feature completely
> > in the verifier.
> > In general tailcalling from subprogs is a niche use case.
> > If there are users they should transition to tail call from main prog only.
> >
> > See
> > https://lore.kernel.org/bpf/CAADnVQJ1szry9P00wweVDu4d0AQoM_49qT-_ueirvggAiCZrpw@mail.gmail.com/
>
> Got it. ...and it's broken on arm64 as well?

Not sure. arm64, s390, loongarch, x86 claim to support it.
For a long time we thought that it works on x86 until Leon came up
with a way to break it.



More information about the linux-riscv mailing list