From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v2] KVM: x86: Convert INIT and SIPI signals into synchronously handled requests Date: Wed, 6 Mar 2013 01:12:52 -0500 (EST) Message-ID: <70318159.3047162.1362550372481.JavaMail.root@redhat.com> References: <20130306000658.GA9720@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Gleb Natapov , kvm , Jan Kiszka To: Marcelo Tosatti Return-path: Received: from mx3-phx2.redhat.com ([209.132.183.24]:35536 "EHLO mx3-phx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752027Ab3CFGMx (ORCPT ); Wed, 6 Mar 2013 01:12:53 -0500 In-Reply-To: <20130306000658.GA9720@amt.cnet> Sender: kvm-owner@vger.kernel.org List-ID: > On Tue, Mar 05, 2013 at 08:16:41PM -0300, Marcelo Tosatti wrote: > > On Mon, Mar 04, 2013 at 10:41:43PM +0100, Jan Kiszka wrote: > > > From: Jan Kiszka > > > > > > A VCPU sending INIT or SIPI to some other VCPU races for setting > > > the > > > remote VCPU's mp_state. When we were unlucky, > > > KVM_MP_STATE_INIT_RECEIVED > > > was overwritten by kvm_emulate_halt and, thus, got lost. > > > > > > Fix this by raising requests on the sender side that will then be > > > handled synchronously over the target VCPU context. > > > > > > Signed-off-by: Jan Kiszka > > > > Why is kvm_emulate_halt being executed from > > KVM_MP_STATE_INIT_RECEIVED/KVM_MP_STATE_SIPI_RECEIVED again? > > > > Why is it not true that the only valid transition from > > KVM_MP_STATE_HALTED is from KVM_MP_STATE_RUNNABLE? > > See Paolo's table, it is. So why fix a race which should not be > happening in the first place. The bad transition happens exactly because of the race. Are you saying you prefer the solution with cmpxchg? Paolo