Re: [PATCH 16/15] KVM: X86: Update mmu->pdptrs only when it is changed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2021/12/8 17:09, Paolo Bonzini wrote:
On 12/8/21 00:43, Sean Christopherson wrote:
what guarantees the that PDPTRs in the VMCS are sync'd with
mmu->pdptrs?  I'm not saying they aren't, I just want the changelog
to prove that they are.

If they aren't synced you should *already* have dirty VCPU_EXREG_PDPTR and pending KVM_REQ_LOAD_MMU_PGD, shouldn't you? As long as the caching invariants are respected, this patch is fairly safe, and if they aren't there are plenty of preexisting bugs anyway.



They can be not synced in other side: not available.

If (!kvm_register_is_available(vcpu, VCPU_EXREG_PDPTR))
it will make no sense to compare mmu->pdptrs when EPT is enabled.

Because vmcs might have different copy, it is better to just mark it
dirty in load_pdptrs().

(SVM is OK even with NPT enabled, since vmcb doesn't have a copy)

I haven't investigated enough then and today.  It is quit complicated.

Thanks
Lai


The next patch does add a fairly heavy unload of the current root for
!TDP, but that's a bug fix and should be ordered before any
optimizations anyways.



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux