From: Usama Arif <usama.arif@bytedance.com>
To: David Woodhouse <dwmw2@infradead.org>,
tglx@linutronix.de, kim.phillips@amd.com, arjan@linux.intel.com
Cc: mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
hpa@zytor.com, x86@kernel.org, pbonzini@redhat.com,
paulmck@kernel.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, rcu@vger.kernel.org, mimoja@mimoja.de,
hewenliang4@huawei.com, thomas.lendacky@amd.com,
seanjc@google.com, pmenzel@molgen.mpg.de,
fam.zheng@bytedance.com, punit.agrawal@bytedance.com,
simon.evans@bytedance.com, liangma@liangbit.com
Subject: Re: [External] Re: [PATCH v9 0/8] Parallel CPU bringup for x86_64
Date: Wed, 22 Feb 2023 11:11:25 +0000 [thread overview]
Message-ID: <be85a49f-9867-6117-9c35-f7d7b8c0cdff@bytedance.com> (raw)
In-Reply-To: <62ee53770b4010f065346b7f2a1200013836be97.camel@infradead.org>
On 22/02/2023 10:11, David Woodhouse wrote:
> On Wed, 2023-02-15 at 14:54 +0000, Usama Arif wrote:
>> The main change over v8 is dropping the patch to avoid repeated saves of MTRR
>> at boot time. It didn't make a difference to smpboot time and is independent
>> of parallel CPU bringup, so if needed can be explored in a separate patchset.
>>
>> The patches have also been rebased to v6.2-rc8 and retested and the
>> improvement in boot time is the same as v8.
>
> Thanks for picking this up, Usama.
>
> So the next thing that might be worth looking at is allowing the APs
> all to be running their hotplug thread simultaneously, bringing
> themselves from CPUHP_BRINGUP_CPU to CPUHP_AP_ONLINE. This series eats
> the initial INIT/SIPI/SIPI latency, but if there's any significant time
> in the AP hotplug thread, that could be worth parallelising.
>
> There may be further wins in the INIT/SIPI/SIPI too. Currently we
> process each CPU at a time, sending INIT, SIPI, waiting 10µs and
> sending another SIPI.
>
> What if we sent the first INIT+SIPI to all CPUs, then did another pass
> sending another SIPI only to those which hadn't already started running
> and set their bit in cpu_initialized_mask ?
>
> Might not be worth it, and there's an added complexity that they all
> have to wait for each other (on the real mode trampoline lock) before
> they can take their turn and get as far as setting their bit in
> cpu_initialized_mask. So we'd probably end up sending the second SIPI
> to most of them *anyway*.
Thanks! I think I sent out v10 a bit too early, but hopefully it looks
like everyone agrees on the suspend code in it at the moment?
As a next step, I was thinking of reposting and starting a discussion on
the reuse timer calibration patch separately. Its not part of parallel
smp, but in my testing, it takes away (70ms) ~70% of the remaining
parallel smpboot time. With the machine and kernel I am testing, the
kexec reboot time after parallel smp is just under a second, so this
represents ~7% of the boot time, which is a notable percentage reduction
in server downtime. Or maybe someone could reply to this thread saying
its not a good idea to post it as I remember there were quite a few
reservations about it? :)
Thanks,
Usama
next prev parent reply other threads:[~2023-02-22 11:11 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-15 14:54 [PATCH v9 0/8] Parallel CPU bringup for x86_64 Usama Arif
2023-02-15 14:54 ` [PATCH v9 1/8] x86/apic/x2apic: Allow CPU cluster_mask to be populated in parallel Usama Arif
2023-02-16 20:58 ` Kim Phillips
2023-02-15 14:54 ` [PATCH v9 2/8] cpu/hotplug: Move idle_thread_get() to <linux/smpboot.h> Usama Arif
2023-02-15 14:54 ` [PATCH v9 3/8] cpu/hotplug: Add dynamic parallel bringup states before CPUHP_BRINGUP_CPU Usama Arif
2023-02-15 14:54 ` [PATCH v9 4/8] x86/smpboot: Reference count on smpboot_setup_warm_reset_vector() Usama Arif
2023-02-15 14:54 ` [PATCH v9 5/8] x86/smpboot: Split up native_cpu_up into separate phases and document them Usama Arif
2023-02-15 14:54 ` [PATCH v9 6/8] x86/smpboot: Support parallel startup of secondary CPUs Usama Arif
2023-02-15 14:54 ` [PATCH v9 7/8] x86/smpboot: Send INIT/SIPI/SIPI to secondary CPUs in parallel Usama Arif
2023-02-15 14:54 ` [PATCH v9 8/8] x86/smpboot: Serialize topology updates for secondary bringup Usama Arif
2023-02-16 6:34 ` [PATCH v9 0/8] Parallel CPU bringup for x86_64 Paul E. McKenney
2023-02-20 16:08 ` Oleksandr Natalenko
2023-02-20 16:20 ` David Woodhouse
2023-02-20 16:40 ` Oleksandr Natalenko
2023-02-20 20:31 ` David Woodhouse
2023-02-20 21:23 ` Oleksandr Natalenko
2023-02-20 21:34 ` Piotr Gorski
2023-02-20 21:39 ` David Woodhouse
2023-02-20 23:23 ` Kim Phillips
2023-02-20 23:30 ` David Woodhouse
2023-02-21 4:20 ` Kim Phillips
2023-02-21 7:16 ` David Woodhouse
2023-02-21 7:27 ` Oleksandr Natalenko
2023-02-21 7:53 ` David Woodhouse
2023-02-21 8:05 ` Oleksandr Natalenko
2023-02-21 8:17 ` David Woodhouse
2023-02-21 8:25 ` Oleksandr Natalenko
2023-02-21 8:35 ` David Woodhouse
2023-02-21 8:44 ` Oleksandr Natalenko
2023-02-21 9:06 ` David Woodhouse
2023-02-21 9:49 ` Oleksandr Natalenko
2023-02-21 10:27 ` David Woodhouse
2023-02-21 10:47 ` [External] " Usama Arif
2023-02-21 11:42 ` Oleksandr Natalenko
2023-02-21 11:54 ` Usama Arif
2023-02-21 13:22 ` David Woodhouse
2023-02-21 11:46 ` Oleksandr Natalenko
2023-02-21 11:49 ` David Woodhouse
2023-02-21 12:14 ` Oleksandr Natalenko
2023-02-21 19:10 ` David Woodhouse
2023-02-21 20:04 ` [External] " Usama Arif
2023-02-21 21:04 ` Oleksandr Natalenko
2023-02-21 21:41 ` Thomas Gleixner
2023-02-21 21:44 ` David Woodhouse
2023-02-21 23:18 ` David Woodhouse
2023-02-22 0:00 ` [External] " Usama Arif
2023-02-22 8:19 ` David Woodhouse
2023-02-22 9:46 ` Thomas Gleixner
2023-02-22 9:51 ` David Woodhouse
2023-02-22 9:31 ` Thomas Gleixner
2023-02-20 22:22 ` Piotr Gorski
2023-02-20 22:23 ` [External] " Usama Arif
2023-02-20 22:41 ` Oleksandr Natalenko
2023-02-22 10:11 ` David Woodhouse
2023-02-22 11:11 ` Usama Arif [this message]
2023-02-22 12:08 ` Brian Gerst
2023-02-22 12:53 ` David Woodhouse
2023-02-22 16:42 ` Thomas Gleixner
2023-02-23 11:07 ` David Woodhouse
2023-02-23 14:37 ` Thomas Gleixner
2023-02-23 15:12 ` David Woodhouse
2023-02-23 19:24 ` [External] " Usama Arif
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=be85a49f-9867-6117-9c35-f7d7b8c0cdff@bytedance.com \
--to=usama.arif@bytedance.com \
--cc=arjan@linux.intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=dwmw2@infradead.org \
--cc=fam.zheng@bytedance.com \
--cc=hewenliang4@huawei.com \
--cc=hpa@zytor.com \
--cc=kim.phillips@amd.com \
--cc=kvm@vger.kernel.org \
--cc=liangma@liangbit.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mimoja@mimoja.de \
--cc=mingo@redhat.com \
--cc=paulmck@kernel.org \
--cc=pbonzini@redhat.com \
--cc=pmenzel@molgen.mpg.de \
--cc=punit.agrawal@bytedance.com \
--cc=rcu@vger.kernel.org \
--cc=seanjc@google.com \
--cc=simon.evans@bytedance.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=x86@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;
as well as URLs for NNTP newsgroup(s).