On 26/11/2014 02:24, Wanpeng Li wrote: > Hi all, > On Tue, Nov 25, 2014 at 04:50:06PM +0200, Nadav Amit wrote: >> >>> On Nov 25, 2014, at 16:17, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: >>> >>> >>> >>> On 25/11/2014 15:05, Nadav Amit wrote: >>>>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c >>>>> index 373b0ab9a32e..ca26681455c2 100644 >>>>> --- a/arch/x86/kvm/x86.c >>>>> +++ b/arch/x86/kvm/x86.c >>>>> @@ -6955,6 +6955,9 @@ int fx_init(struct kvm_vcpu *vcpu) >>>>> return err; >>>>> >>>>> fpu_finit(&vcpu->arch.guest_fpu); >>>>> + if (cpu_has_xsaves) >>>>> + vcpu->arch.guest_fpu.state->xsave.xsave_hdr.xcomp_bv = >>>>> + host_xcr0 | XSTATE_COMPACTION_ENABLED; >>>>> >>>>> /* >>>>> * Ensure guest xcr0 is valid for loading >>>> >>>> The second version works for me (w/qemu v2.1.0; Linux 3.13 guest). I > > Could you try 3.17 guest which has xsaves enabled? Because I'm not sure if > the below codes from Paolo is enough to mask XSAVES, should we also add > F(XSAVES)? > > + const u32 kvm_supported_word10_x86_features = > + F(XSAVEOPT) | F(XSAVEC) | F(XGETBV1); > + > > In addition, the 3.17 guest is still hang as I mentioned even if I add the > F(XSAVES) to the kvm_supported_word10_x86_features. Note that the point is _hiding_ XSAVES while leaving XSAVEOPT/XSAVEC/XGETBV1 enabled. This series only fixes the problems with xsaves in the host, it doesn't try making XSAVES work in the guest. > I have another patch which enable xsaves in KVM and the patch is still > under debug with Paolo's patch "KVM: x86: support XSAVES usage in the host", > so the 1/2 patch from Paolo can be dropped if my patch is ready. Anyway, > a quick fix is needed before enable xsaves in kvm. Please add XSAVES to kvm_supported_word10_x86_features in your patches instead. We still need to mask any (not yet defined) feature in bit 4 and above of CPUID[EAX=0xd,ECX].EAX. Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html