Message ID | 1513139666-10805-1-git-send-email-wanpeng.li@hotmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
> if (unlikely(vcpu->arch.mp_state == KVM_MP_STATE_UNINITIALIZED)) { > @@ -7709,6 +7706,7 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) > static void fx_init(struct kvm_vcpu *vcpu) > { > fpstate_init(&vcpu->arch.guest_fpu.state); > + fpstate_init(&vcpu->arch.user_fpu.state); Won't at least one of them trigger the WARN in fpstate_init? > if (boot_cpu_has(X86_FEATURE_XSAVES)) > vcpu->arch.guest_fpu.state.xsave.header.xcomp_bv = > host_xcr0 | XSTATE_COMPACTION_ENABLED; >
2017-12-13 17:59 GMT+08:00 David Hildenbrand <david@redhat.com>: > >> if (unlikely(vcpu->arch.mp_state == KVM_MP_STATE_UNINITIALIZED)) { >> @@ -7709,6 +7706,7 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) >> static void fx_init(struct kvm_vcpu *vcpu) >> { >> fpstate_init(&vcpu->arch.guest_fpu.state); >> + fpstate_init(&vcpu->arch.user_fpu.state); > > Won't at least one of them trigger the WARN in fpstate_init? Nothing trigger the WARN during my testing on a Skylake box. And I will not continue to push this one since there is an alternative solution in kvm/queue. Regards, Wanpeng Li
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 5134a85..6a837fa 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -7278,11 +7278,8 @@ static int complete_emulated_mmio(struct kvm_vcpu *vcpu) int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) { - struct fpu *fpu = ¤t->thread.fpu; int r; - fpu__initialize(fpu); - kvm_sigset_activate(vcpu); if (unlikely(vcpu->arch.mp_state == KVM_MP_STATE_UNINITIALIZED)) { @@ -7709,6 +7706,7 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) static void fx_init(struct kvm_vcpu *vcpu) { fpstate_init(&vcpu->arch.guest_fpu.state); + fpstate_init(&vcpu->arch.user_fpu.state); if (boot_cpu_has(X86_FEATURE_XSAVES)) vcpu->arch.guest_fpu.state.xsave.header.xcomp_bv = host_xcr0 | XSTATE_COMPACTION_ENABLED;