Thread (10 messages) 10 messages, 3 authors, 2016-11-29

Re: [PATCH v3 0/3] powernv:stop: Use psscr_val,mask provided by firmware

From: Balbir Singh <bsingharora@gmail.com>
Date: 2016-11-29 06:34:21
Also in: linux-pm, lkml


On 10/11/16 18:54, Gautham R. Shenoy wrote:
From: "Gautham R. Shenoy" <redacted>

This is the third iteration of the patchset to use the psscr_val and
psscr_mask provided by the firmware for each of the stop states.

The previous version can be found here:

[v2]: https://lkml.org/lkml/2016/10/27/143
[v1]: https://lkml.org/lkml/2016/9/29/45

This version fixes a couple of bugs pertaining to strncpy and
initialization of the target-residency values of nap and sleep
which were pointed out by Paul and Oliver in the earlier version.

Synopsis
==========
In the current implementation, the code for ISA
v3.0 stop implementation has a couple of shortcomings.

a) The code hand-codes the values for ESL,EC,TR,MTL bits of PSSCR and
   uses only the RL field from the firmware. While this is not
   incorrect, since the hand-coded values are legitimate, it is not a
   very flexible design since the firmware has the capability to
   communicate these values via the "ibm,cpu-idle-state-psscr" and
   "ibm,cpu-idle-state-psscr-mask" properties. In case where the
   firmware provides values for these fields that is different from
   the hand-coded values, the current code will not work as intended.

b) Due to issue a), the current code assumes that ESL=EC=1 for all the
   stop states and hence the wakeup from the stop instruction will
   happen at 0x100, the system-reset vector. However, the ISA v3.0
   allows the ESL=EC=0 behaviour where the corresponding stop-state
   loses no state and wakes up from the subsequent instruction. The
   current code doesn't handle this case.
   
Sounds reasonable

Balbir Singh.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help