[PATCH 0/3] powernv:stop: Some fixes for handling deep stop

From: Gautham R. Shenoy
Date: Wed Apr 12 2017 - 07:46:45 EST


From: "Gautham R. Shenoy" <ego@xxxxxxxxxxxxxxxxxx>

Hi,

This patchset contains three fixes required to get a deep stop state
that can lose the Hypervisor state to work correctly.

The first patch in the series uses the correct value for the
IDLE_THREAD_BITS on POWER8 which has 8 threads per core and on POWER9
which has 4 threads per core.

The second patch decouples restoring Timebase from restoring per-core
spr state as the current code assumes that if the timebase is not lost
then neither is per-core state. This was true on POWER8, but no longer
true on POWER9.

The third patch in the series sets the UPRT bit in LPCR on wakeup from
a deep stop if we are running in radix mode, without which the kernel
crashes once we switch to virtual mode.

These patches are on top of the patches for fixing CPU-Hotplug on
POWER9 DD1.0 (https://lkml.org/lkml/2017/3/22/472) and Nicholas
Piggin's idle fixes and changes for POWER8 and POWER9
(https://lists.ozlabs.org/pipermail/linuxppc-dev/2017-March/155608.html)

Gautham R. Shenoy (3):
powernv:idle: Use correct IDLE_THREAD_BITS in POWER8 vs POWER9
powernv:idle: Decouple TB restore & Per-core SPRs restore
powernv:idle: Set LPCR_UPRT on wakeup from deep-stop

arch/powerpc/include/asm/cpuidle.h | 3 ++-
arch/powerpc/kernel/idle_book3s.S | 29 +++++++++++++++++++++++------
arch/powerpc/platforms/powernv/idle.c | 5 ++++-
3 files changed, 29 insertions(+), 8 deletions(-)

--
1.9.4