linux/arch/powerpc/platforms
Michael Ellerman e2186023f2 powerpc/powernv: Add support for POWER8 split core on powernv
Upcoming POWER8 chips support a concept called split core. This is where the
core can be split into subcores that although not full cores, are able to
appear as full cores to a guest.

The splitting & unsplitting procedure is mildly complicated, and explained at
length in the comments within the patch.

One notable detail is that when splitting or unsplitting we need to pull
offline cpus out of their offline state to do work as part of the procedure.

The interface for changing the split mode is via a sysfs file, eg:

 $ echo 2 > /sys/devices/system/cpu/subcores_per_core

Currently supported values are '1', '2' and '4'. And indicate respectively that
the core should be unsplit, split in half, and split in quarters. These modes
correspond to threads_per_subcore of 8, 4 and 2.

We do not allow changing the split mode while KVM VMs are active. This is to
prevent the value changing while userspace is configuring the VM, and also to
prevent the mode being changed in such a way that existing guests are unable to
be run.

CPU hotplug fixes by Srivatsa.  max_cpus fixes by Mahesh.  cpuset fixes by
benh.  Fix for irq race by paulus.  The rest by mikey and mpe.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2014-05-28 13:35:37 +10:00
..
8xx powerpc: Remove unused REDBOOT Kconfig parameter 2013-12-30 14:17:00 +11:00
40x Removal of GENERIC_GPIO for v3.10 2013-05-09 09:59:16 -07:00
44x ppc476: Enable a linker work around for IBM errata #46 2014-05-01 08:26:34 +10:00
52xx Merge remote-tracking branch 'agust/next' into next 2014-01-29 16:53:55 +11:00
82xx powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
83xx powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
85xx powerpc/mpc85xx: Add BSC9132 QDS Support 2014-05-22 18:08:32 -05:00
86xx powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
512x powerpc/512x: clk: support MPC5121/5123/5125 SoC variants 2014-01-12 18:59:36 +01:00
amigaone pcspkr: Cleanup Kconfig dependencies 2011-06-09 15:01:41 +02:00
cell powerpc: Fix SMP issues with ppc64le ABIv2 2014-04-23 10:05:26 +10:00
chrp powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
embedded6xx powerpc/legacy_serial: Support MVME5100 UARTS with shifted registers 2014-04-28 17:36:25 +10:00
maple POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
pasemi powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
powermac powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
powernv powerpc/powernv: Add support for POWER8 split core on powernv 2014-05-28 13:35:37 +10:00
ps3 Merge branch 'powernv-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-04-02 13:47:29 -07:00
pseries Merge remote-tracking branch 'anton/abiv2' into next 2014-05-05 20:57:12 +10:00
wsp powerpc: Fix SMP issues with ppc64le ABIv2 2014-04-23 10:05:26 +10:00
fsl_uli1575.c of/irq: Refactor interrupt-map parsing 2013-10-24 11:43:04 +01:00
Kconfig powerpc: Better split CONFIG_PPC_INDIRECT_PIO and CONFIG_PPC_INDIRECT_MMIO 2013-08-14 14:57:50 +10:00
Kconfig.cputype powerpc/boot: Add support for 64bit little endian wrapper 2014-04-28 17:36:21 +10:00
Makefile powerpc: Remove the main legacy iSerie platform code 2012-03-09 10:35:11 +11:00