From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Fri, 09 Dec 2011 18:19:53 +0000 Subject: Re: [PATCH 1/4] KVM: PPC: Book3s: PR: Disable preemption in vcpu_run Message-Id: <4EE25149.7010109@freescale.com> List-Id: References: <1323444412-18482-1-git-send-email-agraf@suse.de> <1323444412-18482-2-git-send-email-agraf@suse.de> In-Reply-To: <1323444412-18482-2-git-send-email-agraf@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: Alexander Graf Cc: kvm-ppc@vger.kernel.org, =?UTF-8?B?SsO2cmcgU29tbWVy?= , KVM list On 12/09/2011 09:26 AM, Alexander Graf wrote: > When entering the guest, we want to make sure we're not getting preempted > away, so let's disable preemption on entry, but enable it again while han= dling > 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_pr.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, struct kv= m_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