Re: [PATCH 1/4] KVM: nVMX: Flush TLB entries tagged by dest EPTP on L1<->L2 transitions

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

 




> 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





[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