KVM: x86: Improve documentation of MSR_KVM_ASYNC_PF_EN
authorXiaoyao Li <xiaoyao.li@intel.com>
Wed, 25 Oct 2023 05:59:14 +0000 (01:59 -0400)
committerSean Christopherson <seanjc@google.com>
Tue, 6 Feb 2024 18:59:52 +0000 (10:59 -0800)
Fix some incorrect statement of MSR_KVM_ASYNC_PF_EN documentation and
state clearly the token in 'struct kvm_vcpu_pv_apf_data' of 'page ready'
event is matchted with the token in CR2 in 'page not present' event.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Link: https://lore.kernel.org/r/20231025055914.1201792-3-xiaoyao.li@intel.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Documentation/virt/kvm/x86/msr.rst

index f6d70f99a1a732e8f201141853aaffa3f8a878ea..3aecf2a70e7b43110f5ece45d6b992bcccff75b9 100644 (file)
@@ -193,8 +193,8 @@ data:
        Asynchronous page fault (APF) control MSR.
 
        Bits 63-6 hold 64-byte aligned physical address of a 64 byte memory area
-       which must be in guest RAM and must be zeroed. This memory is expected
-       to hold a copy of the following structure::
+       which must be in guest RAM. This memory is expected to hold the
+       following structure::
 
          struct kvm_vcpu_pv_apf_data {
                /* Used for 'page not present' events delivered via #PF */
@@ -231,14 +231,14 @@ data:
        as regular page fault, guest must reset 'flags' to '0' before it does
        something that can generate normal page fault.
 
-       Bytes 5-7 of 64 byte memory location ('token') will be written to by the
+       Bytes 4-7 of 64 byte memory location ('token') will be written to by the
        hypervisor at the time of APF 'page ready' event injection. The content
-       of these bytes is a token which was previously delivered as 'page not
-       present' event. The event indicates the page in now available. Guest is
-       supposed to write '0' to 'token' when it is done handling 'page ready'
-       event and to write 1' to MSR_KVM_ASYNC_PF_ACK after clearing the location;
-       writing to the MSR forces KVM to re-scan its queue and deliver the next
-       pending notification.
+       of these bytes is a token which was previously delivered in CR2 as
+       'page not present' event. The event indicates the page is now available.
+       Guest is supposed to write '0' to 'token' when it is done handling
+       'page ready' event and to write '1' to MSR_KVM_ASYNC_PF_ACK after
+       clearing the location; writing to the MSR forces KVM to re-scan its
+       queue and deliver the next pending notification.
 
        Note, MSR_KVM_ASYNC_PF_INT MSR specifying the interrupt vector for 'page
        ready' APF delivery needs to be written to before enabling APF mechanism