Message ID | 20230919035711.3297256-1-pulehui@huaweicloud.com (mailing list archive) |
---|---|
Headers | show |
Series | Mixing bpf2bpf and tailcalls for RV64 | expand |
Pu Lehui <pulehui@huaweicloud.com> writes: > 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. > > In addition, some code cleans are also attached to this patchset. > > Tests test_bpf.ko and test_verifier have passed, as well as the relative > testcases of test_progs*. Apologies for the review delay. I'm travelling, and will pick it up ASAP when I'm back. Björn