linux/arch/powerpc/platforms
Gautham R Shenoy 3aa565f53c powerpc/pseries: Add hooks to put the CPU into an appropriate offline state
When a CPU is offlined on POWER currently, we call rtas_stop_self() and hand
the CPU back to the resource pool. This path is used for DLPAR which will
cause a change in the LPAR configuration which will be visible outside.

This patch changes the default state a CPU is put into when it is offlined.
On platforms which support ceding the processor to the hypervisor with
latency hint specifier value, during a cpu offline operation,
instead of calling rtas_stop_self(), we cede the vCPU to the hypervisor
while passing a latency hint specifier value. The Hypervisor can use this hint
to provide better energy savings. Also, during the offline
operation, the control of the vCPU remains with the LPAR as oppposed to
returning it to the resource pool.

The patch achieves this by creating an infrastructure to set the
preferred_offline_state() which can be either
- CPU_STATE_OFFLINE: which is the current behaviour of calling
  rtas_stop_self()

- CPU_STATE_INACTIVE: which cedes the vCPU to the hypervisor with the latency
  hint specifier.

The codepath which wants to perform a DLPAR operation can set the
preferred_offline_state() of a CPU to CPU_STATE_OFFLINE before invoking
cpu_down().

The patch also provides a boot-time command line argument to disable/enable
CPU_STATE_INACTIVE.

Signed-off-by: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Nathan Fontenot <nfont@austin.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-11-24 14:33:04 +11:00
..
8xx powerpc/8xx: Fix build breakage with sparse irq changes 2009-10-30 17:21:38 +11:00
40x powerpc/40x: Add support for the ESTeem 195E (PPC405EP) SBC 2009-08-31 09:15:51 -04:00
44x powerpc/44x: Add Eiger AMCC (AppliedMicro) PPC460SX evaluation board support. 2009-08-31 08:24:15 -04:00
52xx powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
82xx powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
83xx powerpc/fsl: Make fsl_deep_sleep() usable w/ modules and non-83xx builds 2009-11-11 21:43:33 -06:00
85xx powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
86xx powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
512x powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
amigaone powerpc/amigaone: Convert amigaone_init() to a machine_device_initcall() 2009-08-20 10:12:21 +10:00
cell powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
chrp powerpc/chrp: Use the same RTAS daemon as pSeries 2009-10-30 17:20:53 +11:00
embedded6xx Merge commit 'origin/master' into next 2009-03-24 13:38:30 +11:00
iseries powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
maple edac: cpc925 MC platform device setup 2009-06-18 13:03:57 -07:00
pasemi powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
powermac powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
prep powerpc/kconfig: Kill PPC_MULTIPLATFORM 2009-03-11 17:11:35 +11:00
ps3 powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
pseries powerpc/pseries: Add hooks to put the CPU into an appropriate offline state 2009-11-24 14:33:04 +11:00
fsl_uli1575.c powerpc/85xx: Add P2020DS board support 2009-05-19 00:50:43 -05:00
Kconfig powerpc/85xx: Kconfig cleanup 2009-11-20 16:45:27 -06:00
Kconfig.cputype powerpc/85xx: Kconfig cleanup 2009-11-20 16:45:27 -06:00
Makefile powerpc/85xx: Kconfig cleanup 2009-11-20 16:45:27 -06:00