Re: [PATCH v9 0/8] Parallel CPU bringup for x86_64
From: Thomas Gleixner
Date: Thu Feb 23 2023 - 09:37:09 EST
David!
On Thu, Feb 23 2023 at 11:07, David Woodhouse wrote:
> On Wed, 2023-02-22 at 17:42 +0100, Thomas Gleixner wrote:
>> The low hanging fruit which brings most is the identification/topology
>> muck and the microcode loading. That needs to be addressed first anyway.
>
> Agreed, thanks.
So the problem with microcode loading is that we must ensure that a HT
sibling is not executing anything else than a trivial loop waiting for
the update to complete. So something like this should work:
1) Kick all CPUs into life and let them run up to cpu_init() and
retrieve only the topology information.
2) Wait for all CPUs to reach this point
3) Release all primary HT threads so they can load microcode in
parallel. The secondary HT threads stay in the wait loop and are
released once the primary thread has finished the microcode
update.
4) Let the CPUs do the full CPUID readout and let them synchronize
with the control CPU again.
5) Complete bringup one by one
Thanks,
tglx