Current logic always waiting for a specific value to collect all APs count. This logic may caused some platforms cost too much time to wait for time out.
This patch series add new logic to collect APs count. It adds new variable NumApsExecuting to detect whether all APs have finished initialization. Each AP let NumApsExecuting++ when begin to initialize itself and let NumApsExecuting-- when it finish the initialization. BSP base on whether NumApsExecuting == 0 to finished the collect AP process. Because current code already use NumApsExecuting variable, so add another patch to change the variable name for the current code for better understanding. Eric Dong (2): UefiCpuPkg/MpInitLib: Change AP Index variable name. UefiCpuPkg/MpInitLib: Enhance waiting for AP initialization logic. UefiCpuPkg/Library/MpInitLib/Ia32/MpEqu.inc | 3 ++- UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm | 10 ++++++++-- UefiCpuPkg/Library/MpInitLib/MpLib.c | 24 ++++++++++++++++-------- UefiCpuPkg/Library/MpInitLib/MpLib.h | 3 ++- UefiCpuPkg/Library/MpInitLib/X64/MpEqu.inc | 5 +++-- UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm | 10 ++++++++-- 6 files changed, 39 insertions(+), 16 deletions(-) -- 2.7.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel