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