From: Shreyas B Prabhu <shreyas@linux.vnet.ibm.com>
To: Paul Mackerras <paulus@ozlabs.org>
Cc: mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org,
linux-kernel@vger.kernel.org, mikey@neuling.org,
"ego >> Gautham R. Shenoy" <ego@linux.vnet.ibm.com>
Subject: Re: [PATCH v2 7/9] powerpc/powernv: Add platform support for stop instruction
Date: Fri, 20 May 2016 11:46:02 +0530 [thread overview]
Message-ID: <573EABA2.8000300@linux.vnet.ibm.com> (raw)
In-Reply-To: <20160520052503.GB27460@oak.ozlabs.ibm.com>
On 05/20/2016 10:55 AM, Paul Mackerras wrote:
> On Tue, May 03, 2016 at 01:54:36PM +0530, Shreyas B. Prabhu wrote:
>> POWER ISA v3 defines a new idle processor core mechanism. In summary,
>> a) new instruction named stop is added. This instruction replaces
>> instructions like nap, sleep, rvwinkle.
>> b) new per thread SPR named PSSCR is added which controls the behavior
>> of stop instruction.
>>
>> PSSCR has following key fields
>> Bits 0:3 - Power-Saving Level Status. This field indicates the lowest
>> power-saving state the thread entered since stop instruction was last
>> executed.
>>
>> Bit 42 - Enable State Loss
>> 0 - No state is lost irrespective of other fields
>> 1 - Allows state loss
>>
>> Bits 44:47 - Power-Saving Level Limit
>> This limits the power-saving level that can be entered into.
>>
>> Bits 60:63 - Requested Level
>> Used to specify which power-saving level must be entered on executing
>> stop instruction
>>
>> This patch adds support for stop instruction and PSSCR handling.
>
> I notice that you have duplicated a whole lot of assembly code
> relating to synchronizing between threads going into and out of
> power-saving modes, saving/restoring SPRs, resyncing the timebase, and
> so on.
>
> Two questions arise:
>
> - Are we really going to have to do all of that in the same way for
> POWER9 as we did for POWER8? You even copied over a comment about
> the fastsleep workaround, which I really hope we won't have to do on
> POWER9. Also, on POWER9, the threads are much more independent, so
> I was not expecting that there would still be shared registers.
Copying of comment regarding fastsleep workaround was an oversight. It
will not be necessary in POWER9. I'll fix that in the next version.
The need for synchronizing between threads going into and out of
power-saving modes still exists. Resyncing timebase and restoring few
registers still have to be done once per core.
>
> - If we do have to do all that, could we use the same code as on
> POWER8 rather than having another copy of all that code?
>
While we could use the same code I felt that handling POWER8 and POWER9
cases in the same file might make the code more complicated.
Gautham suggested we can use the same POWER8 code and use FTR sections
wherever POWER8 and POWER9 deviate. If you feel that is better I can
implement that in the next version.
Thanks,
Shreyas
next prev parent reply other threads:[~2016-05-20 6:16 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-03 8:24 [PATCH v2 0/9] powerpc/powernv/cpuidle: Add support for POWER ISA v3 idle states Shreyas B. Prabhu
2016-05-03 8:24 ` [PATCH v2 1/9] powerpc/powernv: Move CHECK_HMI_INTERRUPT to exception-64s header Shreyas B. Prabhu
2016-05-18 4:35 ` Gautham R Shenoy
2016-05-18 7:21 ` Shreyas B Prabhu
2016-05-03 8:24 ` [PATCH v2 2/9] powerpc/kvm: make hypervisor state restore a function Shreyas B. Prabhu
2016-05-18 6:25 ` Gautham R Shenoy
2016-05-18 7:07 ` Shreyas B Prabhu
2016-05-19 14:24 ` Gautham R Shenoy
2016-05-20 1:45 ` Paul Mackerras
2016-05-03 8:24 ` [PATCH v2 3/9] powerpc/powernv: Move idle code usable by multiple hardware to common location Shreyas B. Prabhu
2016-05-18 6:29 ` Gautham R Shenoy
2016-05-03 8:24 ` [PATCH v2 4/9] powerpc/powernv: Make power7_powersave_common more generic Shreyas B. Prabhu
2016-05-18 6:37 ` Gautham R Shenoy
2016-05-18 6:51 ` Shreyas B Prabhu
2016-05-19 14:26 ` Gautham R Shenoy
2016-05-03 8:24 ` [PATCH v2 5/9] powerpc/powernv: Move idle related macros to cpuidle.h Shreyas B. Prabhu
2016-05-19 14:27 ` Gautham R Shenoy
2016-05-03 8:24 ` [PATCH v2 6/9] powerpc/powernv: set power_save func after the idle states are initialized Shreyas B. Prabhu
2016-05-18 6:45 ` Gautham R Shenoy
2016-05-03 8:24 ` [PATCH v2 7/9] powerpc/powernv: Add platform support for stop instruction Shreyas B. Prabhu
2016-05-18 17:57 ` Gautham R Shenoy
2016-05-20 5:25 ` Paul Mackerras
2016-05-20 6:16 ` Shreyas B Prabhu [this message]
2016-05-03 8:24 ` [PATCH v2 8/9] cpuidle/powernv: Add support for POWER ISA v3 idle states Shreyas B. Prabhu
2016-05-03 8:24 ` [PATCH v2 9/9] powerpc/powernv: Use deepest stop state when cpu is offlined Shreyas B. Prabhu
2016-05-18 18:07 ` Gautham R Shenoy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=573EABA2.8000300@linux.vnet.ibm.com \
--to=shreyas@linux.vnet.ibm.com \
--cc=ego@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mikey@neuling.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).