[PATCH v2 12/14] KVM: PPC: Book3S HV: POWER9 can execute stop without a sync sequence
Nicholas Piggin
npiggin at gmail.com
Thu Aug 24 22:53:46 AEST 2017
On Thu, 24 Aug 2017 20:27:35 +1000
Paul Mackerras <paulus at ozlabs.org> wrote:
> On Sat, Aug 12, 2017 at 02:39:10AM +1000, Nicholas Piggin wrote:
> > Reviewed-by: Gautham R. Shenoy <ego at linux.vnet.ibm.com>
> > Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
> > ---
> > arch/powerpc/kvm/book3s_hv_rmhandlers.S | 24 ++++++++++++------------
> > 1 file changed, 12 insertions(+), 12 deletions(-)
> >
> > diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> > index 3e024fd71fe8..edb47738a686 100644
> > --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> > +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> > @@ -2527,7 +2527,17 @@ BEGIN_FTR_SECTION
> > END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
> >
> > kvm_nap_sequence: /* desired LPCR value in r5 */
> > -BEGIN_FTR_SECTION
> > +BEGIN_FTR_SECTION /* nap sequence */
> > + mtspr SPRN_LPCR,r5
> > + isync
> > + li r0, 0
> > + std r0, HSTATE_SCRATCH0(r13)
> > + ptesync
> > + ld r0, HSTATE_SCRATCH0(r13)
> > +1: cmpd r0, r0
> > + bne 1b
> > + nap
> > +FTR_SECTION_ELSE /* stop sequence */
> > /*
> > * PSSCR bits: exit criterion = 1 (wakeup based on LPCR at sreset)
> > * enable state loss = 1 (allow SMT mode switch)
> > @@ -2539,18 +2549,8 @@ BEGIN_FTR_SECTION
> > li r4, LPCR_PECE_HVEE at higher
> > sldi r4, r4, 32
> > or r5, r5, r4
> > -END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)
> > mtspr SPRN_LPCR,r5
> > - isync
> > - li r0, 0
> > - std r0, HSTATE_SCRATCH0(r13)
> > - ptesync
> > - ld r0, HSTATE_SCRATCH0(r13)
> > -1: cmpd r0, r0
> > - bne 1b
> > -BEGIN_FTR_SECTION
> > - nap
> > -FTR_SECTION_ELSE
> > +
> > PPC_STOP
> > ALT_FTR_SECTION_END_IFCLR(CPU_FTR_ARCH_300)
> > b .
> > --
> > 2.13.3
>
> Currently we never get to kvm_nap_sequence on POWER9 because we are
> always running one vcpu per vcore, so I haven't worried about this
> code too much. In future we might need this for running HPT guests on
> a radix host, though.
Just trying to keep in in synch with Linux, but the rest of the
series does not depend on this one so it can be left out if you'd
rather.
Thanks,
Nick
More information about the Linuxppc-dev
mailing list