linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: berlin: add CPU hotplug support
@ 2015-05-12 14:16 Antoine Tenart
  2015-05-12 15:03 ` Mark Rutland
  2015-05-12 23:23 ` Russell King - ARM Linux
  0 siblings, 2 replies; 4+ messages in thread
From: Antoine Tenart @ 2015-05-12 14:16 UTC (permalink / raw)
  To: linux-arm-kernel

Adds CPU hotplug support for Berlin SoCs (currently BG2 and BG2Q). The
CPUs are put in WFI after disabling the coherency.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
---
 arch/arm/mach-berlin/platsmp.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm/mach-berlin/platsmp.c b/arch/arm/mach-berlin/platsmp.c
index 702e7982015a..d9c62057be76 100644
--- a/arch/arm/mach-berlin/platsmp.c
+++ b/arch/arm/mach-berlin/platsmp.c
@@ -14,6 +14,7 @@
 #include <linux/of_address.h>
 
 #include <asm/cacheflush.h>
+#include <asm/cp15.h>
 #include <asm/smp_plat.h>
 #include <asm/smp_scu.h>
 
@@ -92,8 +93,20 @@ unmap_scu:
 	iounmap(scu_base);
 }
 
+#ifdef CONFIG_HOTPLUG_CPU
+static void berlin_cpu_die(unsigned int cpu)
+{
+	v7_exit_coherency_flush(louis);
+	while (1)
+		cpu_do_idle();
+}
+#endif
+
 static struct smp_operations berlin_smp_ops __initdata = {
 	.smp_prepare_cpus	= berlin_smp_prepare_cpus,
 	.smp_boot_secondary	= berlin_boot_secondary,
+#ifdef CONFIG_HOTPLUG_CPU
+	.cpu_die		= berlin_cpu_die,
+#endif
 };
 CPU_METHOD_OF_DECLARE(berlin_smp, "marvell,berlin-smp", &berlin_smp_ops);
-- 
2.4.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH] ARM: berlin: add CPU hotplug support
  2015-05-12 14:16 [PATCH] ARM: berlin: add CPU hotplug support Antoine Tenart
@ 2015-05-12 15:03 ` Mark Rutland
  2015-05-12 23:23 ` Russell King - ARM Linux
  1 sibling, 0 replies; 4+ messages in thread
From: Mark Rutland @ 2015-05-12 15:03 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, May 12, 2015 at 03:16:26PM +0100, Antoine Tenart wrote:
> Adds CPU hotplug support for Berlin SoCs (currently BG2 and BG2Q). The
> CPUs are put in WFI after disabling the coherency.

This is _not_ CPU hotplug (given the CPUs are still sat on kernel text,
and could be woken at any point), so this is simply broken anywhere it
really matters (e.g. kexec).

So NAK, as the same style of pseudo-hotplug has received repeatedly in
the past for other platforms.

Thanks,
Mark.

