lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 16 Oct 2015 21:13:12 +0800
From:	Wanpeng Li <wanpeng.li@...mail.com>
To:	Paolo Bonzini <pbonzini@...hat.com>
CC:	Jan Kiszka <jan.kiszka@...mens.com>, Bandan Das <bsd@...hat.com>,
	Wincy Van <fanwenyi0529@...il.com>, kvm@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 0/5] KVM: nVMX: nested VPID emulation

Ping, :-)
On 10/14/15 12:12 AM, Wanpeng Li wrote:
> v2 -> v3:
>   * separate nested_vmx_vpid_caps and move checks to patch 3/5,
>     only rejoin them when reading the MSR.
>
> v1 -> v2:
>   * set bit 32 of the VMX_EPT_VPID_CAP MSR
>   * check against the supported types in the implementation of
>     the INVVPID instruction
>   * the memory operand must always be read even if it isn't needed
>     (e.g., for type==global), similar to INVEPT
>   * for single-context invalidation to check that VPID != 0, though in
>     practice that doesn't matter because we don't want to support
>     single-context invalidation
>   * don't set msr's ept related bits if !enable_ept
>
>
> VPID is used to tag address space and avoid a TLB flush. Currently L0 use
> the same VPID to run L1 and all its guests. KVM flushes VPID when switching
> between L1 and L2.
>
> This patch advertises VPID to the L1 hypervisor, then address space of L1
> and L2 can be separately treated and avoid TLB flush when swithing between
> L1 and L2. For each nested vmentry, if vpid12 is changed, reuse shadow vpid
> w/ an invvpid.
>
> Performance:
>
> run lmbench on L2 w/ 3.5 kernel.
>
> Context switching - times in microseconds - smaller is better
> -------------------------------------------------------------------------
> Host                 OS  2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K
>                           ctxsw  ctxsw  ctxsw ctxsw  ctxsw   ctxsw   ctxsw
> --------- ------------- ------ ------ ------ ------ ------ ------- -------
> kernel    Linux 3.5.0-1 1.2200 1.3700 1.4500 4.7800 2.3300 5.60000 2.88000  nested VPID
> kernel    Linux 3.5.0-1 1.2600 1.4300 1.5600   12.7   12.9 3.49000 7.46000  vanilla
>
> Wanpeng Li (5):
>    KVM: VMX: adjust interface to allocate/free_vpid
>    KVM: VMX: introduce __vmx_flush_tlb to handle specific vpid
>    KVM: nVMX: emulate the INVVPID instruction
>    KVM: nVMX: nested VPID emulation
>    KVM: nVMX: expose VPID capability to L1
>
>   arch/x86/include/asm/vmx.h |   1 +
>   arch/x86/kvm/vmx.c         | 151 ++++++++++++++++++++++++++++++++++++---------
>   2 files changed, 123 insertions(+), 29 deletions(-)
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