[Acked] [Utopic][SRU][PATCH] powerpc/powernv: Ignore smt-enabled on Power8 and later
Andy Whitcroft
apw at canonical.com
Wed Jan 7 18:16:27 UTC 2015
On Tue, Jan 06, 2015 at 02:23:32PM -0600, Chris J Arges wrote:
> From: Greg Kurz <gkurz at linux.vnet.ibm.com>
>
> BugLink: http://bugs.launchpad.net/bugs/1402141
>
> Starting with POWER8, the subcore logic relies on all threads of a core
> being booted so that they can participate in split mode switches. So on
> those machines we ignore the smt_enabled_at_boot setting (smt-enabled on
> the kernel command line).
>
> Signed-off-by: Greg Kurz <gkurz at linux.vnet.ibm.com>
> [mpe: Update comment and change log to be more precise]
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
>
> (cherry picked from commit d70a54e2d08510a99b1f10eceeae6f2f7086e226)
> Signed-off-by: Chris J Arges <chris.j.arges at canonical.com>
> ---
> arch/powerpc/platforms/powernv/smp.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/platforms/powernv/smp.c b/arch/powerpc/platforms/powernv/smp.c
> index 5fcfcf4..b4b8103 100644
> --- a/arch/powerpc/platforms/powernv/smp.c
> +++ b/arch/powerpc/platforms/powernv/smp.c
> @@ -185,13 +185,27 @@ static void pnv_smp_cpu_kill_self(void)
>
> #endif /* CONFIG_HOTPLUG_CPU */
>
> +static int pnv_cpu_bootable(unsigned int nr)
> +{
> + /*
> + * Starting with POWER8, the subcore logic relies on all threads of a
> + * core being booted so that they can participate in split mode
> + * switches. So on those machines we ignore the smt_enabled_at_boot
> + * setting (smt-enabled on the kernel command line).
> + */
> + if (cpu_has_feature(CPU_FTR_ARCH_207S))
> + return 1;
> +
> + return smp_generic_cpu_bootable(nr);
> +}
> +
> static struct smp_ops_t pnv_smp_ops = {
> .message_pass = smp_muxed_ipi_message_pass,
> .cause_ipi = NULL, /* Filled at runtime by xics_smp_probe() */
> .probe = xics_smp_probe,
> .kick_cpu = pnv_smp_kick_cpu,
> .setup_cpu = pnv_smp_setup_cpu,
> - .cpu_bootable = smp_generic_cpu_bootable,
> + .cpu_bootable = pnv_cpu_bootable,
> #ifdef CONFIG_HOTPLUG_CPU
> .cpu_disable = pnv_smp_cpu_disable,
> .cpu_die = generic_cpu_die,
> --
Looks simple enough, self contained, arch specific.
Acked-by: Andy Whitcroft <apw at canonical.com>
-apw
More information about the kernel-team
mailing list