Re: [PATCH 3/4] KVM: nVMX: Set vmcs02->vpid to vmcs12->vpid if L1 uses EPT

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

 



On Mon, Oct 1, 2018 at 5:56 AM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
> On 06/09/2018 18:06, Jim Mattson wrote:
>> On Thu, Sep 6, 2018 at 6:32 AM, Liran Alon <liran.alon@xxxxxxxxxx> wrote:
>>> If CPU use both VPID and EPT, TLB entries populated by CPU are tagged
>>> with both EPTP and VPID. Therefore, if L1 uses EPT, L2 TLB entries
>>> are separated from L1 TLB entries by the EPTP tags as vmcs02 use
>>> EPTP02 while vmcs01 use EPTP01.
>>>
>>> Thus, we don't need to make sure that vmcs02->vpid != vmcs01->vpid.
>>> Therefore, we can just set vmcs02->vpid to vmcs12->vpid.
>>>
>>> Reviewed-by: Mihai Carabas <mihai.carabas@xxxxxxxxxx>
>>> Reviewed-by: Darren Kenny <darren.kenny@xxxxxxxxxx>
>>> Reviewed-by: Nikita Leshchenko <nikita.leshchenko@xxxxxxxxxx>
>>> Signed-off-by: Liran Alon <liran.alon@xxxxxxxxxx>
>>
>> I suggested this back in July, but Paolo didn't like it. I still like it. :-)
>>
>> Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx>
>
> The problem with this is still the same as in July, namely that if all
> guests (at any level) share the VPID space, then L1 can force an
> invalidation of any VPID (and thus slow down execution of other guests,
> including siblings of L1) through INVVPID.

Can't L1 already do this by filling the TLB with its own entries,
thereby evicting its siblings' entries?



[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