[PATCH 0/4]: KVM: nVMX: Consider TLB are tagged with different EPTP if L1 uses EPT

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

 



Hi,

This patch series aim to enhance L1<->L2 transitions to avoid
unnecessary TLB flushes in case L1 uses VPID and EPT.

The 1st patch fixes a bug that INVEPT was executed on L1<->L2
transitions to flush TLB but with the wrong EPTP because it hasn't been
loaded yet with the destination EPTP. The patch handles this issue
easily by just delaying vmx_flush_tlb() to be called after EPTP has been
set to destination by using KVM_REQ_TLB_FLUSH.

The 2nd patch avoids unnecessary flushing TLB on L2->L1 VMExit if L1
uses VPID and EPT. This is because TLB entries of L1 and L2 are
separated by the fact they are tagged with different EPTP.

The 3rd patch modifies L1->L2 VMEntry code such that it will set
vmcs02->vpid to vmcs12->vpid in case L1 uses EPT. This leverages the
fact TLB entries of L1 and L2 are separated by being tagged with
different EPTPs and therefore we don't need to use the special vpid02.

The 4rd patch then modifies L1->L2 VMEntry code to avoid unnecessary
flushing TLB in case L1 uses both VPID and EPT as TLB entries of L1 and
L2 are separated by different EPTP tags.

Regards,
-Liran



[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