aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Documentation
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2022-03-15 18:17:15 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2022-04-02 05:34:47 -0400
commitce2f72e26c1a352f5f2d1cda19bcafeff6c3b4fc (patch)
tree7be9dc75f3fdd933b1279eaf41d96cf88eab42f7 /Documentation
parentKVM: x86: Only do MSR filtering when access MSR by rdmsr/wrmsr (diff)
downloadwireguard-linux-ce2f72e26c1a352f5f2d1cda19bcafeff6c3b4fc.tar.xz
wireguard-linux-ce2f72e26c1a352f5f2d1cda19bcafeff6c3b4fc.zip
KVM: x86: document limitations of MSR filtering
MSR filtering requires an exit to userspace that is hard to implement and would be very slow in the case of nested VMX vmexit and vmentry MSR accesses. Document the limitation. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/virt/kvm/api.rst5
1 files changed, 5 insertions, 0 deletions
diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst
index 04b26c2a7159..d210a4e8dce3 100644
--- a/Documentation/virt/kvm/api.rst
+++ b/Documentation/virt/kvm/api.rst
@@ -4081,6 +4081,11 @@ x2APIC MSRs are always allowed, independent of the ``default_allow`` setting,
and their behavior depends on the ``X2APIC_ENABLE`` bit of the APIC base
register.
+.. warning::
+ MSR accesses coming from nested vmentry/vmexit are not filtered.
+ This includes both writes to individual VMCS fields and reads/writes
+ through the MSR lists pointed to by the VMCS.
+
If a bit is within one of the defined ranges, read and write accesses are
guarded by the bitmap's value for the MSR index if the kind of access
is included in the ``struct kvm_msr_filter_range`` flags. If no range