** Tags removed: verification-needed-yakkety
** Tags added: verification-done-yakkety

You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.

  POWER9 : Enable Stop 0-2 with ESL=EC=0

Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Yakkety:
  Fix Committed
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

  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:

Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to