From nobody Sat Feb 7 03:05:49 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+109067+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+109067+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1695728380; cv=none; d=zohomail.com; s=zohoarc; b=YGisDI0kYs4yD1ZfCl/Iob+yb00u1VNINaFc2L3ogShnFUPMZ5jGSmxn9D7FKgCMWD474O33E7+pt/KBaitqw5GBbJ0hqtvZbG9CDIeXXWR7wzkzjQ9RUeN0fubnwZfmCdVEdCQISXrbrwkNNio6SiJEbrzngGbu5xxQVw+qx5s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695728380; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=YHcUFBSm5XVcVTPrUFNpxpIenhruE/23z8t6S/mk2ys=; b=CsvlsRIpgKtQY+mXfclT18Yciamg++ezDcFgyXMFdvlzhDFITbVUwnecIk1t6XyCg9SeVCG6AVxPR27kDm6gspUWMDpAMeCfm19h/LvDTsJEXqxUlHQCUx+Wbw7kN1IGIOWUjKSxWE1Q8losQGaDskPQ6KijGtD5l7PGikyLus4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+109067+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1695728380556814.2804176355694; Tue, 26 Sep 2023 04:39:40 -0700 (PDT) Return-Path: DKIM-Signature: a=rsa-sha256; bh=S9g+/yazCOhMEqYd7QsE4geAwI1Cw9KZ2Vb7S9J/42M=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe; s=20140610; t=1695728380; v=1; b=ixCXEsvOdKc0sM0w0PidRvqRP3oVWD1jorrF08naRrYQwXywOO3C3q+r0fOjDASBKHWduTJy 0gPynFjj66YRF+5hj7yncTRCX/nSHnguLHuwxNZWt2G8CFC8EdnSLdSp6/wRvRTzGEDNoD/WBwg RwKsP5SHXY/8xL1Y6auJnv5Y= X-Received: by 127.0.0.2 with SMTP id FCdMYY1788612xQBfhNRVH5o; Tue, 26 Sep 2023 04:39:40 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web11.16623.1695728378396479540 for ; Tue, 26 Sep 2023 04:39:39 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10843"; a="366603648" X-IronPort-AV: E=Sophos;i="6.03,177,1694761200"; d="scan'208";a="366603648" X-Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Sep 2023 04:39:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10843"; a="995802135" X-IronPort-AV: E=Sophos;i="6.03,177,1694761200"; d="scan'208";a="995802135" X-Received: from sh1gapp1009.ccr.corp.intel.com ([10.239.189.219]) by fmsmga006.fm.intel.com with ESMTP; 26 Sep 2023 04:39:37 -0700 From: "Wu, Jiaxin" To: devel@edk2.groups.io Cc: Eric Dong , Ray Ni , Zeng Star , Rahul Kumar , Gerd Hoffmann Subject: [edk2-devel] [PATCH v1 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Optimize semaphore sync between BSP and AP Date: Tue, 26 Sep 2023 19:39:33 +0800 Message-Id: <20230926113934.8548-2-jiaxin.wu@intel.com> In-Reply-To: <20230926113934.8548-1-jiaxin.wu@intel.com> References: <20230926113934.8548-1-jiaxin.wu@intel.com> Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,jiaxin.wu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: sqoAsd8BRjHrR7tZYFAzTkXRx1787277AA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1695728381645100005 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This patch is to: 1. Define 2 new functions (WaitForBsp & ReleaseBsp) used for the semaphore sync between BSP & AP. 2. Add ReleaseOneAp(), used for BSP to release one AP. With the change, BSP & AP Sync flow will be easy understand: BSP to Release All APs ---> AP to Wait BSP ReleaseAllAPs () WaitForBsp BSP to Wait All APs <--- AP to Release BSP WaitForAllAPs () ReleaseBsp BSP to Release One Ap ---> AP to Wait BSP ReleaseOneAp () ReleaseBsp Cc: Eric Dong Cc: Ray Ni Cc: Zeng Star Cc: Rahul Kumar Cc: Gerd Hoffmann Signed-off-by: Jiaxin Wu --- UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 72 ++++++++++++++++++++++++++++---= ---- 1 file changed, 58 insertions(+), 14 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxe= Smm/MpService.c index 25d058c5b9..e96c7f51d6 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c @@ -120,10 +120,11 @@ LockdownSemaphore ( =20 return Value; } =20 /** + Used for BSP to wait all APs. Wait all APs to performs an atomic compare exchange operation to release= semaphore. =20 @param NumberOfAPs AP number =20 **/ @@ -139,10 +140,11 @@ WaitForAllAPs ( WaitForSemaphore (mSmmMpSyncData->CpuData[BspIndex].Run); } } =20 /** + Used for BSP to release all APs. Performs an atomic compare exchange operation to release semaphore for each AP. =20 **/ VOID @@ -157,10 +159,52 @@ ReleaseAllAPs ( ReleaseSemaphore (mSmmMpSyncData->CpuData[Index].Run); } } } =20 +/** + Used for BSP to release one AP. + + @param ApSem IN: 32-bit unsigned integer + OUT: original integer + 1 +**/ +VOID +ReleaseOneAp ( + IN OUT volatile UINT32 *ApSem + ) +{ + ReleaseSemaphore (ApSem); +} + +/** + Used for AP to wait BSP. + + @param ApSem IN: 32-bit unsigned integer + OUT: original integer 0 +**/ +VOID +WaitForBsp ( + IN OUT volatile UINT32 *ApSem + ) +{ + WaitForSemaphore (ApSem); +} + +/** + Used for AP to release BSP. + + @param BspSem IN: 32-bit unsigned integer + OUT: original integer + 1 +**/ +VOID +ReleaseBsp ( + IN OUT volatile UINT32 *BspSem + ) +{ + ReleaseSemaphore (BspSem); +} + /** Check whether the index of CPU perform the package level register programming during System Management Mode initialization. =20 The index of Processor specified by mPackageFirstThreadIndex[PackageInde= x] @@ -632,11 +676,11 @@ BSPHandler ( // Signal all APs it's time for backup MTRRs // ReleaseAllAPs (); =20 // - // WaitForSemaphore() may wait for ever if an AP happens to enter SM= M at + // WaitForBsp() may wait for ever if an AP happens to enter SMM at // exactly this point. Please make sure PcdCpuSmmMaxSyncLoops has be= en set // to a large enough value to avoid this situation. // Note: For HT capable CPUs, threads within a core share the same s= et of MTRRs. // We do the backup first and then set MTRR to avoid race condition = for threads // in the same core. @@ -652,11 +696,11 @@ BSPHandler ( // Let all processors program SMM MTRRs together // ReleaseAllAPs (); =20 // - // WaitForSemaphore() may wait for ever if an AP happens to enter SM= M at + // WaitForBsp() may wait for ever if an AP happens to enter SMM at // exactly this point. Please make sure PcdCpuSmmMaxSyncLoops has be= en set // to a large enough value to avoid this situation. // ReplaceOSMtrrs (CpuIndex); =20 @@ -898,50 +942,50 @@ APHandler ( =20 if ((SyncMode =3D=3D SmmCpuSyncModeTradition) || SmmCpuFeaturesNeedConfi= gureMtrrs ()) { // // Notify BSP of arrival at this point // - ReleaseSemaphore (mSmmMpSyncData->CpuData[BspIndex].Run); + ReleaseBsp (mSmmMpSyncData->CpuData[BspIndex].Run); } =20 if (SmmCpuFeaturesNeedConfigureMtrrs ()) { // // Wait for the signal from BSP to backup MTRRs // - WaitForSemaphore (mSmmMpSyncData->CpuData[CpuIndex].Run); + WaitForBsp (mSmmMpSyncData->CpuData[CpuIndex].Run); =20 // // Backup OS MTRRs // MtrrGetAllMtrrs (&Mtrrs); =20 // // Signal BSP the completion of this AP // - ReleaseSemaphore (mSmmMpSyncData->CpuData[BspIndex].Run); + ReleaseBsp (mSmmMpSyncData->CpuData[BspIndex].Run); =20 // // Wait for BSP's signal to program MTRRs // - WaitForSemaphore (mSmmMpSyncData->CpuData[CpuIndex].Run); + WaitForBsp (mSmmMpSyncData->CpuData[CpuIndex].Run); =20 // // Replace OS MTRRs with SMI MTRRs // ReplaceOSMtrrs (CpuIndex); =20 // // Signal BSP the completion of this AP // - ReleaseSemaphore (mSmmMpSyncData->CpuData[BspIndex].Run); + ReleaseBsp (mSmmMpSyncData->CpuData[BspIndex].Run); } =20 while (TRUE) { // // Wait for something to happen // - WaitForSemaphore (mSmmMpSyncData->CpuData[CpuIndex].Run); + WaitForBsp (mSmmMpSyncData->CpuData[CpuIndex].Run); =20 // // Check if BSP wants to exit SMM // if (!(*mSmmMpSyncData->InsideSmm)) { @@ -977,16 +1021,16 @@ APHandler ( =20 if (SmmCpuFeaturesNeedConfigureMtrrs ()) { // // Notify BSP the readiness of this AP to program MTRRs // - ReleaseSemaphore (mSmmMpSyncData->CpuData[BspIndex].Run); + ReleaseBsp (mSmmMpSyncData->CpuData[BspIndex].Run); =20 // // Wait for the signal from BSP to program MTRRs // - WaitForSemaphore (mSmmMpSyncData->CpuData[CpuIndex].Run); + WaitForBsp (mSmmMpSyncData->CpuData[CpuIndex].Run); =20 // // Restore OS MTRRs // SmmCpuFeaturesReenableSmrr (); @@ -994,26 +1038,26 @@ APHandler ( } =20 // // Notify BSP the readiness of this AP to Reset states/semaphore for thi= s processor // - ReleaseSemaphore (mSmmMpSyncData->CpuData[BspIndex].Run); + ReleaseBsp (mSmmMpSyncData->CpuData[BspIndex].Run); =20 // // Wait for the signal from BSP to Reset states/semaphore for this proce= ssor // - WaitForSemaphore (mSmmMpSyncData->CpuData[CpuIndex].Run); + WaitForBsp (mSmmMpSyncData->CpuData[CpuIndex].Run); =20 // // Reset states/semaphore for this processor // *(mSmmMpSyncData->CpuData[CpuIndex].Present) =3D FALSE; =20 // // Notify BSP the readiness of this AP to exit SMM // - ReleaseSemaphore (mSmmMpSyncData->CpuData[BspIndex].Run); + ReleaseBsp (mSmmMpSyncData->CpuData[BspIndex].Run); } =20 /** Checks whether the input token is the current used token. =20 @@ -1277,11 +1321,11 @@ InternalSmmStartupThisAp ( mSmmMpSyncData->CpuData[CpuIndex].Status =3D CpuStatus; if (mSmmMpSyncData->CpuData[CpuIndex].Status !=3D NULL) { *mSmmMpSyncData->CpuData[CpuIndex].Status =3D EFI_NOT_READY; } =20 - ReleaseSemaphore (mSmmMpSyncData->CpuData[CpuIndex].Run); + ReleaseOneAp (mSmmMpSyncData->CpuData[CpuIndex].Run); =20 if (Token =3D=3D NULL) { AcquireSpinLock (mSmmMpSyncData->CpuData[CpuIndex].Busy); ReleaseSpinLock (mSmmMpSyncData->CpuData[CpuIndex].Busy); } --=20 2.16.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109067): https://edk2.groups.io/g/devel/message/109067 Mute This Topic: https://groups.io/mt/101593528/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sat Feb 7 03:05:49 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+109068+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+109068+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1695728382; cv=none; d=zohomail.com; s=zohoarc; b=ka7CArFZZWiEdb6v3k1ifZ4fwNxtOnPVbsXlO19aN5p2tGWaa4aR9Ruj3WwYtEDQemRbPytSHVH0NdcB1E1Qp9qEYvBv+M/anXDp6UJWkO93AIU/iuvdKYTezUd/Td6hbeWyZmwX+XLdKnvar6pZXYExBzOrWdYKLxiChpQqScU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695728382; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=JGdRVhDbcM9iTnYAsehvIYAMNtIZmmkLOXCmhtL9Xc8=; b=FsNIfYEhyKBLA473dHLksYUvgTtgHVQKggpru4Ty8Shj9jh0ScRO9+sCdXBNnIQ3oiMy0M99Dfky9OjTL1OJXVWXJ+miwBLaEkHs6zKUpN3xW3/7cAWU2a4YQc147dgCUfN7ficYRO59nBCzId93sJoh32b0LTraDYxH5v8eHkg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+109068+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1695728382370572.6961223084032; Tue, 26 Sep 2023 04:39:42 -0700 (PDT) Return-Path: DKIM-Signature: a=rsa-sha256; bh=sLzDH0RUyF7f+j1yxSx5oyVGt2/zzmmIVthqKWqga9c=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe; s=20140610; t=1695728382; v=1; b=ShTuQI/LBFQF+n4pvfn8c28SPBNnUq1OxGkT+ZBGIVWVTAyoh1n5qSS7of9NkWPWcWwGiZ39 Qdk7PB5sNcAAM/vUh0Mbt+b/MwTddDXS6eXe9JHT8rSlZvo/sTrFDVF0qNKq+kVgUGpsSvhuVY0 hU3fKXcFChDKO/bnywYG06FM= X-Received: by 127.0.0.2 with SMTP id 9ZcgYY1788612xtzHjRmUewa; Tue, 26 Sep 2023 04:39:42 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web11.16623.1695728378396479540 for ; Tue, 26 Sep 2023 04:39:41 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10843"; a="366603654" X-IronPort-AV: E=Sophos;i="6.03,177,1694761200"; d="scan'208";a="366603654" X-Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Sep 2023 04:39:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10843"; a="995802156" X-IronPort-AV: E=Sophos;i="6.03,177,1694761200"; d="scan'208";a="995802156" X-Received: from sh1gapp1009.ccr.corp.intel.com ([10.239.189.219]) by fmsmga006.fm.intel.com with ESMTP; 26 Sep 2023 04:39:39 -0700 From: "Wu, Jiaxin" To: devel@edk2.groups.io Cc: Eric Dong , Ray Ni , Zeng Star , Rahul Kumar , Gerd Hoffmann Subject: [edk2-devel] [PATCH v1 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Reduce the times of BSP and AP sync for exit Date: Tue, 26 Sep 2023 19:39:34 +0800 Message-Id: <20230926113934.8548-3-jiaxin.wu@intel.com> In-Reply-To: <20230926113934.8548-1-jiaxin.wu@intel.com> References: <20230926113934.8548-1-jiaxin.wu@intel.com> Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,jiaxin.wu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: iwCcp6ppNYtsxnNKcOKW5gwcx1787277AA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1695728383632100009 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" After review, there are unnecessary steps for BSP and AP sync for exit. This patch is to reduce one round BSP and AP sync for exit so as to improve SMM performance: WaitForAllAPs <- ReleaseBsp ReleaseAllAPs -> WaitForBsp Cc: Eric Dong Cc: Ray Ni Cc: Zeng Star Cc: Rahul Kumar Cc: Gerd Hoffmann Signed-off-by: Jiaxin Wu --- UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 44 +++++++++++++++++++------------= ---- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxe= Smm/MpService.c index e96c7f51d6..5a42a5dd12 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c @@ -665,11 +665,13 @@ BSPHandler ( // *mSmmMpSyncData->AllCpusInSync =3D TRUE; ApCount =3D LockdownSemaphore (mSmmMpSyncData->= Counter) - 1; =20 // - // Wait for all APs to get ready for programming MTRRs + // Wait for all APs: + // 1. Make sure all Aps have set the Present. + // 2. Get ready for programming MTRRs. // WaitForAllAPs (ApCount); =20 if (SmmCpuFeaturesNeedConfigureMtrrs ()) { // @@ -768,16 +770,16 @@ BSPHandler ( // Notify all APs to exit // *mSmmMpSyncData->InsideSmm =3D FALSE; ReleaseAllAPs (); =20 - // - // Wait for all APs to complete their pending tasks - // - WaitForAllAPs (ApCount); - if (SmmCpuFeaturesNeedConfigureMtrrs ()) { + // + // Wait for all APs to complete their pending tasks + // + WaitForAllAPs (ApCount); + // // Signal APs to restore MTRRs // ReleaseAllAPs (); =20 @@ -789,23 +791,23 @@ BSPHandler ( =20 // // Wait for all APs to complete MTRR programming // WaitForAllAPs (ApCount); + + // + // Signal APs to Reset states/semaphore for this processor + // + ReleaseAllAPs (); } =20 // // Stop source level debug in BSP handler, the code below will not be // debugged. // InitializeDebugAgent (DEBUG_AGENT_INIT_EXIT_SMI, NULL, NULL); =20 - // - // Signal APs to Reset states/semaphore for this processor - // - ReleaseAllAPs (); - // // Perform pending operations for hot-plug // SmmCpuUpdate (); =20 @@ -941,10 +943,12 @@ APHandler ( *(mSmmMpSyncData->CpuData[CpuIndex].Present) =3D TRUE; =20 if ((SyncMode =3D=3D SmmCpuSyncModeTradition) || SmmCpuFeaturesNeedConfi= gureMtrrs ()) { // // Notify BSP of arrival at this point + // 1. Set the Present. + // 2. Get ready for programming MTRRs. // ReleaseBsp (mSmmMpSyncData->CpuData[BspIndex].Run); } =20 if (SmmCpuFeaturesNeedConfigureMtrrs ()) { @@ -1033,21 +1037,21 @@ APHandler ( // // Restore OS MTRRs // SmmCpuFeaturesReenableSmrr (); MtrrSetAllMtrrs (&Mtrrs); - } =20 - // - // Notify BSP the readiness of this AP to Reset states/semaphore for thi= s processor - // - ReleaseBsp (mSmmMpSyncData->CpuData[BspIndex].Run); + // + // Notify BSP the readiness of this AP to Reset states/semaphore for t= his processor + // + ReleaseBsp (mSmmMpSyncData->CpuData[BspIndex].Run); =20 - // - // Wait for the signal from BSP to Reset states/semaphore for this proce= ssor - // - WaitForBsp (mSmmMpSyncData->CpuData[CpuIndex].Run); + // + // Wait for the signal from BSP to Reset states/semaphore for this pro= cessor + // + WaitForBsp (mSmmMpSyncData->CpuData[CpuIndex].Run); + } =20 // // Reset states/semaphore for this processor // *(mSmmMpSyncData->CpuData[CpuIndex].Present) =3D FALSE; --=20 2.16.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109068): https://edk2.groups.io/g/devel/message/109068 Mute This Topic: https://groups.io/mt/101593530/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-