> On 1 Oct 2018, at 15:51, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 06/09/2018 15:32, Liran Alon wrote: >> If L1 and L2 share VPID (because L1 don't use VPID or we haven't allocated >> a vpid02), we need to flush TLB on L1<->L2 transitions. >> >> Before this patch, this TLB flushing was done by vmx_flush_tlb(). >> If L0 use EPT, this will translate into INVEPT(active_eptp); >> However, if L1 use EPT, in L1->L2 VMEntry, active EPTP is EPTP01 but >> TLB entries populated by L2 are tagged with EPTP02. >> Therefore we should delay vmx_flush_tlb() until active_eptp is EPTP02. >> >> To achieve this, instead of directly calling vmx_flush_tlb() we request >> it to be called by KVM_REQ_TLB_FLUSH which is evaluated after >> KVM_REQ_LOAD_CR3 which sets the active_eptp to EPTP02 as required. >> >> Similarly, on L2->L1 VMExit, active EPTP is EPTP02 but TLB entries >> populated by L1 are tagged with EPTP01 and therefore we should delay >> vmx_flush_tlb() until active_eptp is EPTP01. >> > > Fixes: 6e42782f516f05c8030f63308f2457681b1c9919 > > Queued, thanks. > > Paolo I don’t see how this patch fixes 6e42782f516f05c8030f63308f2457681b1c9919. -Liran