@@ -522,13 +522,13 @@ BSPHandler (
522522 //
523523 // Wait for all APs to get ready for programming MTRRs
524524 //
525- SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex );
525+ SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex ); /// #1: Wait APs
526526
527527 if (SmmCpuFeaturesNeedConfigureMtrrs ()) {
528528 //
529529 // Signal all APs it's time for backup MTRRs
530530 //
531- ReleaseAllAPs ();
531+ ReleaseAllAPs (); /// #2: Signal APs
532532
533533 //
534534 // SmmCpuSyncWaitForAPs() may wait for ever if an AP happens to enter SMM at
@@ -543,12 +543,12 @@ BSPHandler (
543543 //
544544 // Wait for all APs to complete their MTRR saving
545545 //
546- SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex );
546+ SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex ); /// #3: Wait APs
547547
548548 //
549549 // Let all processors program SMM MTRRs together
550550 //
551- ReleaseAllAPs ();
551+ ReleaseAllAPs (); /// #4: Signal APs
552552
553553 //
554554 // SmmCpuSyncWaitForAPs() may wait for ever if an AP happens to enter SMM at
@@ -560,7 +560,7 @@ BSPHandler (
560560 //
561561 // Wait for all APs to complete their MTRR programming
562562 //
563- SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex );
563+ SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex ); /// #5: Wait APs
564564 }
565565 }
566566
@@ -625,18 +625,18 @@ BSPHandler (
625625 // Notify all APs to exit
626626 //
627627 * mSmmMpSyncData -> InsideSmm = FALSE;
628- ReleaseAllAPs ();
628+ ReleaseAllAPs (); /// #6: Signal APs
629629
630630 if (SmmCpuFeaturesNeedConfigureMtrrs ()) {
631631 //
632632 // Wait for all APs the readiness to program MTRRs
633633 //
634- SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex );
634+ SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex ); /// #7: Wait APs
635635
636636 //
637637 // Signal APs to restore MTRRs
638638 //
639- ReleaseAllAPs ();
639+ ReleaseAllAPs (); /// #8: Signal APs
640640
641641 //
642642 // Restore OS MTRRs
@@ -649,12 +649,12 @@ BSPHandler (
649649 //
650650 // Wait for all APs to complete their pending tasks including MTRR programming if needed.
651651 //
652- SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex );
652+ SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex ); /// #9: Wait APs
653653
654654 //
655655 // Signal APs to Reset states/semaphore for this processor
656656 //
657- ReleaseAllAPs ();
657+ ReleaseAllAPs (); /// #10: Signal APs
658658 }
659659
660660 if (mSmmDebugAgentSupport ) {
@@ -679,7 +679,7 @@ BSPHandler (
679679 // Gather APs to exit SMM synchronously. Note the Present flag is cleared by now but
680680 // WaitForAllAps does not depend on the Present flag.
681681 //
682- SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex );
682+ SmmCpuSyncWaitForAPs (mSmmMpSyncData -> SyncContext , ApCount , CpuIndex ); /// #11: Wait APs
683683
684684 //
685685 // At this point, all APs should have exited from APHandler().
@@ -805,14 +805,14 @@ APHandler (
805805 //
806806 // Notify BSP of arrival at this point
807807 //
808- SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
808+ SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #1: Signal BSP
809809 }
810810
811811 if (SmmCpuFeaturesNeedConfigureMtrrs ()) {
812812 //
813813 // Wait for the signal from BSP to backup MTRRs
814814 //
815- SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
815+ SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #2: Wait BSP
816816
817817 //
818818 // Backup OS MTRRs
@@ -822,12 +822,12 @@ APHandler (
822822 //
823823 // Signal BSP the completion of this AP
824824 //
825- SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
825+ SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #3: Signal BSP
826826
827827 //
828828 // Wait for BSP's signal to program MTRRs
829829 //
830- SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
830+ SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #4: Wait BSP
831831
832832 //
833833 // Replace OS MTRRs with SMI MTRRs
@@ -837,14 +837,14 @@ APHandler (
837837 //
838838 // Signal BSP the completion of this AP
839839 //
840- SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
840+ SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #5: Signal BSP
841841 }
842842
843843 while (TRUE) {
844844 //
845845 // Wait for something to happen
846846 //
847- SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
847+ SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #6: Wait BSP
848848
849849 //
850850 // Check if BSP wants to exit SMM
@@ -884,12 +884,12 @@ APHandler (
884884 //
885885 // Notify BSP the readiness of this AP to program MTRRs
886886 //
887- SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
887+ SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #7: Signal BSP
888888
889889 //
890890 // Wait for the signal from BSP to program MTRRs
891891 //
892- SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
892+ SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #8: Wait BSP
893893
894894 //
895895 // Restore OS MTRRs
@@ -902,12 +902,12 @@ APHandler (
902902 //
903903 // Notify BSP the readiness of this AP to Reset states/semaphore for this processor
904904 //
905- SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
905+ SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #9: Signal BSP
906906
907907 //
908908 // Wait for the signal from BSP to Reset states/semaphore for this processor
909909 //
910- SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
910+ SmmCpuSyncWaitForBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #10: Wait BSP
911911 }
912912
913913 //
@@ -918,7 +918,7 @@ APHandler (
918918 //
919919 // Notify BSP the readiness of this AP to exit SMM
920920 //
921- SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex );
921+ SmmCpuSyncReleaseBsp (mSmmMpSyncData -> SyncContext , CpuIndex , BspIndex ); /// #11: Signal BSP
922922}
923923
924924/**
0 commit comments