From mboxrd@z Thu Jan 1 00:00:00 1970 From: Will Deacon Subject: Re: [PATCH v2 8/8] kvm tools: add support for ARMv7 processors Date: Thu, 22 Nov 2012 16:22:57 +0000 Message-ID: <20121122162257.GH3113@mudshark.cambridge.arm.com> References: <1353599897-15656-1-git-send-email-will.deacon@arm.com> <1353599897-15656-9-git-send-email-will.deacon@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "kvm@vger.kernel.org" , "penberg@kernel.org" , Marc Zyngier , "c.dall@virtualopensystems.com" , "matt@ozlabs.org" , "michael@ellerman.id.au" , "levinsasha928@gmail.com" , "kvmarm@lists.cs.columbia.edu" To: Peter Maydell Return-path: Received: from cam-admin0.cambridge.arm.com ([217.140.96.50]:52292 "EHLO cam-admin0.cambridge.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753792Ab2KVSeT (ORCPT ); Thu, 22 Nov 2012 13:34:19 -0500 Content-Disposition: inline In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: Hi Peter, On Thu, Nov 22, 2012 at 04:13:17PM +0000, Peter Maydell wrote: > On 22 November 2012 15:58, Will Deacon wrote: > > +++ b/tools/kvm/arm/aarch32/smp-pen.S > > @@ -0,0 +1,30 @@ > > +#include "kvm/kvm-arch.h" > > + > > +#include "arm-common/gic.h" > > + > > + .arm > > + > > + .globl smp_pen_start > > + .globl smp_jump_addr > > + .globl smp_pen_end > > + > > + .align > > +smp_pen_start: > > + @ Ensure that the CPU interface is enabled for the wfi wakeup > > + ldr r0, =ARM_GIC_CPUI_BASE > > + mov r1, #GIC_CPUI_CTLR_EN > > + str r1, [r0] > > + > > + @ Now wait for the primary to poke us > > + adr r0, smp_jump_addr > > + dsb > > + wfi > > + ldr r1, [r0] > > + mov pc, r1 > > + > > + .ltorg > > + > > + .align > > +smp_jump_addr: > > + .long 0xdeadc0de > > +smp_pen_end: > > You've left the gate ajar on your pen -- this won't cope with > spurious WFI wakeups (the architecture allows WFI to return > at any time, down to the trivial case of "implemented as NOP"). > Needs a 'branch back to WFI if not yet poked' (or you could > make the initial value stored at smp_jump_addr be the address > of the wfi :-)) Thanks for pointing this out, somehow I missed it despite updating the ARMv8 code. Will fix for v3. Will