summaryrefslogtreecommitdiff
path: root/Documentation/kvm
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@web.de>2009-12-06 18:24:15 +0100
committerMarcelo Tosatti <mtosatti@redhat.com>2009-12-27 13:36:33 -0200
commitdab4b911a5327859bb8f969249c6978c26cd4853 (patch)
treea21d0ef04e3bf831b2f9e674b6266535267cc9ce /Documentation/kvm
parent6e24a6eff4571002cd48b99a2b92dc829ce39cb9 (diff)
downloadlwn-dab4b911a5327859bb8f969249c6978c26cd4853.tar.gz
lwn-dab4b911a5327859bb8f969249c6978c26cd4853.zip
KVM: x86: Extend KVM_SET_VCPU_EVENTS with selective updates
User space may not want to overwrite asynchronously changing VCPU event states on write-back. So allow to skip nmi.pending and sipi_vector by setting corresponding bits in the flags field of kvm_vcpu_events. [avi: advertise the bits in KVM_GET_VCPU_EVENTS] Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'Documentation/kvm')
-rw-r--r--Documentation/kvm/api.txt10
1 files changed, 9 insertions, 1 deletions
diff --git a/Documentation/kvm/api.txt b/Documentation/kvm/api.txt
index e1a114161027..2811e452f756 100644
--- a/Documentation/kvm/api.txt
+++ b/Documentation/kvm/api.txt
@@ -685,7 +685,7 @@ struct kvm_vcpu_events {
__u8 pad;
} nmi;
__u32 sipi_vector;
- __u32 flags; /* must be zero */
+ __u32 flags;
};
4.30 KVM_SET_VCPU_EVENTS
@@ -701,6 +701,14 @@ vcpu.
See KVM_GET_VCPU_EVENTS for the data structure.
+Fields that may be modified asynchronously by running VCPUs can be excluded
+from the update. These fields are nmi.pending and sipi_vector. Keep the
+corresponding bits in the flags field cleared to suppress overwriting the
+current in-kernel state. The bits are:
+
+KVM_VCPUEVENT_VALID_NMI_PENDING - transfer nmi.pending to the kernel
+KVM_VCPUEVENT_VALID_SIPI_VECTOR - transfer sipi_vector
+
5. The kvm_run structure