[1/2] powerpc/64s: syscall optimize hypercall/syscall entry
Michael Ellerman
patch-notifications at ellerman.id.au
Mon Jun 19 22:25:37 AEST 2017
On Thu, 2017-06-08 at 15:35:04 UTC, Nicholas Piggin wrote:
> After bc3551257a ("powerpc/64: Allow for relocation-on interrupts from
> guest to host"), a getppid() system call goes from 307 cycles to 358
> cycles (+17%) on POWER8. This is due significantly to the scratch SPR
> used by the hypercall check.
>
> It turns out there are a some volatile registers common to both system
> call and hypercall (in particular, r12, cr0, ctr), which can be used to
> avoid the SPR and some other overheads. This brings getppid to 320 cycles
> (+4%).
>
> Testing hcall entry performance by running "sc 1" in guest userspace
> before this patch is 854 cycles, afterwards is 826. Also a small win
> there.
>
> POWER9 syscall is improved by about the same amount, hcall not tested.
>
> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
Series applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/acd7d8cef01537062e318143d70035
cheers
More information about the Linuxppc-dev
mailing list