Source level debugging in SMM doesn't enable timer interrupt so it does not support break-in from HOST debugger. It only supports debugging AP code which is stopped by breakpoints. I agree that with this change, the debug window of APs is a bit increased.
Reviewed-by: Ray Ni <[email protected]> Thanks, Ray > -----Original Message----- > From: Wu, Jiaxin <[email protected]> > Sent: Tuesday, December 26, 2023 12:21 AM > To: [email protected] > Cc: Laszlo Ersek <[email protected]>; Dong, Eric <[email protected]>; Ni, > Ray <[email protected]>; Zeng, Star <[email protected]>; Gerd Hoffmann > <[email protected]>; Kumar, Rahul R <[email protected]> > Subject: [PATCH v2 5/6] UefiCpuPkg/PiSmmCpuDxeSmm: Invert > ReleaseAllAPs & InitializeDebugAgent > > Existing BSP handler stops source level debug, then call ReleaseAllAPs > to tell all APs can reset the Present flag to FALSE: > InitializeDebugAgent (); /// Stop source level debug > ReleaseAllAPs (); /// Tell APs can reset "Present" flag. > > This patch is to invert ReleaseAllAPs & InitializeDebugAgent: > ReleaseAllAPs (); /// Tell APs can reset "Present" flag. > InitializeDebugAgent (); /// Stop source level debug > > After this change, there is no negative impact since SMM source level > debug feature doesn't depend on AP's "Present" flag, no impact to the > SMM source level debug capability. > > Instead, the change will benefit the AP source level debug capability > to trace its "Present" flag change for SMI exit since the source > level debug feature will be stopped after each AP has the chance to > reset the state. > > Cc: Laszlo Ersek <[email protected]> > Cc: Eric Dong <[email protected]> > Cc: Ray Ni <[email protected]> > Cc: Zeng Star <[email protected]> > Cc: Gerd Hoffmann <[email protected]> > Cc: Rahul Kumar <[email protected]> > Signed-off-by: Jiaxin Wu <[email protected]> > --- > UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c > b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c > index bd2c9f841b..9aa9908863 100644 > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c > @@ -648,23 +648,23 @@ BSPHandler ( > // > // Wait for all APs to complete their pending tasks including MTRR > programming if needed. > // > SmmCpuSyncWaitForAPs (mSmmMpSyncData->SyncContext, ApCount, > CpuIndex); > > + // > + // Signal APs to Reset states/semaphore for this processor > + // > + ReleaseAllAPs (); > + > if (mSmmDebugAgentSupport) { > // > // Stop source level debug in BSP handler, the code below will not be > // debugged. > // > InitializeDebugAgent (DEBUG_AGENT_INIT_EXIT_SMI, NULL, NULL); > } > > - // > - // Signal APs to Reset states/semaphore for this processor > - // > - ReleaseAllAPs (); > - > // > // Perform pending operations for hot-plug > // > SmmCpuUpdate (); > > -- > 2.16.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#112903): https://edk2.groups.io/g/devel/message/112903 Mute This Topic: https://groups.io/mt/103360806/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
