[{"id":1760920,"web_url":"http://patchwork.ozlabs.org/comment/1760920/","msgid":"<20170831220758.5a5d2171@roar.ozlabs.ibm.com>","date":"2017-08-31T12:07:58","subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only\n\tfor deep state offline","submitter":{"id":69518,"url":"http://patchwork.ozlabs.org/api/people/69518/","name":"Nicholas Piggin","email":"npiggin@gmail.com"},"content":"On Thu, 31 Aug 2017 17:17:41 +0530\n\"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com> wrote:\n\n> From: \"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>\n> \n> commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> stop-api only on Hotplug\") clears the PECE1 bit of the LPCR via\n> stop-api during CPU-Hotplug to prevent wakeup due to a decrementer on\n> an offlined CPU which is in a deep stop state.\n> \n> In the case where the stop-api support is found to be lacking, the\n> commit 785a12afdb4a (\"powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT\n> states when stop-api fails\") disables deep states that lose hypervisor\n> context. Thus in this case, the offlined CPU will be put to some\n> shallow idle state.\n> \n> However, we currently unconditionally clear the PECE1 in LPCR via\n> stop-api during CPU-Hotplug even when deep states are disabled due to\n> stop-api failure.\n> \n> Fix this by clearing PECE1 of LPCR via stop-api during CPU-Hotplug\n> *only* when the offlined CPU will be put to a deep state that loses\n> hypervisor context.\n\nThis looks okay to me. The bug is due to calling opal_slw_set_reg when\nfirmware has not enabled that feature, right?\n\n> \n> Fixes: commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> stop-api only on Hotplug\")\n> \n> Reported-by: Pavithra Prakash <pavirampu@linux.vnet.ibm.com>\n> Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>\n> ---\n>  arch/powerpc/platforms/powernv/idle.c | 8 +++++++-\n>  1 file changed, 7 insertions(+), 1 deletion(-)\n> \n> diff --git a/arch/powerpc/platforms/powernv/idle.c b/arch/powerpc/platforms/powernv/idle.c\n> index 9f59041..23f8fba 100644\n> --- a/arch/powerpc/platforms/powernv/idle.c\n> +++ b/arch/powerpc/platforms/powernv/idle.c\n> @@ -393,7 +393,13 @@ static void pnv_program_cpu_hotplug_lpcr(unsigned int cpu, u64 lpcr_val)\n>  \tu64 pir = get_hard_smp_processor_id(cpu);\n>  \n>  \tmtspr(SPRN_LPCR, lpcr_val);\n> -\topal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n> +\n> +\t/*\n> +\t * Program the LPCR via stop-api only for deepest stop state\n> +\t * can lose hypervisor context.\n> +\t */\n> +\tif (supported_cpuidle_states & OPAL_PM_LOSE_FULL_CONTEXT)\n> +\t\topal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n>  }\n>  \n>  /*","headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xjhg259DLz9s7g\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 22:35:42 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xjhg241YrzDrJw\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 22:35:42 +1000 (AEST)","from mail-pg0-x242.google.com (mail-pg0-x242.google.com\n\t[IPv6:2607:f8b0:400e:c05::242])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xjh3R4cyPzDr79\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tThu, 31 Aug 2017 22:08:19 +1000 (AEST)","by mail-pg0-x242.google.com with SMTP id t3so335583pgt.5\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tThu, 31 Aug 2017 05:08:19 -0700 (PDT)","from roar.ozlabs.ibm.com (203-219-56-202.tpgi.com.au.\n\t[203.219.56.202]) by smtp.gmail.com with ESMTPSA id\n\tu187sm13116499pfu.140.2017.08.31.05.08.12\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tThu, 31 Aug 2017 05:08:16 -0700 (PDT)"],"Authentication-Results":["ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"eztZ/9R3\"; dkim-atps=neutral","lists.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"eztZ/9R3\"; dkim-atps=neutral","lists.ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"eztZ/9R3\"; dkim-atps=neutral"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=date:from:to:cc:subject:message-id:in-reply-to:references\n\t:organization:mime-version:content-transfer-encoding;\n\tbh=MwXTLd9yxykBvgfnnKQ3CqtoR3U/IdXOI8s22ONPxKY=;\n\tb=eztZ/9R3HVtYPTpW5+CPkErrNWB0J5rk5QOQnWyLEbJE0WYyVGf5qltazGgCLc9J6I\n\tZOyK5DbxNgIWG6okcaiLKEZn++/9SZWmVKW8EIb7Cd9beNF7NXLrCUDs6x07Y3CEd1yy\n\tpOR7xhXbKymOA5rpZ4Wtj/1skGItO0Wp+uuyRn2b5VK9Q9B643opoCjE9rLpz31v3NFJ\n\tqWG0lpwSerxs0jqQyk6uzJRdKH17mb+djQuLna7ZhCnAlRmr6n8jJ5ul8IjqYFhRCoca\n\teccfn8RQmQXORZurZvHnUBTn12beMF0U4llRs15Nf92wOXlcD/5wSNQip5RIwLXXVGlw\n\tiZIw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to\n\t:references:organization:mime-version:content-transfer-encoding;\n\tbh=MwXTLd9yxykBvgfnnKQ3CqtoR3U/IdXOI8s22ONPxKY=;\n\tb=Nh+yH3YBkzWzJVDI4dAwsJNxoCZDVMEdw4/qKpfiAhahFD/DzihV2OrAGLjz+J0lew\n\tiOcaxFA/G3OzOACPkdAKqProYvnM49ukioan+B14xyjnp+D77B27VFfwVlN6RuY+cfot\n\tF5z0MEPDsxwh1JOpddCwtUKt4tlqYN3XLkeKvuQT+GbR9YCyygNSlZiPFd/uVs+Fn/4c\n\tCawJYKH2Nmz3DZJHUbyyNkg7/dmHDsHxA6i8dXvNVfGX289wCTl7B49X251Y64YFNGtw\n\tb7RDFhk43j87NL0S0qaDoCvV/rodChYfTBPxdoMYEY1BdZQX5oiUdhXfF7LUSs75Ne7S\n\tQifw==","X-Gm-Message-State":"AHYfb5gwAwWC0pb/8Y3dew2naGN3vnSTMrKk88XreCoaU6BFbpp6XxuR\n\tE8KQjRxpGiBHDA==","X-Google-Smtp-Source":"ADKCNb7xB9ooJavnqN6gMeJjikLt5TIsqjK3CZ3UChXyaemAYNLJHjvCfM5RSiB1oixX7fjbiqdkrg==","X-Received":"by 10.84.168.99 with SMTP id e90mr2349259plb.339.1504181297682; \n\tThu, 31 Aug 2017 05:08:17 -0700 (PDT)","Date":"Thu, 31 Aug 2017 22:07:58 +1000","From":"Nicholas Piggin <npiggin@gmail.com>","To":"\"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>","Subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only\n\tfor deep state offline","Message-ID":"<20170831220758.5a5d2171@roar.ozlabs.ibm.com>","In-Reply-To":"<1504180061-32345-1-git-send-email-ego@linux.vnet.ibm.com>","References":"<1504180061-32345-1-git-send-email-ego@linux.vnet.ibm.com>","Organization":"IBM","X-Mailer":"Claws Mail 3.15.0-dirty (GTK+ 2.24.31; x86_64-pc-linux-gnu)","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"linux-kernel@vger.kernel.org,\n\tShilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>,\n\tPavithra Prakash <pavirampu@linux.vnet.ibm.com>,\n\tlinuxppc-dev@lists.ozlabs.org, \n\tAkshay Adiga <akshay.adiga@linux.vnet.ibm.com>","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"}},{"id":1761565,"web_url":"http://patchwork.ozlabs.org/comment/1761565/","msgid":"<e75eda1b-c6ae-fe74-d45c-2c98e366be2a@linux.vnet.ibm.com>","date":"2017-09-01T10:08:59","subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only for\n\tdeep state offline","submitter":{"id":68766,"url":"http://patchwork.ozlabs.org/api/people/68766/","name":"Akshay Adiga","email":"akshay.adiga@linux.vnet.ibm.com"},"content":"On 08/31/2017 05:37 PM, Nicholas Piggin wrote:\n> On Thu, 31 Aug 2017 17:17:41 +0530\n> \"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com> wrote:\n>\n> > From: \"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>\n> >\n> > commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> > stop-api only on Hotplug\") clears the PECE1 bit of the LPCR via\n> > stop-api during CPU-Hotplug to prevent wakeup due to a decrementer on\n> > an offlined CPU which is in a deep stop state.\n> >\n> > In the case where the stop-api support is found to be lacking, the\n> > commit 785a12afdb4a (\"powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT\n> > states when stop-api fails\") disables deep states that lose hypervisor\n> > context. Thus in this case, the offlined CPU will be put to some\n> > shallow idle state.\n> >\n> > However, we currently unconditionally clear the PECE1 in LPCR via\n> > stop-api during CPU-Hotplug even when deep states are disabled due to\n> > stop-api failure.\n> >\n> > Fix this by clearing PECE1 of LPCR via stop-api during CPU-Hotplug\n> > *only* when the offlined CPU will be put to a deep state that loses\n> > hypervisor context.\n>\n> This looks okay to me. The bug is due to calling opal_slw_set_reg when\n> firmware has not enabled that feature, right?\nYes,\n\nIn the case where the stop-api support is found to be lacking, the \ncommit 785a12afdb4a (\"powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT \nstates when stop-api fails\") disables deep states that lose hypervisor \ncontext. Thus in this case, the offlined CPU will be put to some shallow \nidle state.\n\nIf a shallow state ( < stop4 ) is being chosen for cpu hotplug, then :\n1) this opal call is not required.\n2) may not be supported.\n\nHence  should call opal_slw_set_reg() only if a deep state chosen for \ncpu hotplug.\n>\n> >\n> > Fixes: commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> > stop-api only on Hotplug\")\n> >\n> > Reported-by: Pavithra Prakash <pavirampu@linux.vnet.ibm.com>\n> > Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>\n> > ---\n> >  arch/powerpc/platforms/powernv/idle.c | 8 +++++++-\n> >  1 file changed, 7 insertions(+), 1 deletion(-)\n> >\n> > diff --git a/arch/powerpc/platforms/powernv/idle.c\n> b/arch/powerpc/platforms/powernv/idle.c\n> > index 9f59041..23f8fba 100644\n> > --- a/arch/powerpc/platforms/powernv/idle.c\n> > +++ b/arch/powerpc/platforms/powernv/idle.c\n> > @@ -393,7 +393,13 @@ static void\n> pnv_program_cpu_hotplug_lpcr(unsigned int cpu, u64 lpcr_val)\n> >      u64 pir = get_hard_smp_processor_id(cpu);\n> >\n> >      mtspr(SPRN_LPCR, lpcr_val);\n> > -    opal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n> > +\n> > +    /*\n> > +     * Program the LPCR via stop-api only for deepest stop state\n> > +     * can lose hypervisor context.\n> > +     */\n> > +    if (supported_cpuidle_states & OPAL_PM_LOSE_FULL_CONTEXT)\n> > +        opal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n> >  }\n> >\n> >  /*\n>","headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xkFQT0dJ0z9t2Z\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 20:11:45 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xkFQS6hF9zDr1B\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 20:11:44 +1000 (AEST)","from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n\t[148.163.158.5])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xkFP25hQWzDqgB\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tFri,  1 Sep 2017 20:10:30 +1000 (AEST)","from pps.filterd (m0098413.ppops.net [127.0.0.1])\n\tby mx0b-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv81A9K2A007517\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 1 Sep 2017 06:10:28 -0400","from e23smtp06.au.ibm.com (e23smtp06.au.ibm.com [202.81.31.148])\n\tby mx0b-001b2d01.pphosted.com with ESMTP id 2cq2x4gt5a-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 01 Sep 2017 06:10:24 -0400","from localhost\n\tby e23smtp06.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <linuxppc-dev@lists.ozlabs.org> from\n\t<akshay.adiga@linux.vnet.ibm.com>; Fri, 1 Sep 2017 20:10:21 +1000","from d23relay08.au.ibm.com (202.81.31.227)\n\tby e23smtp06.au.ibm.com (202.81.31.212) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tFri, 1 Sep 2017 20:10:19 +1000","from d23av05.au.ibm.com (d23av05.au.ibm.com [9.190.234.119])\n\tby d23relay08.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n\tv81A94c843385066\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 1 Sep 2017 20:09:04 +1000","from d23av05.au.ibm.com (localhost [127.0.0.1])\n\tby d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id\n\tv81A93fQ017583\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 1 Sep 2017 20:09:03 +1000","from aksadiga.ibm ([9.79.197.25])\n\tby d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id\n\tv81A907t017502; Fri, 1 Sep 2017 20:09:01 +1000"],"From":"Akshay Adiga <akshay.adiga@linux.vnet.ibm.com>","To":"Nicholas Piggin <npiggin@gmail.com>","Subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only for\n\tdeep state offline","References":"<1504180061-32345-1-git-send-email-ego@linux.vnet.ibm.com> <>","Date":"Fri, 1 Sep 2017 15:38:59 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101\n\tThunderbird/45.4.0","MIME-Version":"1.0","In-Reply-To":"<>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Transfer-Encoding":"7bit","X-TM-AS-MML":"disable","x-cbid":"17090110-0040-0000-0000-000003526460","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17090110-0041-0000-0000-00000CD06D7D","Message-Id":"<e75eda1b-c6ae-fe74-d45c-2c98e366be2a@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-01_03:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709010146","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"\"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>,\n\tlinuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,\n\tShilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>,\n\tPavithra Prakash <pavirampu@linux.vnet.ibm.com>","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"}},{"id":1761578,"web_url":"http://patchwork.ozlabs.org/comment/1761578/","msgid":"<20170901203837.765f1875@roar.ozlabs.ibm.com>","date":"2017-09-01T10:38:37","subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only\n\tfor deep state offline","submitter":{"id":69518,"url":"http://patchwork.ozlabs.org/api/people/69518/","name":"Nicholas Piggin","email":"npiggin@gmail.com"},"content":"On Fri, 1 Sep 2017 15:38:59 +0530\nAkshay Adiga <akshay.adiga@linux.vnet.ibm.com> wrote:\n\n> On 08/31/2017 05:37 PM, Nicholas Piggin wrote:\n> > On Thu, 31 Aug 2017 17:17:41 +0530\n> > \"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com> wrote:\n> >  \n> > > From: \"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>\n> > >\n> > > commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> > > stop-api only on Hotplug\") clears the PECE1 bit of the LPCR via\n> > > stop-api during CPU-Hotplug to prevent wakeup due to a decrementer on\n> > > an offlined CPU which is in a deep stop state.\n> > >\n> > > In the case where the stop-api support is found to be lacking, the\n> > > commit 785a12afdb4a (\"powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT\n> > > states when stop-api fails\") disables deep states that lose hypervisor\n> > > context. Thus in this case, the offlined CPU will be put to some\n> > > shallow idle state.\n> > >\n> > > However, we currently unconditionally clear the PECE1 in LPCR via\n> > > stop-api during CPU-Hotplug even when deep states are disabled due to\n> > > stop-api failure.\n> > >\n> > > Fix this by clearing PECE1 of LPCR via stop-api during CPU-Hotplug\n> > > *only* when the offlined CPU will be put to a deep state that loses\n> > > hypervisor context.  \n> >\n> > This looks okay to me. The bug is due to calling opal_slw_set_reg when\n> > firmware has not enabled that feature, right?  \n> Yes,\n> \n> In the case where the stop-api support is found to be lacking, the \n> commit 785a12afdb4a (\"powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT \n> states when stop-api fails\") disables deep states that lose hypervisor \n> context. Thus in this case, the offlined CPU will be put to some shallow \n> idle state.\n> \n> If a shallow state ( < stop4 ) is being chosen for cpu hotplug, then :\n> 1) this opal call is not required.\n> 2) may not be supported.\n> \n> Hence  should call opal_slw_set_reg() only if a deep state chosen for \n> cpu hotplug.\n\nThat makes sense, thanks for confirming.\n\n> >  \n> > >\n> > > Fixes: commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> > > stop-api only on Hotplug\")\n> > >\n> > > Reported-by: Pavithra Prakash <pavirampu@linux.vnet.ibm.com>\n> > > Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>\n\n\nReviewed-by: Nicholas Piggin <npiggin@gmail.com>\n\n\n> > > ---\n> > >  arch/powerpc/platforms/powernv/idle.c | 8 +++++++-\n> > >  1 file changed, 7 insertions(+), 1 deletion(-)\n> > >\n> > > diff --git a/arch/powerpc/platforms/powernv/idle.c  \n> > b/arch/powerpc/platforms/powernv/idle.c  \n> > > index 9f59041..23f8fba 100644\n> > > --- a/arch/powerpc/platforms/powernv/idle.c\n> > > +++ b/arch/powerpc/platforms/powernv/idle.c\n> > > @@ -393,7 +393,13 @@ static void  \n> > pnv_program_cpu_hotplug_lpcr(unsigned int cpu, u64 lpcr_val)  \n> > >      u64 pir = get_hard_smp_processor_id(cpu);\n> > >\n> > >      mtspr(SPRN_LPCR, lpcr_val);\n> > > -    opal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n> > > +\n> > > +    /*\n> > > +     * Program the LPCR via stop-api only for deepest stop state\n> > > +     * can lose hypervisor context.\n> > > +     */\n> > > +    if (supported_cpuidle_states & OPAL_PM_LOSE_FULL_CONTEXT)\n> > > +        opal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n> > >  }\n> > >\n> > >  /*  \n> >  \n>","headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xkG5s6DFsz9t32\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 20:42:25 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xkG5s52xtzDqYb\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 20:42:25 +1000 (AEST)","from mail-pf0-x243.google.com (mail-pf0-x243.google.com\n\t[IPv6:2607:f8b0:400e:c00::243])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xkG1n2HkWzDqjS\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tFri,  1 Sep 2017 20:38:53 +1000 (AEST)","by mail-pf0-x243.google.com with SMTP id k3so1438931pfc.3\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tFri, 01 Sep 2017 03:38:53 -0700 (PDT)","from roar.ozlabs.ibm.com (203-219-56-202.tpgi.com.au.\n\t[203.219.56.202]) by smtp.gmail.com with ESMTPSA id\n\ts77sm3053220pfa.163.2017.09.01.03.38.47\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tFri, 01 Sep 2017 03:38:50 -0700 (PDT)"],"Authentication-Results":["ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"KUVk4UcS\"; dkim-atps=neutral","lists.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"KUVk4UcS\"; dkim-atps=neutral","lists.ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"KUVk4UcS\"; dkim-atps=neutral"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=date:from:to:cc:subject:message-id:in-reply-to:references\n\t:organization:mime-version:content-transfer-encoding;\n\tbh=t4rzoMaaoITaA1iPghAZ7gF0IQZjbFktOQboiGR/Svc=;\n\tb=KUVk4UcSiZPvvokYjAUX0rgh/d+uc6nxXCwrkYcOeBJWn/Rf7Rb1SaPmB9tsgavYv0\n\t/xjx6RLICp1aNkmDIXPIRcEk1nXIHQY74fccc61EUrDfNmWlMupHoe0J8L/inTX1oIU3\n\t7sIii95+TY0KCQtXwWWpL/UaKkpxsoRa2GF9UTvMile5IWTl52zB5SBanxZT9a8Mc7h4\n\t0tn4UE1U327V6qfhirColB3YBYBnMFwT6KY7DukQ6nhdjFBgsSkxIPOHYh0hv+0CZX5s\n\tNH7qxliSSo3wDqslrSASK9STSiCDLKXFX3pBNVCFrNn7ESxD6JoTqQ1edHweQeVdGHWb\n\tss0Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to\n\t:references:organization:mime-version:content-transfer-encoding;\n\tbh=t4rzoMaaoITaA1iPghAZ7gF0IQZjbFktOQboiGR/Svc=;\n\tb=qhUIRmIxoBkAcmVEIir7ZPjs20s7Ai1HXHI1Ei/MKJw32acAzEbXZERMsBIJgcvhmF\n\ti6EFejoBaBnXNGvfobYd6lFQvVeGPHFrGsqjIpVoNto8P4OZrsHcxooqc1w2WV6gwiUT\n\trKwF+ywMR+PXcG0HizSyRsUNBxAUq0JG69oNGpWR1YqVUqSKbS8sggifC1JI78FVYPoN\n\tk7eQfX/3JlOIr4iNOlu09FFgSS5FkaP1BxyvDWDFxp2YMdkzRcGPs/NDtffb/0kkBjpT\n\tby+bqvm47QkmEgAjV4pNG3Vrhhbh+3iu706FLhdRO9zJvqVUyBl9G0EM+QQ4IR4Utn7q\n\ttNAA==","X-Gm-Message-State":"AHPjjUhr90xfszfGrTjS7A+J40MXe4DEVgO0UZ3bLu74DR8qWYyFzqWq\n\trBI6ZQjRcSIFzMzU","X-Google-Smtp-Source":"ADKCNb6N3vTqBrrwBzhZzAMn7TQiY75qx6WGbJi2iGJmrgGGpbAqE+Zy1cRcNaDm+hWkhrohVRgH9w==","X-Received":"by 10.99.120.203 with SMTP id t194mr1798414pgc.369.1504262331392;\n\tFri, 01 Sep 2017 03:38:51 -0700 (PDT)","Date":"Fri, 1 Sep 2017 20:38:37 +1000","From":"Nicholas Piggin <npiggin@gmail.com>","To":"Akshay Adiga <akshay.adiga@linux.vnet.ibm.com>","Subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only\n\tfor deep state offline","Message-ID":"<20170901203837.765f1875@roar.ozlabs.ibm.com>","In-Reply-To":"<e75eda1b-c6ae-fe74-d45c-2c98e366be2a@linux.vnet.ibm.com>","References":"<1504180061-32345-1-git-send-email-ego@linux.vnet.ibm.com>\n\t<e75eda1b-c6ae-fe74-d45c-2c98e366be2a@linux.vnet.ibm.com>","Organization":"IBM","X-Mailer":"Claws Mail 3.15.0-dirty (GTK+ 2.24.31; x86_64-pc-linux-gnu)","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"\"Gautham R.\n\tShenoy\" <ego@linux.vnet.ibm.com>, linuxppc-dev@lists.ozlabs.org,\n\tlinux-kernel@vger.kernel.org,\n\tShilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>,\n\tPavithra Prakash <pavirampu@linux.vnet.ibm.com>","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"}},{"id":1764053,"web_url":"http://patchwork.ozlabs.org/comment/1764053/","msgid":"<40a9c8f5d12d3885c1e54b9e4835eb25@linux.vnet.ibm.com>","date":"2017-09-06T09:02:14","subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only for\n\tdeep state offline","submitter":{"id":72307,"url":"http://patchwork.ozlabs.org/api/people/72307/","name":"Pavithra","email":"pavrampu@linux.vnet.ibm.com"},"content":"On 2017-08-31 17:17, Gautham R. Shenoy wrote:\n> From: \"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>\n> \n> commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> stop-api only on Hotplug\") clears the PECE1 bit of the LPCR via\n> stop-api during CPU-Hotplug to prevent wakeup due to a decrementer on\n> an offlined CPU which is in a deep stop state.\n> \n> In the case where the stop-api support is found to be lacking, the\n> commit 785a12afdb4a (\"powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT\n> states when stop-api fails\") disables deep states that lose hypervisor\n> context. Thus in this case, the offlined CPU will be put to some\n> shallow idle state.\n> \n> However, we currently unconditionally clear the PECE1 in LPCR via\n> stop-api during CPU-Hotplug even when deep states are disabled due to\n> stop-api failure.\n> \n> Fix this by clearing PECE1 of LPCR via stop-api during CPU-Hotplug\n> *only* when the offlined CPU will be put to a deep state that loses\n> hypervisor context.\n> \n> Fixes: commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> stop-api only on Hotplug\")\n> \n> Reported-by: Pavithra Prakash <pavirampu@linux.vnet.ibm.com>\n> Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>\n\nTested-by: Pavithra Prakash <pavrampu@linux.vnet.ibm.com>\n\n> ---\n>  arch/powerpc/platforms/powernv/idle.c | 8 +++++++-\n>  1 file changed, 7 insertions(+), 1 deletion(-)\n> \n> diff --git a/arch/powerpc/platforms/powernv/idle.c\n> b/arch/powerpc/platforms/powernv/idle.c\n> index 9f59041..23f8fba 100644\n> --- a/arch/powerpc/platforms/powernv/idle.c\n> +++ b/arch/powerpc/platforms/powernv/idle.c\n> @@ -393,7 +393,13 @@ static void pnv_program_cpu_hotplug_lpcr(unsigned\n> int cpu, u64 lpcr_val)\n>  \tu64 pir = get_hard_smp_processor_id(cpu);\n> \n>  \tmtspr(SPRN_LPCR, lpcr_val);\n> -\topal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n> +\n> +\t/*\n> +\t * Program the LPCR via stop-api only for deepest stop state\n> +\t * can lose hypervisor context.\n> +\t */\n> +\tif (supported_cpuidle_states & OPAL_PM_LOSE_FULL_CONTEXT)\n> +\t\topal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n>  }\n> \n>  /*","headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xnMbM3jwBz9s81\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed,  6 Sep 2017 22:00:15 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xnMbM1gBFzDrSb\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed,  6 Sep 2017 22:00:15 +1000 (AEST)","from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n\t[148.163.158.5])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xnHZn5qStzDrJL\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tWed,  6 Sep 2017 18:59:29 +1000 (AEST)","from pps.filterd (m0098414.ppops.net [127.0.0.1])\n\tby mx0b-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv868xQx8139223\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 6 Sep 2017 04:59:27 -0400","from e13.ny.us.ibm.com (e13.ny.us.ibm.com [129.33.205.203])\n\tby mx0b-001b2d01.pphosted.com with ESMTP id 2ctb800d18-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 06 Sep 2017 04:59:26 -0400","from localhost\n\tby e13.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <linuxppc-dev@lists.ozlabs.org> from\n\t<pavrampu@linux.vnet.ibm.com>; Wed, 6 Sep 2017 04:59:12 -0400","from b01cxnp22033.gho.pok.ibm.com (9.57.198.23)\n\tby e13.ny.us.ibm.com (146.89.104.200) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tWed, 6 Sep 2017 04:59:09 -0400","from b01ledav001.gho.pok.ibm.com (b01ledav001.gho.pok.ibm.com\n\t[9.57.199.106])\n\tby b01cxnp22033.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP\n\tid v868x9ZA23986370; Wed, 6 Sep 2017 08:59:09 GMT","from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id BEF012803D;\n\tWed,  6 Sep 2017 04:59:02 -0400 (EDT)","from ltc.linux.ibm.com (unknown [9.16.170.189])\n\tby b01ledav001.gho.pok.ibm.com (Postfix) with ESMTP id C3A6628041;\n\tWed,  6 Sep 2017 04:59:01 -0400 (EDT)"],"Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=linux.vnet.ibm.com\n\t(client-ip=148.163.158.5; helo=mx0a-001b2d01.pphosted.com;\n\tenvelope-from=pavrampu@linux.vnet.ibm.com; receiver=<UNKNOWN>)","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII;\n format=flowed","Content-Transfer-Encoding":"7bit","Date":"Wed, 06 Sep 2017 14:32:14 +0530","From":"pavrampu <pavrampu@linux.vnet.ibm.com>","To":"\"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>","Subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only for\n\tdeep state offline","In-Reply-To":"<1504180061-32345-1-git-send-email-ego@linux.vnet.ibm.com>","References":"<1504180061-32345-1-git-send-email-ego@linux.vnet.ibm.com>","X-Sender":"pavrampu@linux.vnet.ibm.com","User-Agent":"Roundcube Webmail/1.0.1","X-TM-AS-GCONF":"00","x-cbid":"17090608-0008-0000-0000-0000027A0BF4","X-IBM-SpamModules-Scores":"","X-IBM-SpamModules-Versions":"BY=3.00007676; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000226; SDB=6.00912997; UDB=6.00458189;\n\tIPR=6.00693259; \n\tBA=6.00005573; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00017028;\n\tXFM=3.00000015; UTC=2017-09-06 08:59:11","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17090608-0009-0000-0000-0000369ACDD6","Message-Id":"<40a9c8f5d12d3885c1e54b9e4835eb25@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-06_03:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709060123","X-Mailman-Approved-At":"Wed, 06 Sep 2017 21:58:57 +1000","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"linux-kernel@vger.kernel.org, Nicholas Piggin <npiggin@gmail.com>,\n\tPavithra Prakash <pavrampu@linux.vnet.ibm.com>,\n\tShilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tAkshay Adiga <akshay.adiga@linux.vnet.ibm.com>","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"}},{"id":1771086,"web_url":"http://patchwork.ozlabs.org/comment/1771086/","msgid":"<5c6e69c8-13c2-e06e-c4e0-92afeb998eaa@linux.vnet.ibm.com>","date":"2017-09-19T14:32:43","subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only for\n\tdeep state offline","submitter":{"id":68766,"url":"http://patchwork.ozlabs.org/api/people/68766/","name":"Akshay Adiga","email":"akshay.adiga@linux.vnet.ibm.com"},"content":"Hi Michael,\n\nAny comments on this patch ?\n\nOn 09/06/2017 02:32 PM, pavrampu wrote:\n> On 2017-08-31 17:17, Gautham R. Shenoy wrote:\n> > From: \"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>\n> >\n> > commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> > stop-api only on Hotplug\") clears the PECE1 bit of the LPCR via\n> > stop-api during CPU-Hotplug to prevent wakeup due to a decrementer on\n> > an offlined CPU which is in a deep stop state.\n> >\n> > In the case where the stop-api support is found to be lacking, the\n> > commit 785a12afdb4a (\"powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT\n> > states when stop-api fails\") disables deep states that lose hypervisor\n> > context. Thus in this case, the offlined CPU will be put to some\n> > shallow idle state.\n> >\n> > However, we currently unconditionally clear the PECE1 in LPCR via\n> > stop-api during CPU-Hotplug even when deep states are disabled due to\n> > stop-api failure.\n> >\n> > Fix this by clearing PECE1 of LPCR via stop-api during CPU-Hotplug\n> > *only* when the offlined CPU will be put to a deep state that loses\n> > hypervisor context.\n> >\n> > Fixes: commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> > stop-api only on Hotplug\")\n> >\n> > Reported-by: Pavithra Prakash <pavirampu@linux.vnet.ibm.com>\n> > Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>\n>\n> Tested-by: Pavithra Prakash <pavrampu@linux.vnet.ibm.com>\n>\n> > ---\n> >  arch/powerpc/platforms/powernv/idle.c | 8 +++++++-\n> >  1 file changed, 7 insertions(+), 1 deletion(-)\n> >\n> > diff --git a/arch/powerpc/platforms/powernv/idle.c\n> > b/arch/powerpc/platforms/powernv/idle.c\n> > index 9f59041..23f8fba 100644\n> > --- a/arch/powerpc/platforms/powernv/idle.c\n> > +++ b/arch/powerpc/platforms/powernv/idle.c\n> > @@ -393,7 +393,13 @@ static void pnv_program_cpu_hotplug_lpcr(unsigned\n> > int cpu, u64 lpcr_val)\n> >      u64 pir = get_hard_smp_processor_id(cpu);\n> >\n> >      mtspr(SPRN_LPCR, lpcr_val);\n> > -    opal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n> > +\n> > +    /*\n> > +     * Program the LPCR via stop-api only for deepest stop state\n> > +     * can lose hypervisor context.\n> > +     */\n> > +    if (supported_cpuidle_states & OPAL_PM_LOSE_FULL_CONTEXT)\n> > +        opal_slw_set_reg(pir, SPRN_LPCR, lpcr_val);\n> >  }\n> >\n> >  /*","headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxQNy14P2z9s7h\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 20 Sep 2017 00:34:10 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xxQNy08vhzDqlw\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 20 Sep 2017 00:34:10 +1000 (AEST)","from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n\t[148.163.158.5])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xxQMZ6H0rzDqNh\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tWed, 20 Sep 2017 00:32:58 +1000 (AEST)","from pps.filterd (m0098420.ppops.net [127.0.0.1])\n\tby mx0b-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv8JEUCkt020238\n\tfor <linuxppc-dev@lists.ozlabs.org>; Tue, 19 Sep 2017 10:32:56 -0400","from e23smtp02.au.ibm.com (e23smtp02.au.ibm.com [202.81.31.144])\n\tby mx0b-001b2d01.pphosted.com with ESMTP id 2d31uccv2p-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <linuxppc-dev@lists.ozlabs.org>; Tue, 19 Sep 2017 10:32:55 -0400","from localhost\n\tby e23smtp02.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <linuxppc-dev@lists.ozlabs.org> from\n\t<akshay.adiga@linux.vnet.ibm.com>; Wed, 20 Sep 2017 00:32:51 +1000","from d23relay09.au.ibm.com (202.81.31.228)\n\tby e23smtp02.au.ibm.com (202.81.31.208) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tWed, 20 Sep 2017 00:32:50 +1000","from d23av05.au.ibm.com (d23av05.au.ibm.com [9.190.234.119])\n\tby d23relay09.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n\tv8JEWntH41877626\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 20 Sep 2017 00:32:49 +1000","from d23av05.au.ibm.com (localhost [127.0.0.1])\n\tby d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id\n\tv8JEWnVq030668\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 20 Sep 2017 00:32:49 +1000","from aksadiga.ibm ([9.79.197.199])\n\tby d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id\n\tv8JEWhQ1030542; Wed, 20 Sep 2017 00:32:45 +1000"],"Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=linux.vnet.ibm.com\n\t(client-ip=148.163.158.5; helo=mx0a-001b2d01.pphosted.com;\n\tenvelope-from=akshay.adiga@linux.vnet.ibm.com; receiver=<UNKNOWN>)","From":"Akshay Adiga <akshay.adiga@linux.vnet.ibm.com>","To":"Michael Ellerman <mpe@ellerman.id.au>","Subject":"Re: [PATCH] powerpc/powernv: Clear LPCR[PECE1] via stop-api only for\n\tdeep state offline","References":"<1504180061-32345-1-git-send-email-ego@linux.vnet.ibm.com>\n\t<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\n\tThunderbird/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-0004-0000-0000-0000022F579E","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17091914-0005-0000-0000-00005E18B280","Message-Id":"<5c6e69c8-13c2-e06e-c4e0-92afeb998eaa@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-19_06:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709190205","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.24","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"\"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>,\n\tlinux-kernel@vger.kernel.org, Nicholas Piggin <npiggin@gmail.com>,\n\tpavrampu <pavrampu@linux.vnet.ibm.com>, \n\tShilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>,\n\tlinuxppc-dev@lists.ozlabs.org","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"}},{"id":1772360,"web_url":"http://patchwork.ozlabs.org/comment/1772360/","msgid":"<3xyKGW0mggz9s78@ozlabs.org>","date":"2017-09-21T01:46:43","subject":"Re: powerpc/powernv: Clear LPCR[PECE1] via stop-api only for deep\n\tstate offline","submitter":{"id":69509,"url":"http://patchwork.ozlabs.org/api/people/69509/","name":"Michael Ellerman","email":"patch-notifications@ellerman.id.au"},"content":"On Thu, 2017-08-31 at 11:47:41 UTC, \"Gautham R. Shenoy\" wrote:\n> From: \"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>\n> \n> commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> stop-api only on Hotplug\") clears the PECE1 bit of the LPCR via\n> stop-api during CPU-Hotplug to prevent wakeup due to a decrementer on\n> an offlined CPU which is in a deep stop state.\n> \n> In the case where the stop-api support is found to be lacking, the\n> commit 785a12afdb4a (\"powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT\n> states when stop-api fails\") disables deep states that lose hypervisor\n> context. Thus in this case, the offlined CPU will be put to some\n> shallow idle state.\n> \n> However, we currently unconditionally clear the PECE1 in LPCR via\n> stop-api during CPU-Hotplug even when deep states are disabled due to\n> stop-api failure.\n> \n> Fix this by clearing PECE1 of LPCR via stop-api during CPU-Hotplug\n> *only* when the offlined CPU will be put to a deep state that loses\n> hypervisor context.\n> \n> Fixes: commit 24be85a23d1f (\"powerpc/powernv: Clear PECE1 in LPCR via\n> stop-api only on Hotplug\")\n> \n> Reported-by: Pavithra Prakash <pavirampu@linux.vnet.ibm.com>\n> Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>\n> Reviewed-by: Nicholas Piggin <npiggin@gmail.com>\n> Tested-by: Pavithra Prakash <pavrampu@linux.vnet.ibm.com>\n\nApplied to powerpc fixes, thanks.\n\nhttps://git.kernel.org/powerpc/c/5d298baa41883fc421acfd932799c0\n\ncheers","headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xyKKY2J96z9s78\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 21 Sep 2017 11:49:21 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xyKKY1H5lzDrVk\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 21 Sep 2017 11:49:21 +1000 (AEST)","from ozlabs.org (ozlabs.org [IPv6:2401:3900:2:1::2])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xyKGW20yZzDqTc\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tThu, 21 Sep 2017 11:46:43 +1000 (AEST)","by ozlabs.org (Postfix, from userid 1034)\n\tid 3xyKGW0mggz9s78; Thu, 21 Sep 2017 11:46:43 +1000 (AEST)"],"X-powerpc-patch-notification":"thanks","X-powerpc-patch-commit":"5d298baa41883fc421acfd932799c0f4177249ae","In-Reply-To":"<1504180061-32345-1-git-send-email-ego@linux.vnet.ibm.com>","To":"\"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>,\n\tNicholas Piggin <npiggin@gmail.com>,\n\tVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>,\n\tShilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>,\n\tAkshay Adiga <akshay.adiga@linux.vnet.ibm.com>,\n\tPavithra Prakash <pavirampu@linux.vnet.ibm.com>","From":"Michael Ellerman <patch-notifications@ellerman.id.au>","Subject":"Re: powerpc/powernv: Clear LPCR[PECE1] via stop-api only for deep\n\tstate offline","Message-Id":"<3xyKGW0mggz9s78@ozlabs.org>","Date":"Thu, 21 Sep 2017 11:46:43 +1000 (AEST)","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.24","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"\"Gautham R. Shenoy\" <ego@linux.vnet.ibm.com>,\n\tlinuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"}}]