Le 04/09/2024 à 16:16, Jason A. Donenfeld a écrit :
Hi Christophe, Michael,
On Mon, Sep 02, 2024 at 09:17:17PM +0200, Christophe Leroy wrote:
This series wires up getrandom() vDSO implementation on powerpc.
Tested on PPC32 on real hardware. Tested on PPC64 (both BE and LE) on QEMU:
Performance on powerpc 885: ~# ./vdso_test_getrandom bench-single vdso: 25000000 times in 62.938002291 seconds libc: 25000000 times in 535.581916866 seconds syscall: 25000000 times in 531.525042806 seconds
Performance on powerpc 8321: ~# ./vdso_test_getrandom bench-single vdso: 25000000 times in 16.899318858 seconds libc: 25000000 times in 131.050596522 seconds syscall: 25000000 times in 129.794790389 seconds
Performance on QEMU pseries: ~ # ./vdso_test_getrandom bench-single vdso: 25000000 times in 4.977777162 seconds libc: 25000000 times in 75.516749981 seconds syscall: 25000000 times in 86.842242014 seconds
Looking good. I have no remaining nits on this patchset; it looks good to me.
A review from Michael would be nice though (in addition to the necessary "Ack" I need to commit this to my tree), because there are a lot of PPC particulars that I don't know enough about to review properly. For example, you use -ffixed-r30 on PPC64. I'm sure there's a good reason for this, but I don't know enough to assess it. And cvdso_call I have no idea what's going on. Etc.
You can learn a bit more about cvdso_call in commit ce7d8056e38b ("powerpc/vdso: Prepare for switching VDSO to generic C implementation.")
About the fixed-r30, you can learn more in commit a88603f4b92e ("powerpc/vdso: Don't use r30 to avoid breaking Go lang")
But anyway, awesome work, and I look forward to the final stretches.
Thanks, looking forward to getting this series applied.
Christophe