From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: Re: [PATCH 1/2] x86,kvm: move qemu/guest FPU switching out to vcpu_run Date: Thu, 16 Nov 2017 10:50:32 +0800 Message-ID: References: <20171114215424.32214-1-riel@redhat.com> <20171114215424.32214-2-riel@redhat.com> <2e83dd3f-8f03-03ac-45e0-f2fae1d17013@gmail.com> <1510756981.21121.291.camel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, david@redhat.com, borntraeger@de.ibm.com, tglx@linutronix.de, rkrcmar@redhat.com To: Rik van Riel , "quan.xu04@gmail.com" , pbonzini@redhat.com Return-path: In-Reply-To: <1510756981.21121.291.camel@redhat.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 2017-11-15 22:43, Rik van Riel wrote: > Can you explain why you believe that? for example, a vcpu thread is running in kvm mode under cretical condition to stop. QEMU send an IPI to cause a VM-exit to happen immediately, and this IPI doesn't make vcpu return to QEMU. IIUC this vcpu thread will still continue to run in kvm mode when is waked up at targer machine. with your patch, I don't see a chance to load guest FPU or XSTATE, until return to QEMU and run kvm mode again. then the FPU or XSTATE status is inconsistent for a small window, what's even worse is that the vcpu is running. Did I misunderstand? Quan Alibaba Cloud > Getting the guest FPU or XSTATE is done under the vcpu->mutex. > > This patch switches out guest and userspace FPU/XSTATE under the > vcpu->mutex, and switches it back before releasing the vcpu->mutex. > > By the time a KVM_GET_FPU has obtained the vcpu->mutex, the guest > FPU state will be in vcpu->arch.guest_fpu.state, where you expect > it to be. > > What am I missing? >