[v3 PATCH 0/4] powernv:idle: Fixes for CPU-Hotplug on POWER DD1.0

From: Gautham R. Shenoy
Date: Wed Mar 22 2017 - 11:04:55 EST


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

Hi,

This is the third version of the patchset containing the fixes to
make CPU-Hotplug working on correctly on POWER9 DD1 systems.

The earlier versions can be found here:
[v2] : https://lkml.org/lkml/2017/3/20/555
[v1] : https://lkml.org/lkml/2017/3/13/46

The only change in this patch series from v2 are the following
optimizations suggested by Nicholas Piggin.

- Dynamically allocate the thread_sibling_pacas array to contain
"threads_per_core" number of slots instead of declaring the array
size upfront.

- Use SPRN_TIR instead of (SPRN_PIR & 0x3) to determine the thread's
index within a core.

Patch 4 in the series requires Nicholas Piggin's ack. Rest of the
patches are unchanged from the previous version.

These patches are based on v4.11-rc3.

The patches have been tested with stop1 (ESL=EC=1) as the
deepest-state entered into during CPU-Hotplug.

Gautham R. Shenoy (4):
powernv: Move CPU-Offline idle state invocation from smp.c to idle.c
powernv:smp: Add busy-wait loop as fall back for CPU-Hotplug
powernv:idle: Don't override default/deepest directly in kernel
powernv: Recover correct PACA on wakeup from a stop on P9 DD1

arch/powerpc/include/asm/cpuidle.h | 1 +
arch/powerpc/include/asm/paca.h | 5 ++
arch/powerpc/kernel/asm-offsets.c | 1 +
arch/powerpc/kernel/idle_book3s.S | 48 +++++++++++++++-
arch/powerpc/platforms/powernv/idle.c | 96 ++++++++++++++++++++++++++------
arch/powerpc/platforms/powernv/powernv.h | 2 -
arch/powerpc/platforms/powernv/smp.c | 18 +-----
7 files changed, 136 insertions(+), 35 deletions(-)

--
1.9.4