[PATCH v2 0/3] KVM: VMX: Stub out enable_evmcs static key

From: Sean Christopherson
Date: Fri Feb 10 2023 - 19:35:42 EST


Stub out and rename the eVMCS static key when CONFIG_HYPERV=n. gcc (as of
gcc-12) isn't clever enough to elide the nop placeholder when there's no
code guarded by a static branch. With gcc-12, because of the vast number
of VMCS accesses, eliminating the nops reduces the size of kvm-intel.ko by
~7.5% (200KiB).

Please holler if you would rather patch 3 be squashed into patch 2, i.e.
add the wrapper and rename the key in one go. I split them because the
combined changelog was getting into "here's a list of changes" territory.

Patch 1 is tangentially related cleanup.

Applies on `git@xxxxxxxxxx:kvm-x86/linux.git vmx`.

v2:
- Collect reviews. [Vitaly]
- Rename wrapper. [Vitaly, Paolo]
- Rename key too.

v1: https://lore.kernel.org/all/20230208205430.1424667-1-seanjc@xxxxxxxxxx

Sean Christopherson (3):
KVM: nVMX: Move EVMCS1_SUPPORT_* macros to hyperv.c
KVM: VMX: Stub out enable_evmcs static key for CONFIG_HYPERV=n
KVM: VMX: Rename "KVM is using eVMCS" static key to match its wrapper

arch/x86/kvm/vmx/hyperv.c | 107 +++++++++++++++++++++++++++++++++-
arch/x86/kvm/vmx/hyperv.h | 115 +++----------------------------------
arch/x86/kvm/vmx/vmx.c | 17 +++---
arch/x86/kvm/vmx/vmx_ops.h | 22 +++----
4 files changed, 133 insertions(+), 128 deletions(-)


base-commit: 93827a0a36396f2fd6368a54a020f420c8916e9b
--
2.39.1.581.gbfd45094c4-goog