From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Tue, 28 Feb 2012 17:21:20 +0000 Subject: Re: [PATCH 24/37] KVM: PPC: booke: rework rescheduling checks Message-Id: <4F4D0D10.3040900@freescale.com> List-Id: References: <1330093591-19523-1-git-send-email-agraf@suse.de> <1330093591-19523-25-git-send-email-agraf@suse.de> <4F4BD95B.9010809@freescale.com> <8C85FFCE-616B-4A3C-BD43-08997DB1E0B1@suse.de> In-Reply-To: <8C85FFCE-616B-4A3C-BD43-08997DB1E0B1@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Alexander Graf Cc: kvm-ppc@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org On 02/28/2012 05:03 AM, Alexander Graf wrote: > > On 27.02.2012, at 20:28, Scott Wood wrote: > >> If there is a signal pending and MSR[WE] is set, we'll loop forever >> without reaching this check. > > Good point. How about something like this on top (will fold in later)? > > diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c > index 430055e..9f27258 100644 > --- a/arch/powerpc/kvm/booke.c > +++ b/arch/powerpc/kvm/booke.c > @@ -477,15 +477,17 @@ static int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu) > continue; > } > > + if (signal_pending(current)) { > + r = 1; > + break; > + } > + > if (kvmppc_core_prepare_to_enter(vcpu)) { > /* interrupts got enabled in between, so we > are back at square 1 */ > continue; > } > > - if (signal_pending(current)) > - r = 1; > - > break; > } Looks OK. -Scott