arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / Documentation / virt / kvm / x86 / errata.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 =======================================
4 Known limitations of CPU virtualization
5 =======================================
6
7 Whenever perfect emulation of a CPU feature is impossible or too hard, KVM
8 has to choose between not implementing the feature at all or introducing
9 behavioral differences between virtual machines and bare metal systems.
10
11 This file documents some of the known limitations that KVM has in
12 virtualizing CPU features.
13
14 x86
15 ===
16
17 ``KVM_GET_SUPPORTED_CPUID`` issues
18 ----------------------------------
19
20 x87 features
21 ~~~~~~~~~~~~
22
23 Unlike most other CPUID feature bits, CPUID[EAX=7,ECX=0]:EBX[6]
24 (FDP_EXCPTN_ONLY) and CPUID[EAX=7,ECX=0]:EBX]13] (ZERO_FCS_FDS) are
25 clear if the features are present and set if the features are not present.
26
27 Clearing these bits in CPUID has no effect on the operation of the guest;
28 if these bits are set on hardware, the features will not be present on
29 any virtual machine that runs on that hardware.
30
31 **Workaround:** It is recommended to always set these bits in guest CPUID.
32 Note however that any software (e.g ``WIN87EM.DLL``) expecting these features
33 to be present likely predates these CPUID feature bits, and therefore
34 doesn't know to check for them anyway.
35
36 Nested virtualization features
37 ------------------------------
38
39 TBD
40
41 x2APIC
42 ------
43 When KVM_X2APIC_API_USE_32BIT_IDS is enabled, KVM activates a hack/quirk that
44 allows sending events to a single vCPU using its x2APIC ID even if the target
45 vCPU has legacy xAPIC enabled, e.g. to bring up hotplugged vCPUs via INIT-SIPI
46 on VMs with > 255 vCPUs.  A side effect of the quirk is that, if multiple vCPUs
47 have the same physical APIC ID, KVM will deliver events targeting that APIC ID
48 only to the vCPU with the lowest vCPU ID.  If KVM_X2APIC_API_USE_32BIT_IDS is
49 not enabled, KVM follows x86 architecture when processing interrupts (all vCPUs
50 matching the target APIC ID receive the interrupt).