From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Subject: Re: [PATCH 1/4] KVM: PPC: Book3s: PR: Disable preemption in vcpu_run Date: Fri, 9 Dec 2011 12:19:53 -0600 Message-ID: <4EE25149.7010109@freescale.com> References: <1323444412-18482-1-git-send-email-agraf@suse.de> <1323444412-18482-2-git-send-email-agraf@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: , =?UTF-8?B?SsO2cmcgU29tbWVy?= , KVM list To: Alexander Graf Return-path: Received: from ch1ehsobe001.messaging.microsoft.com ([216.32.181.181]:56553 "EHLO ch1outboundpool.messaging.microsoft.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752434Ab1LIST5 convert rfc822-to-8bit (ORCPT ); Fri, 9 Dec 2011 13:19:57 -0500 In-Reply-To: <1323444412-18482-2-git-send-email-agraf@suse.de> Sender: kvm-owner@vger.kernel.org List-ID: On 12/09/2011 09:26 AM, Alexander Graf wrote: > When entering the guest, we want to make sure we're not getting preem= pted > away, so let's disable preemption on entry, but enable it again while= handling > guest exits. >=20 > Reported-by: J=C3=B6rg Sommer > Signed-off-by: Alexander Graf > --- > arch/powerpc/kvm/book3s_pr.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) >=20 > diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_p= r.c > index 726512b..8e4f800 100644 > --- a/arch/powerpc/kvm/book3s_pr.c > +++ b/arch/powerpc/kvm/book3s_pr.c > @@ -519,6 +519,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struc= t kvm_vcpu *vcpu, > run->ready_for_interrupt_injection =3D 1; > =20 > trace_kvm_book3s_exit(exit_nr, vcpu); > + preempt_enable(); > kvm_resched(vcpu); > switch (exit_nr) { > case BOOK3S_INTERRUPT_INST_STORAGE: > @@ -763,6 +764,8 @@ program_interrupt: > run->exit_reason =3D KVM_EXIT_INTR; > r =3D -EINTR; > } else { > + preempt_disable(); > + > /* In case an interrupt came in that was triggered > * from userspace (like DEC), we need to check what > * to inject now! */ Shouldn't you really have interrupts disabled here, as booke does? Otherwise an interrupt (including an IPI kick) could send you a signal or guest exception after you check. Likewise for other guest entry points. -Scott