From: Robin Holt <holt@sgi.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Robin Holt <holt@sgi.com>, Andi Kleen <andi@firstfloor.org>,
linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>
Subject: Re: [RFC 2/2] Make x86 calibrate_delay run in parallel.
Date: Thu, 31 Mar 2011 04:29:45 -0500 [thread overview]
Message-ID: <20110331092945.GD24046@sgi.com> (raw)
In-Reply-To: <AANLkTinoctZFKo4wBmrrdFggnjSj74QfqvEpz59sW15x@mail.gmail.com>
On Wed, Mar 30, 2011 at 09:46:46PM -0700, Yinghai Lu wrote:
> On Tue, Dec 14, 2010 at 5:58 PM, <Robin@sgi.com> wrote:
> >
> > On a 4096 cpu machine, we noticed that 318 seconds were taken for bringing
> > up the cpus. By specifying lpj=<value>, we reduced that to 75 seconds.
> > Andi Kleen suggested we rework the calibrate_delay calls to run in
> > parallel. With that code in place, a test boot of the same machine took
> > 61 seconds to bring the cups up. I am not sure how we beat the lpj=
> > case, but it did outperform.
> >
> > One thing to note is the total BogoMIPS value is also consistently higher.
> > I am wondering if this is an effect with the cores being in performance
> > mode. I did notice that the parallel calibrate_delay calls did cause the
> > fans on the machine to ramp up to full speed where the normal sequential
> > calls did not cause them to budge at all.
>
> please check attached patch, that could calibrate correctly.
>
> Thanks
>
> Yinghai
> [PATCH -v2] x86: Make calibrate_delay run in parallel.
>
> On a 4096 cpu machine, we noticed that 318 seconds were taken for bringing
> up the cpus. By specifying lpj=<value>, we reduced that to 75 seconds.
> Andi Kleen suggested we rework the calibrate_delay calls to run in
> parallel.
>
> -v2: from Yinghai
> two path: one for initial boot cpus. and one for hotplug cpus
> initial path:
> after all cpu boot up, enter idle, use smp_call_function_many
> let every ap call __calibrate_delay.
> We can not put that calibrate_delay after local_irq_enable
> in start_secondary(), at that time that cpu could be involed
> with perf_event with nmi_watchdog enabling. that will cause
> strange calibrating result.
If I understand your description above, that would cause the cpu's lpj
value to be too low if they did take an NMI, correct? The problem I was
seeing was additional cores on the socket got a value much higher than
the first core. I don't recall exact values. It would be something
like the second through fifth cores all got larger than the first, then
the sixth stayed the same as the fifth, and seventh was slightly less
then the sixth and finally the eigth was lower than the seventh.
I don't see how this patch would affect that. Has this been tested on
a multi-core intel cpu? I will try to test it today when I get to the
office.
Additionally, it takes the bogomips value from being part of an output
line and makes it a separate line. On a 4096 cpu system, that will mean
many additional lines of output. In the past, we have seen that will
cause a considerable slowdown as time is spent printing. Fortunately,
that is likely not going to slow things down as a secondary cpu will
likely be doing that work while the boot cpu is allowed to continue with
the boot. Is there really a value for a normal boot to have this output?
Can we remove the individual lines of output and just print the system
BogoMips value?
Thanks,
Robin
next prev parent reply other threads:[~2011-03-31 9:29 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-15 1:58 [RFC 0/2] Speed large x86_64 system boot by calling calibrate_delay() in parallel Robin, Holt <holt
2010-12-15 1:58 ` [RFC 1/2] Pass loops_per_jiffy in and out of calibrate_delay() Robin, Holt <holt
2010-12-15 1:58 ` [RFC 2/2] Make x86 calibrate_delay run in parallel Robin, Holt <holt
2010-12-16 8:34 ` Thomas Gleixner
2011-03-31 4:46 ` Yinghai Lu
2011-03-31 6:50 ` Ingo Molnar
2011-03-31 6:58 ` Ingo Molnar
2011-03-31 9:37 ` Robin Holt
2011-03-31 9:57 ` Ingo Molnar
2011-03-31 10:30 ` Avi Kivity
2011-03-31 10:46 ` Ingo Molnar
2011-03-31 10:49 ` Avi Kivity
2011-03-31 11:13 ` Ingo Molnar
2011-03-31 11:50 ` Robin Holt
2011-03-31 9:29 ` Robin Holt [this message]
2011-03-31 14:25 ` Yinghai Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110331092945.GD24046@sgi.com \
--to=holt@sgi.com \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox