All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] powernv:idle: Cleanup idle states initialization
@ 2017-07-05 16:38 Gautham R. Shenoy
  2017-07-05 16:38 ` [PATCH 1/5] powernv:idle: Move device-tree parsing to one place Gautham R. Shenoy
                   ` (4 more replies)
  0 siblings, 5 replies; 21+ messages in thread
From: Gautham R. Shenoy @ 2017-07-05 16:38 UTC (permalink / raw)
  To: Michael Ellerman, Michael Neuling, Nicholas Piggin,
	Vaidyanathan Srinivasan, Shilpasri G Bhat, Rafael J. Wysocki,
	Akshay Adiga
  Cc: linuxppc-dev, linux-kernel, linux-pm, Gautham R. Shenoy

From: "Gautham R. Shenoy" <ego@linux.vnet.ibm.com>

Hi,

This patch set aims at cleaning up the powernv idle initialization
code mainly covering the following

a) Currently there is redundant code for parsing the device-tree for
   idle states. We do it in two places, once during the platform idle
   initialization, once more when the cpidle driver initializes. In
   this patchset the device-tree is parsed only once and we maintain
   an in-kernel data structure with the details of each platform idle
   state. The cpu-idle initialization code looks at this data
   structure for initializing cpuidle states. This makes the cpuidle
   driver initialization more streamlined.

b) Currently the idle initialzation code for power8 and power9 are
   mixed up. In this patchset we segregate them into their respective
   functions for improved readability.

c) The current code has a bug when the Sleep-Winkle-Engine is unable
   to restore the hypervisor states for the deep idle states that lose
   full hypervisor context, since in such cases we don't disable such
   deep states. Thus, the CPUs that enter such deep states don't
   wakeup correctly.

Patch 1 in the series addresses a).

Patches 2,3,4 address b)

Patch 5 fixes the bug c)

These patches are applied on top of next branch of the powerpc-linux
git tree. The patches have been tested on POWER8 and POWER9.
   
Gautham R. Shenoy (5):
  powernv:idle: Move device-tree parsing to one place.
  powernv:idle: Change return type of pnv_probe_idle_states to int
  powernv:idle: Define idle init function for power8
  powernv:idle: Move initialization of sibling pacas to
    pnv_alloc_idle_core_states
  powernv:idle: Disable LOSE_FULL_CONTEXT states when stop-api fails.

 arch/powerpc/include/asm/cpuidle.h    |  32 +-
 arch/powerpc/platforms/powernv/idle.c | 576 ++++++++++++++++++++++++++--------
 drivers/cpuidle/cpuidle-powernv.c     | 233 ++++----------
 3 files changed, 521 insertions(+), 320 deletions(-)

-- 
1.9.4

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2017-07-11  5:04 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-05 16:38 [PATCH 0/5] powernv:idle: Cleanup idle states initialization Gautham R. Shenoy
2017-07-05 16:38 ` [PATCH 1/5] powernv:idle: Move device-tree parsing to one place Gautham R. Shenoy
2017-07-06 14:53   ` Nicholas Piggin
2017-07-07 11:25     ` Gautham R Shenoy
2017-07-08  8:42       ` Nicholas Piggin
2017-07-05 16:38 ` [PATCH 2/5] powernv:idle: Change return type of pnv_probe_idle_states to int Gautham R. Shenoy
2017-07-06 15:01   ` Nicholas Piggin
2017-07-07 12:26     ` Gautham R Shenoy
2017-07-05 16:38 ` [PATCH 3/5] powernv:idle: Define idle init function for power8 Gautham R. Shenoy
2017-07-06 15:06   ` Nicholas Piggin
2017-07-07 12:43     ` Gautham R Shenoy
2017-07-05 16:38 ` [PATCH 4/5] powernv:idle: Move initialization of sibling pacas to pnv_alloc_idle_core_states Gautham R. Shenoy
2017-07-06 15:16   ` Nicholas Piggin
2017-07-07 15:04     ` Gautham R Shenoy
2017-07-08  9:00       ` Nicholas Piggin
2017-07-10  4:34         ` Michael Ellerman
2017-07-05 16:38 ` [PATCH 5/5] powernv:idle: Disable LOSE_FULL_CONTEXT states when stop-api fails Gautham R. Shenoy
2017-07-06 15:29   ` Nicholas Piggin
2017-07-07 17:37     ` Gautham R Shenoy
2017-07-08  9:05       ` Nicholas Piggin
2017-07-11  5:04         ` Gautham R Shenoy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.