On Tue, Sep 19, 2023 at 07:23:07PM +0800, Pu Lehui wrote: > > > On 2023/9/19 18:04, Conor Dooley wrote: > > On Tue, Sep 19, 2023 at 11:57:11AM +0800, Pu Lehui wrote: > > > From: Pu Lehui <pulehui@xxxxxxxxxx> > > > > > > In the current RV64 JIT, if we just don't initialize the TCC in subprog, > > > the TCC can be propagated from the parent process to the subprocess, but > > > the TCC of the parent process cannot be restored when the subprocess > > > exits. Since the RV64 TCC is initialized before saving the callee saved > > > registers into the stack, we cannot use the callee saved register to > > > pass the TCC, otherwise the original value of the callee saved register > > > will be destroyed. So we implemented mixing bpf2bpf and tailcalls > > > similar to x86_64, i.e. using a non-callee saved register to transfer > > > the TCC between functions, and saving that register to the stack to > > > protect the TCC value. At the same time, we also consider the scenario > > > of mixing trampoline. > > > > > > Tests test_bpf.ko and test_verifier have passed, as well as the relative > > > testcases of test_progs*. > > > > > > Signed-off-by: Pu Lehui <pulehui@xxxxxxxxxx> > > > > Breaks the build: > > ../arch/riscv/net/bpf_jit_comp64.c:846:14: error: use of undeclared identifier 'BPF_TRAMP_F_TAIL_CALL_CTX' > > > > Hi Conor, > > BPF_TRAMP_F_TAIL_CALL_CTX rely on commit [0], and it has been merged into > bpf-next tree. I see. I did check the cover to see if there was anything relevant there, like a link or base commit, but since there were neither I opted to pass on the warning from the patchwork automation we have :) Thanks & sorry for the noise on this one. Thanks, Conor.
Attachment:
signature.asc
Description: PGP signature