> 
> Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
> ---
>  arch/arm/mach-berlin/platsmp.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/arch/arm/mach-berlin/platsmp.c b/arch/arm/mach-berlin/platsmp.c
> index 702e7982015a..d9c62057be76 100644
> --- a/arch/arm/mach-berlin/platsmp.c
> +++ b/arch/arm/mach-berlin/platsmp.c
> @@ -14,6 +14,7 @@
>  #include <linux/of_address.h>
>  
>  #include <asm/cacheflush.h>
> +#include <asm/cp15.h>
>  #include <asm/smp_plat.h>
>  #include <asm/smp_scu.h>
>  
> @@ -92,8 +93,20 @@ unmap_scu:
>  	iounmap(scu_base);
>  }
>  
> +#ifdef CONFIG_HOTPLUG_CPU
> +static void berlin_cpu_die(unsigned int cpu)
> +{
> +	v7_exit_coherency_flush(louis);
> +	while (1)
> +		cpu_do_idle();
> +}
> +#endif
> +
>  static struct smp_operations berlin_smp_ops __initdata = {
>  	.smp_prepare_cpus	= berlin_smp_prepare_cpus,
>  	.smp_boot_secondary	= berlin_boot_secondary,
> +#ifdef CONFIG_HOTPLUG_CPU
> +	.cpu_die		= berlin_cpu_die,
> +#endif
>  };
>  CPU_METHOD_OF_DECLARE(berlin_smp, "marvell,berlin-smp", &berlin_smp_ops);
> -- 
> 2.4.0
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] ARM: berlin: add CPU hotplug support
  2015-05-12 14:16 [PATCH] ARM: berlin: add CPU hotplug support Antoine Tenart
  2015-05-12 15:03 ` Mark Rutland
@ 2015-05-12 23:23 ` Russell King - ARM Linux
  2015-05-13  7:35   ` Antoine Tenart
  1 sibling, 1 reply; 4+ messages in thread
From: Russell King - ARM Linux @ 2015-05-12 23:23 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, May 12, 2015 at 04:16:26PM +0200, Antoine Tenart wrote:
> Adds CPU hotplug support for Berlin SoCs (currently BG2 and BG2Q). The
> CPUs are put in WFI after disabling the coherency.
> 
> Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
> ---
>  arch/arm/mach-berlin/platsmp.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/arch/arm/mach-berlin/platsmp.c b/arch/arm/mach-berlin/platsmp.c
> index 702e7982015a..d9c62057be76 100644
> --- a/arch/arm/mach-berlin/platsmp.c
> +++ b/arch/arm/mach-berlin/platsmp.c
> @@ -14,6 +14,7 @@
>  #include <linux/of_address.h>
>  
>  #include <asm/cacheflush.h>
> +#include <asm/cp15.h>

I don't see anything being added by this patch which would need this
include.

>  #include <asm/smp_plat.h>
>  #include <asm/smp_scu.h>
>  
> @@ -92,8 +93,20 @@ unmap_scu:
>  	iounmap(scu_base);
>  }
>  
> +#ifdef CONFIG_HOTPLUG_CPU
> +static void berlin_cpu_die(unsigned int cpu)
> +{
> +	v7_exit_coherency_flush(louis);
> +	while (1)
> +		cpu_do_idle();
> +}
> +#endif
> +
>  static struct smp_operations berlin_smp_ops __initdata = {
>  	.smp_prepare_cpus	= berlin_smp_prepare_cpus,
>  	.smp_boot_secondary	= berlin_boot_secondary,
> +#ifdef CONFIG_HOTPLUG_CPU
> +	.cpu_die		= berlin_cpu_die,
> +#endif
>  };
>  CPU_METHOD_OF_DECLARE(berlin_smp, "marvell,berlin-smp", &berlin_smp_ops);
> -- 
> 2.4.0
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] ARM: berlin: add CPU hotplug support
  2015-05-12 23:23 ` Russell King - ARM Linux
@ 2015-05-13  7:35   ` Antoine Tenart
  0 siblings, 0 replies; 4+ messages in thread
From: Antoine Tenart @ 2015-05-13  7:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, May 13, 2015 at 12:23:22AM +0100, Russell King - ARM Linux wrote:
> On Tue, May 12, 2015 at 04:16:26PM +0200, Antoine Tenart wrote:
> > Adds CPU hotplug support for Berlin SoCs (currently BG2 and BG2Q). The
> > CPUs are put in WFI after disabling the coherency.
> > 
> > Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
> > ---
> >  arch/arm/mach-berlin/platsmp.c | 13 +++++++++++++
> >  1 file changed, 13 insertions(+)
> > 
> > diff --git a/arch/arm/mach-berlin/platsmp.c b/arch/arm/mach-berlin/platsmp.c
> > index 702e7982015a..d9c62057be76 100644
> > --- a/arch/arm/mach-berlin/platsmp.c
> > +++ b/arch/arm/mach-berlin/platsmp.c
> > @@ -14,6 +14,7 @@
> >  #include <linux/of_address.h>
> >  
> >  #include <asm/cacheflush.h>
> > +#include <asm/cp15.h>
> 
> I don't see anything being added by this patch which would need this
> include.

v7_exit_coherency_flush(..) needs CR_C to be defined, which is done in
asm/cp15.h. Is there a better way to get this defined here?

> >  
> > +#ifdef CONFIG_HOTPLUG_CPU
> > +static void berlin_cpu_die(unsigned int cpu)
> > +{
> > +	v7_exit_coherency_flush(louis);
> > +	while (1)
> > +		cpu_do_idle();
> > +}
> > +#endif
> > +

Antoine

-- 
Antoine T?nart, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-05-13  7:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-12 14:16 [PATCH] ARM: berlin: add CPU hotplug support Antoine Tenart
2015-05-12 15:03 ` Mark Rutland
2015-05-12 23:23 ` Russell King - ARM Linux
2015-05-13  7:35   ` Antoine Tenart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).