1 2======================================= 3Known limitations of CPU virtualization 4======================================= 5 6Whenever perfect emulation of a CPU feature is impossible or too hard, KVM 7has to choose between not implementing the feature at all or introducing 8behavioral differences between virtual machines and bare metal systems. 9 10This file documents some of the known limitations that KVM has in 11virtualizing CPU features. 12 13x86 14=== 15 16``KVM_GET_SUPPORTED_CPUID`` issues 17---------------------------------- 18 19x87 features 20~~~~~~~~~~~~ 21 22Unlike most other CPUID feature bits, CPUID[EAX=7,ECX=0]:EBX[6] 23(FDP_EXCPTN_ONLY) and CPUID[EAX=7,ECX=0]:EBX]13] (ZERO_FCS_FDS) are 24clear if the features are present and set if the features are not present. 25 26Clearing these bits in CPUID has no effect on the operation of the guest; 27if these bits are set on hardware, the features will not be present on 28any virtual machine that runs on that hardware. 29 30**Workaround:** It is recommended to always set these bits in guest CPUID. 31Note however that any software (e.g ``WIN87EM.DLL``) expecting these features 32to be present likely predates these CPUID feature bits, and therefore 33doesn't know to check for them anyway. 34 35Nested virtualization features 36------------------------------ 37 38TBD 39 40