Expand the comment about need to use write-protection for nested EPT
when PML is enabled to clarify that the tagging is a nop when PML is
_not_ enabled.  Without the clarification, omitting the PML check looks
wrong at first^Wfifth glance.

Signed-off-by: Sean Christopherson <sea...@google.com>
---
 arch/x86/kvm/mmu/mmu_internal.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/mmu/mmu_internal.h b/arch/x86/kvm/mmu/mmu_internal.h
index 0b55aa561ec8..72b0928f2b2d 100644
--- a/arch/x86/kvm/mmu/mmu_internal.h
+++ b/arch/x86/kvm/mmu/mmu_internal.h
@@ -84,7 +84,10 @@ static inline bool kvm_vcpu_ad_need_write_protect(struct 
kvm_vcpu *vcpu)
         * When using the EPT page-modification log, the GPAs in the log
         * would come from L2 rather than L1.  Therefore, we need to rely
         * on write protection to record dirty pages.  This also bypasses
-        * PML, since writes now result in a vmexit.
+        * PML, since writes now result in a vmexit.  Note, this helper will
+        * tag SPTEs as needing write-protection even if PML is disabled or
+        * unsupported, but that's ok because the tag is consumed if and only
+        * if PML is enabled.  Omit the PML check to save a few uops.
         */
        return vcpu->arch.mmu == &vcpu->arch.guest_mmu;
 }
-- 
2.30.0.478.g8a0d178c01-goog

Reply via email to