From: Zhihao Li <zhihao...@intel.com> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4083
In CPU relaxed mode, it doesn't reset the value of mSmmMpSyncData->AllApArrivedWithException when BSP exit smm mode. So this patch will reset this variable. Modified the flow of SmmCpuRendezvous to avoid enter SmmWaitForApArrival repeatedly. Cc: Eric Dong <eric.d...@intel.com> Cc: Ray Ni <ray...@intel.com> Signed-off-by: Zhihao Li <zhihao...@intel.com> --- UefiCpuPkg/PiSmmCpuDxeSmm/CpuService.c | 17 ++++++++++++----- UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 5 +++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/CpuService.c b/UefiCpuPkg/PiSmmCpuDxeSmm/CpuService.c index 2ebf4543c3ed..368bacd29ea1 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/CpuService.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/CpuService.c @@ -421,11 +421,18 @@ SmmCpuRendezvous ( goto ON_EXIT; } - // - // There are some APs outside SMM, Wait for all avaiable APs to arrive. - // - SmmWaitForApArrival (); - Status = mSmmMpSyncData->AllApArrivedWithException ? EFI_SUCCESS : EFI_TIMEOUT; + if ((mSmmMpSyncData->EffectiveSyncMode != SmmCpuSyncModeTradition) && !SmmCpuFeaturesNeedConfigureMtrrs ()) { + // + // There are some APs outside SMM, Wait for all avaiable APs to arrive. + // + SmmWaitForApArrival (); + Status = mSmmMpSyncData->AllApArrivedWithException ? EFI_SUCCESS : EFI_TIMEOUT; + } else { + // + // BSP has already waitted for APs to arrive SMM if SmmCpuSyncMode selected or need config MTRR. + // + Status = EFI_TIMEOUT; + } ON_EXIT: if (!mSmmMpSyncData->AllApArrivedWithException) { diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c index 13c2cb8da4c3..c79da418e37c 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c @@ -696,8 +696,9 @@ BSPHandler ( // // Allow APs to check in from this point on // - *mSmmMpSyncData->Counter = 0; - *mSmmMpSyncData->AllCpusInSync = FALSE; + *mSmmMpSyncData->Counter = 0; + *mSmmMpSyncData->AllCpusInSync = FALSE; + mSmmMpSyncData->AllApArrivedWithException = FALSE; } /** -- 2.26.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#94841): https://edk2.groups.io/g/devel/message/94841 Mute This Topic: https://groups.io/mt/94195356/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-