From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from e23smtp01.au.ibm.com (e23smtp01.au.ibm.com [202.81.31.143]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4201F1A0961 for ; Fri, 3 Oct 2014 02:39:45 +1000 (EST) Received: from /spool/local by e23smtp01.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 3 Oct 2014 02:39:44 +1000 Received: from d23relay04.au.ibm.com (d23relay04.au.ibm.com [9.190.234.120]) by d23dlp01.au.ibm.com (Postfix) with ESMTP id 10C962CE8040 for ; Fri, 3 Oct 2014 02:39:41 +1000 (EST) Received: from d23av02.au.ibm.com (d23av02.au.ibm.com [9.190.235.138]) by d23relay04.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id s92GLIvW66060470 for ; Fri, 3 Oct 2014 02:21:18 +1000 Received: from d23av02.au.ibm.com (localhost [127.0.0.1]) by d23av02.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s92Gdejv025540 for ; Fri, 3 Oct 2014 02:39:40 +1000 Message-ID: <542D7FC9.4080205@linux.vnet.ibm.com> Date: Thu, 02 Oct 2014 22:09:37 +0530 From: Shreyas B Prabhu MIME-Version: 1.0 To: linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/3] powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from fast-sleep References: <1412149560-2953-1-git-send-email-shreyas@linux.vnet.ibm.com> <1412149560-2953-3-git-send-email-shreyas@linux.vnet.ibm.com> In-Reply-To: <1412149560-2953-3-git-send-email-shreyas@linux.vnet.ibm.com> Content-Type: text/plain; charset=windows-1252 Cc: linux-pm@vger.kernel.org, "Rafael J. Wysocki" , Paul Mackerras , Preeti U Murthy , linuxppc-dev@lists.ozlabs.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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) >