Re: [PATCH 4/4] x86/xen: drop USERGS_SYSRET64 paravirt call

From: Jürgen Groß
Date: Tue Nov 17 2020 - 03:19:24 EST


On 16.11.20 17:28, Andy Lutomirski wrote:
On Mon, Nov 16, 2020 at 7:23 AM Juergen Gross <jgross@xxxxxxxx> wrote:

USERGS_SYSRET64 is used to return from a syscall via sysret, but
a Xen PV guest will nevertheless use the iret hypercall, as there
is no sysret PV hypercall defined.

So instead of testing all the prerequisites for doing a sysret and
then mangling the stack for Xen PV again for doing an iret just use
the iret exit from the beginning.

This can easily be done via an ALTERNATIVE like it is done for the
sysenter compat case already.

While at it remove to stale sysret32 remnants.

Signed-off-by: Juergen Gross <jgross@xxxxxxxx>

Acked-by: Andy Lutomirski <luto@xxxxxxxxxx>

FWIW, you've lost the VGCF_in_syscall optimization. Let me see if I
can give it back to you better.

Ah, right.

Nevertheless a simple kernel build is about 0.5% faster with this
patch.


Juergen

Attachment: OpenPGP_0xB0DE9DD628BF132F.asc
Description: application/pgp-keys

Attachment: OpenPGP_signature
Description: OpenPGP digital signature