InitializeMpSupport will be better able to coordinate with the APs to find out if the maximum number of processors have been seen, and therefore to stop waiting for APs earlier.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <[email protected]> Cc: Jeff Fan <[email protected]> Cc: Laszlo Ersek <[email protected]> --- UefiCpuPkg/CpuDxe/ApStartup.c | 4 ---- UefiCpuPkg/CpuDxe/CpuMp.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/UefiCpuPkg/CpuDxe/ApStartup.c b/UefiCpuPkg/CpuDxe/ApStartup.c index 78fb26f..f4560d3 100644 --- a/UefiCpuPkg/CpuDxe/ApStartup.c +++ b/UefiCpuPkg/CpuDxe/ApStartup.c @@ -451,10 +451,6 @@ StartApsStackless ( ) { SendInitSipiSipiAllExcludingSelf ((UINT32)(UINTN)(VOID*) StartupCode); - // - // Wait for APs to arrive at the ApEntryPoint routine - // - MicroSecondDelay (PcdGet32 (PcdCpuApInitTimeOutInMicroSeconds)); return EFI_SUCCESS; } diff --git a/UefiCpuPkg/CpuDxe/CpuMp.c b/UefiCpuPkg/CpuDxe/CpuMp.c index e80835f..6a22b9d 100644 --- a/UefiCpuPkg/CpuDxe/CpuMp.c +++ b/UefiCpuPkg/CpuDxe/CpuMp.c @@ -1747,6 +1747,11 @@ InitializeMpSupport ( PrepareAPStartupCode (); StartApsStackless (); + + // + // Wait for APs to arrive at the ApEntryPoint routine + // + MicroSecondDelay (PcdGet32 (PcdCpuApInitTimeOutInMicroSeconds)); } DEBUG ((DEBUG_INFO, "Detect CPU count: %d\n", mMpSystemData.NumberOfProcessors)); -- 2.5.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

