Can you please split the patch to 2 patches? > -----Original Message----- > From: Li, Zhihao <zhihao...@intel.com> > Sent: Saturday, October 8, 2022 1:58 PM > To: devel@edk2.groups.io > Cc: Dong, Eric <eric.d...@intel.com>; Ni, Ray <ray...@intel.com> > Subject: [PATCH v2 1/1] UefiCpuPkg: Reset a parameter when BSP Exit in > CPU relaxed mode. > > 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 (#94842): https://edk2.groups.io/g/devel/message/94842 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] -=-=-=-=-=-=-=-=-=-=-=-