Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 =======================================
0004 Known limitations of CPU virtualization
0005 =======================================
0006 
0007 Whenever perfect emulation of a CPU feature is impossible or too hard, KVM
0008 has to choose between not implementing the feature at all or introducing
0009 behavioral differences between virtual machines and bare metal systems.
0010 
0011 This file documents some of the known limitations that KVM has in
0012 virtualizing CPU features.
0013 
0014 x86
0015 ===
0016 
0017 ``KVM_GET_SUPPORTED_CPUID`` issues
0018 ----------------------------------
0019 
0020 x87 features
0021 ~~~~~~~~~~~~
0022 
0023 Unlike most other CPUID feature bits, CPUID[EAX=7,ECX=0]:EBX[6]
0024 (FDP_EXCPTN_ONLY) and CPUID[EAX=7,ECX=0]:EBX]13] (ZERO_FCS_FDS) are
0025 clear if the features are present and set if the features are not present.
0026 
0027 Clearing these bits in CPUID has no effect on the operation of the guest;
0028 if these bits are set on hardware, the features will not be present on
0029 any virtual machine that runs on that hardware.
0030 
0031 **Workaround:** It is recommended to always set these bits in guest CPUID.
0032 Note however that any software (e.g ``WIN87EM.DLL``) expecting these features
0033 to be present likely predates these CPUID feature bits, and therefore
0034 doesn't know to check for them anyway.
0035 
0036 Nested virtualization features
0037 ------------------------------
0038 
0039 TBD