• Andrea Arcangeli's avatar
    KVM: retpolines: x86: eliminate retpoline from vmx.c exit handlers · 4289d272
    Andrea Arcangeli authored
    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: default avatarAndrea Arcangeli <aarcange@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    4289d272
vmx.c 219 KB