When KVM also presents Hyper-V features (which is useful because Windows
behaves better), Linux guests prefer KVM because emulated leaves are at
0x40000000 and the native ones are at 0x40000100.

However, Linux is then not accounting for the offset when reading the
available hypervisor features from CPUID.  Instead of looking at
0x40000101, it will always look at 0x40000001.

This series makes sure that features such as async page faults or steal
time are available even if, for whatever reason, Hyper-V features are
enabled.

As a side effect, patch 1 makes a bunch of code non inline, which also
makes sense since it should only be called during initialization.  As 
a result, vmlinux .text size decreases by 96 bytes.

Please review!

Paolo Bonzini (2):
  x86, kvm: cache the base of the KVM cpuid leaves
  x86, kvm: correctly access the KVM_CPUID_FEATURES leaf at 0x40000101

 arch/x86/include/asm/kvm_para.h | 33 ++++++++++++---------------------
 arch/x86/kernel/kvm.c           | 31 +++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 21 deletions(-)

-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to