Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751621AbdISOc5 (ORCPT ); Tue, 19 Sep 2017 10:32:57 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:36534 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751572AbdISOcy (ORCPT ); Tue, 19 Sep 2017 10:32:54 -0400 From: Akshay Adiga To: Michael Ellerman Cc: Nicholas Piggin , Vaidyanathan Srinivasan , Shilpasri G Bhat , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, "Gautham R. Shenoy" , pavrampu Subject: Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only for deep state offline References: <1504180061-32345-1-git-send-email-ego@linux.vnet.ibm.com> <40a9c8f5d12d3885c1e54b9e4835eb25@linux.vnet.ibm.com> Date: Tue, 19 Sep 2017 20:02:43 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <40a9c8f5d12d3885c1e54b9e4835eb25@linux.vnet.ibm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable x-cbid: 17091914-0040-0000-0000-00000356D90F X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17091914-0041-0000-0000-00000CD77F68 Message-Id: <5c6e69c8-13c2-e06e-c4e0-92afeb998eaa@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-09-19_06:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709190205 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2293 Lines: 60 Hi Michael, Any comments on this patch ? On 09/06/2017 02:32 PM, pavrampu wrote: > On 2017-08-31 17:17, Gautham R. Shenoy wrote: > > From: "Gautham R. Shenoy" > > > > commit 24be85a23d1f ("powerpc/powernv: Clear PECE1 in LPCR via > > stop-api only on Hotplug") clears the PECE1 bit of the LPCR via > > stop-api during CPU-Hotplug to prevent wakeup due to a decrementer on > > an offlined CPU which is in a deep stop state. > > > > In the case where the stop-api support is found to be lacking, the > > commit 785a12afdb4a ("powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT > > states when stop-api fails") disables deep states that lose hypervisor > > context. Thus in this case, the offlined CPU will be put to some > > shallow idle state. > > > > However, we currently unconditionally clear the PECE1 in LPCR via > > stop-api during CPU-Hotplug even when deep states are disabled due to > > stop-api failure. > > > > Fix this by clearing PECE1 of LPCR via stop-api during CPU-Hotplug > > *only* when the offlined CPU will be put to a deep state that loses > > hypervisor context. > > > > Fixes: commit 24be85a23d1f ("powerpc/powernv: Clear PECE1 in LPCR via > > stop-api only on Hotplug") > > > > Reported-by: Pavithra Prakash > > Signed-off-by: Gautham R. Shenoy > > Tested-by: Pavithra Prakash > > > --- > > arch/powerpc/platforms/powernv/idle.c | 8 +++++++- > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/arch/powerpc/platforms/powernv/idle.c > > b/arch/powerpc/platforms/powernv/idle.c > > index 9f59041..23f8fba 100644 > > --- a/arch/powerpc/platforms/powernv/idle.c > > +++ b/arch/powerpc/platforms/powernv/idle.c > > @@ -393,7 +393,13 @@ static void pnv_program_cpu_hotplug_lpcr(unsigned > > int cpu, u64 lpcr_val) > > u64 pir = get_hard_smp_processor_id(cpu); > > > > mtspr(SPRN_LPCR, lpcr_val); > > - opal_slw_set_reg(pir, SPRN_LPCR, lpcr_val); > > + > > + /* > > + * Program the LPCR via stop-api only for deepest stop state > > + * can lose hypervisor context. > > + */ > > + if (supported_cpuidle_states & OPAL_PM_LOSE_FULL_CONTEXT) > > + opal_slw_set_reg(pir, SPRN_LPCR, lpcr_val); > > } > > > > /*