On Fri, Jan 21, 2011 at 07:13:48PM +0530, Santosh Shilimkar wrote:
> > -----Original Message-----
> > From: Rob Herring [mailto:robherri...@gmail.com]
> > Sent: Thursday, January 20, 2011 10:05 PM
> > To: Santosh Shilimkar
> > Cc: linux-arm-ker...@lists.infradead.org; Russell King; linux-
> > o...@vger.kernel.org; Linus Walleij
> > Subject: Re: [PATCH] ARM: smp: Introduce ARCH_HAS_COMMON_CORES_CLOCK
> > to speed-up boot
> 
> [..]
> 
> > >>
> > >> There's already one way to do this with pre-calculated lpj.
> > >>
> > > How about the hot-plug path? This is not for just boot.
> >
> > The path is the same for hotplug and secondary boot, so yes for
> > both.
> > Plus you get the added benefit of speeding up the primary core boot
> > as well.
> >
> No 'preset_lpj' will not work for the hotplug path when
> cpufreq is active. It just useful only for boot in
> its current form.

Indeed, it will end up screwing up the loops_per_jiffy value.  That
would seem to be a hole on other architectures too.  I wonder if
anyone has tested hotplug on a cpufreq-scaled system.

> @@ -332,14 +345,19 @@ void __init smp_cpus_done(unsigned int max_cpus)
>       int cpu;
>       unsigned long bogosum = 0;
> 
> -     for_each_online_cpu(cpu)
> -             bogosum += per_cpu(cpu_data, cpu).loops_per_jiffy;
> +     if (!skip_secondary_calibrate) {
> +             for_each_online_cpu(cpu)
> +                     bogosum += per_cpu(cpu_data, cpu).loops_per_jiffy;
> 
> -     printk(KERN_INFO "SMP: Total of %d processors activated "
> -            "(%lu.%02lu BogoMIPS).\n",
> -            num_online_cpus(),
> -            bogosum / (500000/HZ),
> -            (bogosum / (5000/HZ)) % 100);
> +             printk(KERN_INFO "SMP: Total of %d processors activated "
> +                    "(%lu.%02lu BogoMIPS).\n",
> +                     num_online_cpus(),
> +                     bogosum / (500000/HZ),
> +                     (bogosum / (5000/HZ)) % 100);
> +     } else {
> +             printk(KERN_INFO "SMP: Total of %d processors
> activated.\n",
> +                     num_online_cpus());
> +     }

Hmm.  How about:

        char bogosum[32];

        if (!skip_secondary_calibrate) {
                for_each_online_cpu(cpu)
                        bogosum += per_cpu(cpu_data, cpu).loops_per_jiffy;

                snprintf(bogosum, sizeof(bogosum), " (%lu.%02lu BogoMIPS).\n",
                        bogosum / (500000/HZ), (bogosum / (5000/HZ)) % 100);
        } else
                bogosum[0] = '\0';

        pr_info("SMP: Total of %d processors activated%s.\n",
                num_online_cpus(), bogosum);

Looks neater and more compact and reduces the amount of string space
required.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to