lkml.org 
[lkml]   [2014]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/2] socfpga: hotplug: put cpu1 in wfi
On Wed, 24 Sep 2014, Russell King - ARM Linux wrote:

Hi Russell,

> On Wed, Sep 24, 2014 at 03:27:28PM -0500, atull@opensource.altera.com wrote:
> > diff --git a/arch/arm/mach-socfpga/platsmp.c b/arch/arm/mach-socfpga/platsmp.c
> > index 5356a72..1d5f8ad 100644
> > --- a/arch/arm/mach-socfpga/platsmp.c
> > +++ b/arch/arm/mach-socfpga/platsmp.c
> > @@ -34,6 +34,10 @@ static int socfpga_boot_secondary(unsigned int cpu, struct task_struct *idle)
> > int trampoline_size = &secondary_trampoline_end - &secondary_trampoline;
> >
> > if (cpu1start_addr) {
> > + /* This will put CPU #1 into reset.*/
> > + __raw_writel(RSTMGR_MPUMODRST_CPU1,
> > + rst_manager_base_addr + 0x10);
>
> If you can place CPU1 into reset, then why not place it into reset during
> hot unplug?

It's a chip weirdness. We can reset CPU1 briefly, but if we leave it in
reset, it results in power consumption going up.

>
> > @@ -86,10 +90,12 @@ static void __init socfpga_smp_prepare_cpus(unsigned int max_cpus)
> > */
> > static void socfpga_cpu_die(unsigned int cpu)
> > {
> > - cpu_do_idle();
> > + /* Flush the L1 data cache. */
> > + flush_cache_all();
>
> Why do you think that's necessary?
>
> This potentially flushes *all* levels of the cache, including L2, which
> is not a nice thing to do if you have another CPU running. Secondly,
> the core code has already called flush_cache_louis() _twice_ for you
> immediately prior to calling your cpu_die() function explicitly to
> remove any L1 data.
>
> The only data which should remain are speculative prefetches and stack
> data specific to _this_ CPU (which could include dirty cache lines
> associated with the stack frame to enter your cpu_die function.)
> None of these cache lines are of any interest to other CPUs in the
> system, so there's no need for them to be written back prior to the
> CPU being reset or powered down for hot unplug.
>

Then it's clear we don't need that. I'll take it out in v2.

Thanks for the review!

Alan


\
 
 \ /
  Last update: 2014-09-25 17:41    [W:0.073 / U:0.524 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site