From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web12.5828.1651201623918715668 for ; Thu, 28 Apr 2022 20:07:04 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=JBT9SGxg; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651201623; x=1682737623; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=u6ul+65PK2ol7Ngz57be19bAvEZzCC7rcDfsh9x8PCY=; b=JBT9SGxgvpHkEWsSUXkbZo5NxTRNQ5PczHw+f7RDRzxDDEvFye3yeetk SMD+TksN/73fltTSREjbGZk1ovz9qhJW/rMoNZuxhKFd5NwXL0no69daW K2EOf8LnXG7XTVjLqG1tDeXI2t3HFdblhI//JlQcmlFmuCg5TqgwmTmPd ndXmFD0UtwhGYNHznuJA6vFtPhtb2AT1sxz58GvJQc8AZrHxJzTqMZry7 jjB4mk0lH21OWdMYwuFQSNppTWZLlMJA9Et21NtKk7ZYtGT/EIdd/ZzHr SYnHMwoIpFIsnHgoqLs2IEY+SY2jUFRAPi1Y+rNCb77M73nYS02UmcmBX w==; X-IronPort-AV: E=McAfee;i="6400,9594,10331"; a="266325261" X-IronPort-AV: E=Sophos;i="5.91,297,1647327600"; d="scan'208";a="266325261" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2022 20:07:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,297,1647327600"; d="scan'208";a="879893644" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga005.fm.intel.com with ESMTP; 28 Apr 2022 20:07:02 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 28 Apr 2022 20:07:02 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 28 Apr 2022 20:07:01 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Thu, 28 Apr 2022 20:07:01 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.45) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Thu, 28 Apr 2022 20:07:01 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DLiFlXnFwPiLEg0+CNJfslqXMO9ZXKJ93C5K5OWsmvjrNho8RzEU4oghZpfn15tnLiF9YVGHk3+ts2K8vwgEmRO75VjBoE+CD5Bva0nEccME3ZayIJJmQVbsvA05Fuls80ll9zHLFmK5piei1YAK1qvAYmZtrct/uN8MlGvQj8TYVlndGAwoqAs/Mjtd7HsDHBbsHGkFe1nJ/aC78bL+MnJIg36FyZ/hVgy2PBgDWQRMPp162gIuSaI7ZQmSZVbVQr9TsSEA6kFfqxCO3ULn8S8ZfZU1lhd0klASp77RwDDaWKKTh24mjZnBIwvpqYuY1cvncTdlyZ6jW9/A8WaO3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CT7vUw7m46KQbnx7RlJ+HTF1tCPktAdvXtqF0STXYpg=; b=MfN4TeZb06zRMVYcijWSqrwRN2Y2/RfXw0kTxX+BEXADB18mHmHJmayle4V9w39nUIZzo4gkXMCigr82WgbFKp31W56SHA5YDnbAIprX7LahQ2pYjwnsedsyR5CRQx7fsUagL9t51XtM9TcDQCja/vqnTRr9mC9HGV7yemvpqkpE3645LmJG/wzUbnyhGxD5KzMHkVlVz7IC5Dic7FBWTdeXQafdvxs58Z90yQO/ZPGGCcmpyrPuDUJGMFSFhkJ0v5vP/d+WfRhsTRfEYaha6fOk9RiXO+jajpQZuB6P8JIxOLbMZhjUSqIm30nzmuttEASEIdw5tzU9gveXr7DsxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MWHPR11MB1631.namprd11.prod.outlook.com (2603:10b6:301:10::10) by CY4PR11MB1895.namprd11.prod.outlook.com (2603:10b6:903:126::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.15; Fri, 29 Apr 2022 03:06:59 +0000 Received: from MWHPR11MB1631.namprd11.prod.outlook.com ([fe80::ccd3:2b56:48a4:507a]) by MWHPR11MB1631.namprd11.prod.outlook.com ([fe80::ccd3:2b56:48a4:507a%9]) with mapi id 15.20.5186.023; Fri, 29 Apr 2022 03:06:58 +0000 From: "Ni, Ray" To: "Xu, Min M" , "devel@edk2.groups.io" CC: Brijesh Singh , "Aktas, Erdem" , James Bottomley , "Yao, Jiewen" , Tom Lendacky , "Dong, Eric" Subject: Re: [PATCH 1/1] UefiCpuPkg: Save PcdConfidentialComputingGuestAttr in mCcGuestAttr Thread-Topic: [PATCH 1/1] UefiCpuPkg: Save PcdConfidentialComputingGuestAttr in mCcGuestAttr Thread-Index: AQHYW3WkNAC6OHE3KUqwBMcdnRv0da0GNSNA Date: Fri, 29 Apr 2022 03:06:58 +0000 Message-ID: References: <1bef66daa55f86bba85b78aec1aaec077d97d0a8.1651201263.git.min.m.xu@intel.com> In-Reply-To: <1bef66daa55f86bba85b78aec1aaec077d97d0a8.1651201263.git.min.m.xu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 73f0101d-6adf-4d15-ee54-08da298d52fc x-ms-traffictypediagnostic: CY4PR11MB1895:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EE38d47I0NbW2n1/ulZ94xl8ihW1wcwZcfFUU7q8cmRwg0ScT29hl1ljPrXkbarK5MKpbyDnuI1Tkmbe5VKza4sgA11Z/YX/tB0en76VtfBApqS30hKP94Z+7MYBPkoWm17h5QfONjFSevE5LdeQaSpXKQJFl6i+1m8NFs5K8qqhP6zmEn8gsZWbBd7VLBDcRHlThyLu7p7t0ugBmeEdDJh9+AqwQ8DswcD3CIpsFcGdHGtBtlsc/WwPfb1lUaXEcCMZvUNOFynfipHdT3nkAzuo2vH1zhl+ZDyYFmh2+L0Mh9rwDnd4vAc5pcu2fwHpY2pMPyZe/00cB3H0B8tAy7Qf3sUXax+C1h+aNX6y/8hTMPm4PT6TUZF4+cI0u2iyqFUUK45zqStbarFmw5cTjc7me+nx71yWaK7Rc5FKmUdcnCtbMzBITfvECcoOnSNpdG2ftHVMh6iDKrkuIJQu0ugxJYcAjd4e14zJapyPaASsNt2QAXoT4pUtBm/Y2kH/ZkDAGoY72v+sTDRrqioalGeh5ybiWRBprwiPcoKWk0viyGHnKHcPNwW+am+SEitWLlTFElomFebEX4Zfh8ju4SwUWNBRYhxDgnAK/Sto+j4nFRYLw9A/8YeFmzNpyZcZGWbDNvcfEn3qwfCkfC4VTCfP7epg1y8YCQ27oKglcQ6FVW2va+z4N5GdwZpjgOjPzfncxNuUpVl2MXUt47WPgnvHoFlaLN04Rq4P/LBlKpxAWJLNwbuyBzxgD+yiWSy+PdAZE3xKH0DxYKcWDaV9bqCTkJM8opUMxjPDFIOsVYR4aZ6D17jFM/YwWmT/SV4ZEChUmdglz/LV4ainwxyX0AANDQhu3lz8z6arxQpTfHbZFQY5uF6YE3NxLCdRJJvV x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1631.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(6029001)(366004)(9686003)(186003)(64756008)(8676002)(66476007)(4326008)(83380400001)(66446008)(33656002)(110136005)(6506007)(53546011)(66946007)(5660300002)(76116006)(107886003)(66556008)(55016003)(26005)(8936002)(316002)(54906003)(82960400001)(122000001)(966005)(508600001)(7696005)(71200400001)(38100700002)(86362001)(2906002)(38070700005)(52536014)(145543001)(145603002)(213903007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?MB0U61Eu4vpUUXtHKeL63ugqJOmoEo6O1NQ90B67BuikXht0mUH3obk58Da7?= =?us-ascii?Q?+YdTpSLbXTp+qZbBWt2c7BibAOSm6NEUMv8vnza9T8nupZ5xc7xa49erDljK?= =?us-ascii?Q?nfu6fYN28TmS/u/j1JfZcEPqtuAtARynfd2mB5XZiO/AyZXbXPXkZSdi3LR4?= =?us-ascii?Q?cPoEBCM9tkMZOCAraSKsHiGcPaKbOGq3fDwPpTMorfuuV+yedWWr5YV8nRmo?= =?us-ascii?Q?kekNdjwFiCrzJ/92TQH0Jn0yH8w/PiM7gSLjEvzsduqgf4HOlp/b/b+l+Wyj?= =?us-ascii?Q?Y70KpoOIKupOkgBlqQ+UMJQIZvwXJDSZMD4CnRq1gGQ3XzmRsZAvvq6agg7j?= =?us-ascii?Q?Zb69MKtIBabelkxQfvIKZQAZo/D6+o+JiWyNSg2Gccjors4hg9Ih3FK3Tvhp?= =?us-ascii?Q?lO1v8+hX+QTuCiaYwBmcGMTOLLdIyboPRQ0e02Zg+Jlagv8tpOBRIWrrelpB?= =?us-ascii?Q?2Bn8poup+uGX/TQAxe4FEui3xRpSbJjZj3BkO6yOKYpmZs+vtc7VQe6Yznk2?= =?us-ascii?Q?QKYamH5kdMQ5Zbj3VorKRcXurjVkspQM9hiQfCqnBWFxLL0pwGIpZh7PSeEw?= =?us-ascii?Q?i8UBpikyKEEhzXA5FUjZdl00nRiB5bcF6AKvwdFgURIzMyuDLfnzzUlLWSBi?= =?us-ascii?Q?aTa+U20NzSzjoTLV+t9+MsH+qkaT008kxKsXTjEB3YEiZ7gXKHQyq2wBlhWY?= =?us-ascii?Q?HUOx0opKDsejkwwzUanT1BzxRDKHaIfL76Ck2J25S7p4zT28w7iaz4dX65Uw?= =?us-ascii?Q?R3AZiGVdUKsB9MnVGrkJDyhoTtQC2gkiAJkDQPGaws/TTboPdJ8+znjGloMl?= =?us-ascii?Q?++d533+I7alR32PNllHyMl3O8qtzjL49LZcU9PIMQVZTkS70VCd8+nvKqpER?= =?us-ascii?Q?4DrR4jTo1LPr9zx5hHUlP6fh9m9QLluyyhboqaSFhUv0JeNS/n5nCvcTqHSx?= =?us-ascii?Q?Jdy/A1wmgbq12PqBSLsbQKD1SJD+9lqC58E2L2xWK1eGbigbpIjhuANAM9nt?= =?us-ascii?Q?1PIjv2gkdT7MquUHrW/0XEpHyNTt9Grih719lkZFRdXh7pHK8EaBgyiDMAKX?= =?us-ascii?Q?EsMampnXPeIA84KvNUUDnRp9p6S/PctFGiDAAJahcpLQEZgorw45b5h+9Xe3?= =?us-ascii?Q?XqMt07KFmDm/IMD7ykKI4S/NJZFs7pzpegSLZOcAkCUIKDbx39Gi5h1cPGBy?= =?us-ascii?Q?5Psf2G93yexvSU+z1L+g5J8N9Etvvq35xcDz4yrp+eZeWR7tcpsQ8fQvbrBM?= =?us-ascii?Q?+ntO+ckZezrPrfDJaa01F2/aOdz1/hIEDK5pumGG2zBJTKVmHtk320M1e6s5?= =?us-ascii?Q?rSyIkda1SJhOhmJKPfjsuH5/XM303qk3Oz2TV5ru6q0QnE9nV6lcZood8F8b?= =?us-ascii?Q?Edjz7amlDdUmbXuGQQGoqt3V0MEd/g1oINJ+cXw/NxgAcYpE+qR+VxchsQtB?= =?us-ascii?Q?AuSiMqsgqehUquhqFYIHzKMk8bZm4Wq+urb3oqvrLqb1xCnjuHYFjHMkvok9?= =?us-ascii?Q?gSnoNidGji5EvnLpEiSVmnbdoO0pyn1mRUyD6WhOfVSiYeKdIQ6J5wjLu3tV?= =?us-ascii?Q?gyAUYnPyINuJys2vKw4Zrmz1SzBZEuGpvr9YjGwO26Fg6ZL5XJZesCUhYvWs?= =?us-ascii?Q?WI0itWUkbHZzSTUQXwSBAn34GDMmNhFeB7MGgXZFFCEPxI0RAWEAS+QD5y7m?= =?us-ascii?Q?oJhnq0PTuBTOoz+98j0NER+pSrj3pV86jxoSJsB0s6xbL8rFhr+DWiqmdUY4?= =?us-ascii?Q?tS1o/Xxflw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1631.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73f0101d-6adf-4d15-ee54-08da298d52fc X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2022 03:06:58.5156 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: EKW9PmQ3LFVZGlxPDOEiJM10XrNztVoJxVSu14K5G92BYifJ9Uz5gVA1E3ZEgDaWDYjOjFzS/aX+tlUP9+izDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1895 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Min, You cannot use C global variable in PEIM. Can you add a new field in _CPU_MP_DATA? > -----Original Message----- > From: Xu, Min M > Sent: Friday, April 29, 2022 11:03 AM > To: devel@edk2.groups.io > Cc: Xu, Min M ; Brijesh Singh = ; Aktas, Erdem ; > James Bottomley ; Yao, Jiewen ;= Tom Lendacky ; > Dong, Eric ; Ni, Ray > Subject: [PATCH 1/1] UefiCpuPkg: Save PcdConfidentialComputingGuestAttr i= n mCcGuestAttr >=20 > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3918 >=20 > There is an issue reported when booting multiple vCPU guests (regular > and SEV). This issues consist of EfiAcquireLock() / EfiReleaseLock() > ASSERTS and TPL level ASSERTS that occur during ExitBootServices when > the APs are being parked by RelocateApLoop(). The root cause is that > PCD accesses use locking which is not SMP safe. >=20 > To fix this issue PCD usage can be reduced to getting the > PcdConfidentialComputingGuestAttr value at init (MpInitLibInitialize) > and caching it in a STATIC variable (mCcGuestAttr). >=20 > Cc: Brijesh Singh > Cc: Erdem Aktas > Cc: James Bottomley > Cc: Jiewen Yao > Cc: Tom Lendacky > Cc: Eric Dong > Cc: Ray Ni > Signed-off-by: Min Xu > --- > UefiCpuPkg/Library/MpInitLib/MpLib.c | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) >=20 > diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/Mp= InitLib/MpLib.c > index 91c7afaeb2ad..fb9247f58427 100644 > --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c > +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c > @@ -16,6 +16,7 @@ > #include >=20 > EFI_GUID mCpuInitMpLibHobGuid =3D CPU_INIT_MP_LIB_HOB_GUID; > +UINT64 mCcGuestAttr =3D 0; >=20 > /** > The function will check if BSP Execute Disable is enabled. > @@ -1805,7 +1806,9 @@ MpInitLibInitialize ( > UINTN BackupBufferAddr; > UINTN ApIdtBase; >=20 > - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) { > + mCcGuestAttr =3D PcdGet64 (PcdConfidentialComputingGuestAttr); > + > + if (CC_GUEST_IS_TDX (mCcGuestAttr)) { > return EFI_SUCCESS; > } >=20 > @@ -2079,7 +2082,7 @@ MpInitLibGetProcessorInfo ( > CPU_INFO_IN_HOB *CpuInfoInHob; > UINTN OriginalProcessorNumber; >=20 > - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) { > + if (CC_GUEST_IS_TDX (mCcGuestAttr)) { > return TdxMpInitLibGetProcessorInfo (ProcessorNumber, ProcessorInfoB= uffer, HealthData); > } >=20 > @@ -2177,7 +2180,7 @@ SwitchBSPWorker ( > BOOLEAN OldInterruptState; > BOOLEAN OldTimerInterruptState; >=20 > - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) { > + if (CC_GUEST_IS_TDX (mCcGuestAttr)) { > return EFI_UNSUPPORTED; > } >=20 > @@ -2321,7 +2324,7 @@ EnableDisableApWorker ( > CPU_MP_DATA *CpuMpData; > UINTN CallerNumber; >=20 > - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) { > + if (CC_GUEST_IS_TDX (mCcGuestAttr)) { > return EFI_UNSUPPORTED; > } >=20 > @@ -2385,7 +2388,7 @@ MpInitLibWhoAmI ( > return EFI_INVALID_PARAMETER; > } >=20 > - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) { > + if (CC_GUEST_IS_TDX (mCcGuestAttr)) { > *ProcessorNumber =3D 0; > return EFI_SUCCESS; > } > @@ -2432,7 +2435,7 @@ MpInitLibGetNumberOfProcessors ( > return EFI_INVALID_PARAMETER; > } >=20 > - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) { > + if (CC_GUEST_IS_TDX (mCcGuestAttr)) { > return TdxMpInitLibGetNumberOfProcessors (NumberOfProcessors, Number= OfEnabledProcessors); > } >=20 > @@ -2534,7 +2537,7 @@ StartupAllCPUsWorker ( > return EFI_INVALID_PARAMETER; > } >=20 > - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) { > + if (CC_GUEST_IS_TDX (mCcGuestAttr)) { > // > // For Td guest ExcludeBsp must be FALSE. Otherwise it will return i= n above checks. > // > @@ -2692,7 +2695,7 @@ StartupThisAPWorker ( > // > // In Td guest, startup of AP is not supported in current stage. > // > - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) { > + if (CC_GUEST_IS_TDX (mCcGuestAttr)) { > return EFI_UNSUPPORTED; > } >=20 > -- > 2.29.2.windows.2