summaryrefslogtreecommitdiffstats
path: root/Documentation/virtual/kvm/api.txt
diff options
context:
space:
mode:
authorPeng Hao <peng.hao2@zte.com.cn>2018-10-14 01:09:56 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2018-10-17 00:30:10 +0200
commit9943450b7b8831c5045362eed45f6fefd1986d72 (patch)
treef781876af8a76a88ae8ebad6e23c51a94e25c5d7 /Documentation/virtual/kvm/api.txt
parentkvm/x86 : fix some typo (diff)
downloadlinux-9943450b7b8831c5045362eed45f6fefd1986d72.tar.xz
linux-9943450b7b8831c5045362eed45f6fefd1986d72.zip
kvm/x86 : add document for coalesced mmio
Signed-off-by: Peng Hao <peng.hao2@zte.com.cn> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'Documentation/virtual/kvm/api.txt')
-rw-r--r--Documentation/virtual/kvm/api.txt24
1 files changed, 24 insertions, 0 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index 48e5d1197295..10d48eb67da9 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -3681,6 +3681,30 @@ Returns: 0 on success, -1 on error
This copies the vcpu's kvm_nested_state struct from userspace to the kernel. For
the definition of struct kvm_nested_state, see KVM_GET_NESTED_STATE.
+4.116 KVM_(UN)REGISTER_COALESCED_MMIO
+
+Capability: KVM_CAP_COALESCED_MMIO
+Architectures: all
+Type: vm ioctl
+Parameters: struct kvm_coalesced_mmio_zone
+Returns: 0 on success, < 0 on error
+
+Coalesced mmio is a performance optimization that defers hardware
+register write emulation so that userspace exits are avoided. It is
+typically used to reduce the overhead of emulating frequently accessed
+hardware registers.
+
+When a hardware register is configured for coalesced mmio, write accesses
+do not exit to userspace and their value is recorded in a ring buffer
+that is shared between kernel and userspace.
+
+Coalesced mmio is used if one or more write accesses to a hardware
+register can be deferred until a read or a write to another hardware
+register on the same device. This last access will cause a vmexit and
+userspace will process accesses from the ring buffer before emulating
+it. That will avoid exiting to userspace on repeated writes to the
+first register.
+
5. The kvm_run structure
------------------------