From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shreyas B Prabhu Subject: Re: [PATCH v2 2/3] powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from fast-sleep Date: Thu, 02 Oct 2014 22:09:37 +0530 Message-ID: <542D7FC9.4080205@linux.vnet.ibm.com> References: <1412149560-2953-1-git-send-email-shreyas@linux.vnet.ibm.com> <1412149560-2953-3-git-send-email-shreyas@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Return-path: Received: from e23smtp03.au.ibm.com ([202.81.31.145]:54076 "EHLO e23smtp03.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753062AbaJBQjs (ORCPT ); Thu, 2 Oct 2014 12:39:48 -0400 Received: from /spool/local by e23smtp03.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 3 Oct 2014 02:39:46 +1000 In-Reply-To: <1412149560-2953-3-git-send-email-shreyas@linux.vnet.ibm.com> Sender: linux-pm-owner@vger.kernel.org List-Id: linux-pm@vger.kernel.org To: linux-kernel@vger.kernel.org Cc: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, Preeti U Murthy , "Rafael J. Wysocki" , linux-pm@vger.kernel.org CCing Rafael J. Wysocki and linux-pm@vger.kernel.org On Wednesday 01 October 2014 01:15 PM, Shreyas B. Prabhu wrote: > When guests have to be launched, the secondary threads which are offline > are woken up to run the guests. Today these threads wake up from nap > and check if they have to run guests. Now that the offline secondary > threads can go to fastsleep or going ahead a deeper idle state such as winkle, > add this check in the wakeup from any of the deep idle states path as well. > > Cc: Benjamin Herrenschmidt > Cc: Paul Mackerras > Cc: Michael Ellerman > Cc: linuxppc-dev@lists.ozlabs.org > Suggested-by: "Srivatsa S. Bhat" > Signed-off-by: Shreyas B. Prabhu > [ Changelog added by ] > Signed-off-by: Preeti U Murthy > --- > arch/powerpc/kernel/exceptions-64s.S | 35 ++++++++++++++++------------------- > 1 file changed, 16 insertions(+), 19 deletions(-) > > diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S > index 050f79a..c64f3cc0 100644 > --- a/arch/powerpc/kernel/exceptions-64s.S > +++ b/arch/powerpc/kernel/exceptions-64s.S > @@ -100,25 +100,8 @@ system_reset_pSeries: > SET_SCRATCH0(r13) > #ifdef CONFIG_PPC_P7_NAP > BEGIN_FTR_SECTION > - /* Running native on arch 2.06 or later, check if we are > - * waking up from nap. We only handle no state loss and > - * supervisor state loss. We do -not- handle hypervisor > - * state loss at this time. > - */ > - mfspr r13,SPRN_SRR1 > - rlwinm. r13,r13,47-31,30,31 > - beq 9f > > - /* waking up from powersave (nap) state */ > - cmpwi cr1,r13,2 > - /* Total loss of HV state is fatal, we could try to use the > - * PIR to locate a PACA, then use an emergency stack etc... > - * OPAL v3 based powernv platforms have new idle states > - * which fall in this catagory. > - */ > - bgt cr1,8f > GET_PACA(r13) > - > #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE > li r0,KVM_HWTHREAD_IN_KERNEL > stb r0,HSTATE_HWTHREAD_STATE(r13) > @@ -131,13 +114,27 @@ BEGIN_FTR_SECTION > 1: > #endif > > + /* Running native on arch 2.06 or later, check if we are > + * waking up from nap. We only handle no state loss and > + * supervisor state loss. We do -not- handle hypervisor > + * state loss at this time. > + */ > + mfspr r13,SPRN_SRR1 > + rlwinm. r13,r13,47-31,30,31 > + beq 9f > + > + /* waking up from powersave (nap) state */ > + cmpwi cr1,r13,2 > + GET_PACA(r13) > + > + bgt cr1,8f > + > beq cr1,2f > b power7_wakeup_noloss > 2: b power7_wakeup_loss > > /* Fast Sleep wakeup on PowerNV */ > -8: GET_PACA(r13) > - b power7_wakeup_tb_loss > +8: b power7_wakeup_tb_loss > > 9: > END_FTR_SECTION_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206) >