[PATCH 0/6] Implement split core for POWER8

2014-04-23 Thread Michael Neuling
This patch series implements split core mode on POWER8. This enables up to 4 subcores per core which can each independently run guests (per guest SPRs like SDR1, LPIDR etc are replicated per subcore). Lots more documentation on this feature in the code and commit messages. Most of this code is

[PATCH 1/6] KVM: PPC: Book3S HV: Rework the secondary inhibit code

2014-04-23 Thread Michael Neuling
From: Michael Ellerman m...@ellerman.id.au As part of the support for split core on POWER8, we want to be able to block splitting of the core while KVM VMs are active. The logic to do that would be exactly the same as the code we currently have for inhibiting onlining of secondaries. Instead of

[PATCH 5/6] KVM: PPC: Book3S HV: Use threads_per_subcore in KVM

2014-04-23 Thread Michael Neuling
From: Michael Ellerman m...@ellerman.id.au To support split core on POWER8 we need to modify various parts of the KVM code to use threads_per_subcore instead of threads_per_core. On systems that do not support split core threads_per_subcore == threads_per_core and these changes are a nop. We use

[PATCH 3/6] powerpc: Add threads_per_subcore

2014-04-23 Thread Michael Neuling
From: Michael Ellerman m...@ellerman.id.au On POWER8 we have a new concept of a subcore. This is what happens when you take a regular core and split it. A subcore is a grouping of two or four SMT threads, as well as a handfull of SPRs which allows the subcore to appear as if it were a core from

[PATCH 4/6] powerpc: Check cpu_thread_in_subcore() in __cpu_up()

2014-04-23 Thread Michael Neuling
From: Michael Ellerman m...@ellerman.id.au To support split core we need to change the check in __cpu_up() that determines if a cpu is allowed to come online. Currently we refuse to online cpus which are not the primary thread within their core. On POWER8 with split core support this check

[PATCH 6/6] powerpc/powernv: Add support for POWER8 split core on powernv

2014-04-23 Thread Michael Neuling
From: Michael Ellerman m...@ellerman.id.au 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

[PATCH 2/6] powerpc/powernv: Make it possible to skip the IRQHAPPENED check in power7_nap()

2014-04-23 Thread Michael Neuling
From: Michael Ellerman m...@ellerman.id.au To support split core we need to be able to force all secondaries into nap, so the core can detect they are idle and do an unsplit. Currently power7_nap() will return without napping if there is an irq pending. We want to ignore the pending irq and nap

Re: [PATCH 6/6] powerpc/powernv: Add support for POWER8 split core on powernv

2014-04-23 Thread Joel Stanley
Hi Mikey, On Thu, Apr 24, 2014 at 11:02 AM, Michael Neuling mi...@neuling.org wrote: +static DEVICE_ATTR(subcores_per_core, 0600, + show_subcores_per_core, store_subcores_per_core); Can we make this 644, so users can query the state of the system without being root? This is

Re: [PATCH 6/6] powerpc/powernv: Add support for POWER8 split core on powernv

2014-04-23 Thread Michael Neuling
Joel Stanley j...@jms.id.au wrote: Hi Mikey, On Thu, Apr 24, 2014 at 11:02 AM, Michael Neuling mi...@neuling.org wrote: +static DEVICE_ATTR(subcores_per_core, 0600, + show_subcores_per_core, store_subcores_per_core); Can we make this 644, so users can query the state of