]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: retpolines: x86: eliminate retpoline from vmx.c exit handlers
authorAndrea Arcangeli <aarcange@redhat.com>
Mon, 4 Nov 2019 22:59:59 +0000 (17:59 -0500)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 15 Nov 2019 10:43:56 +0000 (11:43 +0100)
commit6630f46e5338ef20c977b43e2a6e639bbb057681
tree90c32b5f2a84706afc733917b47d11efaa540539
parentd1c8efb3e7abed18b17d6acdae501ff1c6f7b1a4
KVM: retpolines: x86: eliminate retpoline from vmx.c exit handlers

It's enough to check the exit value and issue a direct call to avoid
the retpoline for all the common vmexit reasons.

Of course CONFIG_RETPOLINE already forbids gcc to use indirect jumps
while compiling all switch() statements, however switch() would still
allow the compiler to bisect the case value. It's more efficient to
prioritize the most frequent vmexits instead.

The halt may be slow paths from the point of the guest, but not
necessarily so from the point of the host if the host runs at full CPU
capacity and no host CPU is ever left idle.

Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c