Re: [PATCH v3 0/3] KVM: prepare for future XSAVE extensions

From: Gleb Natapov
Date: Thu Oct 03 2013 - 05:40:56 EST


On Wed, Oct 02, 2013 at 04:06:13PM +0200, Paolo Bonzini wrote:
> As soon as the kernel will support the XSAVE extensions in Skylake
> processors, we will want both userspace and the hypervisor to run
> guests without showing any trace of the new features (because
> support for them in the hypervisor will come later).
>
> This series does exactly this. Patches 1 and 3 ensures that userspace
> does not get access to features not supported in the hypervisor.
> Patch 2 does the same for the guest.
>
> The effect of these patches is already visible together with
> the corresponding QEMU patches and a command line such as "-cpu
> SandyBridge,-avx". Previously, the guest could still enable AVX via
> xsetbv, and state would be sent by QEMU during migration. These patches
> make sure that disabling AVX will really prevent the guest from using it,
> which helps if you have to deal with migration from newer versions of
> QEMU and the kernel to older versions. The QEMU patches set up the
> guest's 0xd CPUID leaf, which also ensures that the kernel has the
> necessary information.
>
> Paolo
>
Applied, thanks.

> v2->v3:
> rename supported_xcr0 field to guest_supported_xcr0
> rename xstate_size field to guest_xstate_size
> do not hardcode XSTATE_FPSSE in guest_supported_xcr0
> handle missing 0xd leaf
>
> Paolo Bonzini (3):
> KVM: x86: mask unsupported XSAVE entries from leaf 0Dh index 0
> KVM: x86: prevent setting unsupported XSAVE states
> KVM: x86: only copy XSAVE state for the supported features
>
> arch/x86/include/asm/kvm_host.h | 2 ++
> arch/x86/kvm/cpuid.c | 36 +++++++++++++++++++++++++++++++++++-
> arch/x86/kvm/x86.c | 29 ++++++++++++++++++++++-------
> arch/x86/kvm/x86.h | 1 +
> 4 files changed, 60 insertions(+), 8 deletions(-)
>
> --
> 1.8.3.1

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