------- Comment on attachment From [email protected] 2017-03-10 04:47
EDT-------
Backport of commit 823b7bd5156a ("powernv:idle: Add IDLE_STATE_ENTER_SEQ_NORET
macro")
Based on top of commit 57659ec12175e152c0915190b3c430fbd9c1401a
("UBUNTU: Ubuntu-4.8.0-42.45") in git://kernel.ubuntu.com/ubuntu/ubuntu-
yakkety.git
** Attachment added: "1: powernv:idle: Add IDLE_STATE_ENTER_SEQ_NORET macro"
https://bugs.launchpad.net/bugs/1666197/+attachment/4835148/+files/0001-powernv-idle-Add-IDLE_STATE_ENTER_SEQ_NORET-macro.patch
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1666197
Title:
POWER9 : Enable Stop 0-2 with ESL=EC=0
Status in linux package in Ubuntu:
Fix Released
Status in linux source package in Zesty:
Fix Released
Bug description:
In Linux 4.10-rc8, the implementation to enable the "stop" instruction
has the following 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 which also results in GPR
state loss. However, the ISA v3.0 allows the ESL=EC=0 behaviour where
the corresponding stop-states lose no GPR state and wakes up from the
subsequent instruction. The code in 4.10-rc8 doesn't support these
light-weight stop modes.
The following commits in the "next" branch of the powerpc-linux git tree
(git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git) address these
issues. These patches are needed in 17.04 to enable
light-weight stop modes
1) commit 823b7bd5156a93872d9561b3f033dfe5cb80204e, powernv:idle: Add
IDLE_STATE_ENTER_SEQ_NORET macro
2)commit dd34c74c97b6c3ed1ac7caec0b46267142659aff, powernv:stop:
Rename pnv_arch300_idle_init to pnv_power9_idle_init
3)commit 9e9fc6f00a54f7064dc681ac187be6498d566a4f, cpuidle:powernv:
Add helper function to populate powernv idle states
4)commit 09206b600c76f20984e80d99f3b5343c79332a97, powernv: Pass PSSCR
value and mask to power9_idle_stop
5)commit b48ff52043f489d594b989b318c120ca340a2e41,
Documentation:powerpc: Add device-tree bindings for power-mgt
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1666197/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp