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.web10.2829.1676855197483652652 for ; Sun, 19 Feb 2023 17:06:37 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=TlGFgimR; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: jiaxin.wu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676855197; x=1708391197; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=JOLBPfWbvzF5QHYQzFXQmuUKdunN+ar+e4Smh/A2V0g=; b=TlGFgimRe3uIaV08yCxzt87NxLaUIhnPyz81aogrqE5O2iejfYo8+7GI siSRH+tLrSC/J4IKFeAgMHoHQbR8Xd5eybGDbUUflDbkirvfNMPQgsZGC +hmSwIgBdkV8L9TsqSAXt014axUXdS4XFrRge3m0EvQbIhSz+OI2I3FXV OOjsi0Ok/3VfQO40Sw2MVQPa+VoHJXqbLjEGN290iuFesKV6YJH0dm6B1 zsQ5G3LDcENoXk+gbnBxShPnff97xXtailvtvc9oEK+O2hdE2CwhvD5WR A5g9ZXQqBL8Zf/Of0dv+1jwHjJJRL9jx4Qot2+d0avvLdyiB9UsgRwffy A==; X-IronPort-AV: E=McAfee;i="6500,9779,10626"; a="334502056" X-IronPort-AV: E=Sophos;i="5.97,311,1669104000"; d="scan'208";a="334502056" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Feb 2023 17:06:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10626"; a="1000102566" X-IronPort-AV: E=Sophos;i="5.97,311,1669104000"; d="scan'208";a="1000102566" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga005.fm.intel.com with ESMTP; 19 Feb 2023 17:06:36 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sun, 19 Feb 2023 17:06:35 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Sun, 19 Feb 2023 17:06:35 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Sun, 19 Feb 2023 17:06:35 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kHT6UfCWPxtYbKuOUPXDHdM+5vvfJzZ0FK5YZIZwfA7cV1kxbyTFPgagyAYTu9p99CYOvqNnaemzj7O0DgDinvA5RqMfVt0EWqSgjv+7GlFxIUP3pXFrNOkhwJEXbeK/ezmWoKa6zJcE0lulgyl2Mnyq4n60aCMgpd1TSqFnmC+5APtd2fg5+tIjLZVnmHubI+Tohau3ORRvNwmz0Ofw8aQZQfqS9UJRcsP22AjshbFowEpt0l/NhIdiVjuBtEM1vOiRdSie0s/pVkd2v/lfH4sCaArjaSh4vvhOUxPm1vEGvyJ1gWw1W9ZTUjj/q0L6364Hd+qGTMHkW2DxP99NVg== 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=7KUNySuTl30Y7bxQ+HSIyM7Tossy7ca1hB7BREqYCeY=; b=DAF2801a1dyS2dJF2cdi/4owG15RBxgATqpYAjmM0ezHYsYMkrFG4HTi4dO0cumrZrO4GsBgi1gBOcSCZEwZaceIdi5bfs9E3iOGjJR4D2P931NVcYunZqB2KZfh2K5p1JyuKLw9ZaRoiJYbPz/Fk+Ct5nx00mkP5qyWWGX6n8AnMRXZNP4osPYvEObojxP/2SOu3wcEQ+LiNRZs8YmkgsZ3cFhdUkPnNUKGeMXr1dhlE+WV1f+UjsI15GZeWO6aOESePVCl9eq5DP9R2kQluSed7W5hm17nwKwjeBNJdpAOYeViOweJ/TsNF7NO0u5qrib4Bbw88x95L8QfCYNARQ== 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 MN0PR11MB6158.namprd11.prod.outlook.com (2603:10b6:208:3ca::18) by DS0PR11MB6493.namprd11.prod.outlook.com (2603:10b6:8:c3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.19; Mon, 20 Feb 2023 01:06:34 +0000 Received: from MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::e5d9:d16e:172b:aa01]) by MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::e5d9:d16e:172b:aa01%3]) with mapi id 15.20.6111.018; Mon, 20 Feb 2023 01:06:34 +0000 From: "Wu, Jiaxin" To: "devel@edk2.groups.io" , "Wu, Jiaxin" CC: "Dong, Eric" , "Ni, Ray" , "Zeng, Star" , Laszlo Ersek , Gerd Hoffmann , "Kumar, Rahul R" Subject: Re: [edk2-devel] [PATCH v9 0/6] Simplify SMM Relocation Process Thread-Topic: [edk2-devel] [PATCH v9 0/6] Simplify SMM Relocation Process Thread-Index: AQHZQc5EcXLoCsJN4UeWtoW8JeFW+q7XCm8A Date: Mon, 20 Feb 2023 01:06:34 +0000 Message-ID: References: <17443983D6ED8995.20300@groups.io> In-Reply-To: <17443983D6ED8995.20300@groups.io> Accept-Language: zh-CN, 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-traffictypediagnostic: MN0PR11MB6158:EE_|DS0PR11MB6493:EE_ x-ms-office365-filtering-correlation-id: 97378be2-ec65-400e-16d5-08db12deb5ba x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7JOBIdp7/bJcSaRnRyoAL2k5M+St4D0amv/bbrLxMOW375xt2aLZyc71YHu2bCWtu6qKZe/b+igfFrLkOotmkmGC9+OVBtfQkAkJ95KO4Fjy9Q2hjEsQGdKbKkZRejLtbUaOadzKmGQrWju47rJH8DjG4r+hqIbtMKCmkYCX2MkvwheMCVTWHdVeiqSqyMOap2RNhxPgdG+evjtksfGq+fFK4AXfM/+rJjXcNLqryckz/RvquacsE49gHujVR6Ne6qpfo3215saWNG62iZB9cqh5u9JWVnxlQP2dVd8Hpwb1dTTbZrxWI6Owr2fCyn83sLuT1WPqdYzwbvC/dLRuiDDanp3lNyT7P/tgUzruYcTt3C5MYDqUB2i8Gc66QG1YMAgnYD3d8YMJTAsCQWoZrOiXnN/IUifv3uLd9yiz6fk/JoS1GPliQ7ZmxIbxjQZPr4huATqR8UPcXG4z9a+/gEcmzO3jTYR50yyVWgEqDlJm/BYbNgv7tBruM6sX9vTd8NAqJprIybwroM0LWbtzWvVSejOzhWfLuRrlNNA0ydl4z80d/qF6JWCl7zTd8wAhcZcorJE5DChkGHmU8dyCHX8mtFLHAVmCE816irJqoeNK0khMyJ01ZM8qte4+HAPVmXash0U3YKP2vqTSLc5i0Fxo59fcmTsfW/xT1gTuJet44VB/YSdy5ZRfQVCNyVGCqGxQ3Pu9HqaXy4ULw7rGXhx1rY6bs80bK8UNH/NMxUI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN0PR11MB6158.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(376002)(136003)(366004)(39860400002)(346002)(451199018)(26005)(66899018)(186003)(53546011)(966005)(66476007)(55016003)(4326008)(64756008)(66446008)(8676002)(5660300002)(83380400001)(52536014)(66946007)(76116006)(8936002)(66556008)(7696005)(9686003)(6506007)(107886003)(71200400001)(478600001)(110136005)(54906003)(41300700001)(19627235002)(316002)(38100700002)(82960400001)(86362001)(122000001)(38070700005)(2906002)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?tDCEqSgObRFhbgAbeSsEDXPcqeYrE21vorgLzaqGieuIbrVthG/WnOkbYvA+?= =?us-ascii?Q?qiPN4hjY3VmIb65X5tMX+tfVVMbACp25yrZUnVDuNeFPMAyYAH3dBa1RbbqK?= =?us-ascii?Q?awJszgiOXQzJqY70k+O13HINS6vXXqat92mU7lQ2kUsHCoDEVi86Wdpx1HSl?= =?us-ascii?Q?fTkpDA35Pc6dXuHH4P91MuVOuE634sGa1qdUdDLz4vr10FPFd132DumdHuLH?= =?us-ascii?Q?DGMnTksXi7wHZi/nW0BECyPk2Tlqd/FBwyhaBpFsCtvsPmE+xO3EFWdbQpcT?= =?us-ascii?Q?mrQ4PavC8eQmbRx00YhGdI9qZuJqwb2ZSwxfatFZuMD4vTOvxmrPcO8TeCak?= =?us-ascii?Q?slFN+Te1e9BTlFPUbtAUBWyJ17CfLV3EJIh86mMJ1jFCduNegiKmmhNHX0Gs?= =?us-ascii?Q?UBjqP0RwLX3vCg8PzmzzY1HPlAipyTMIGhnjukGSLEEzUVSByKU9c79eePLB?= =?us-ascii?Q?WpegZ2LQ7SrKg3k8dHPBiMyCmbsR2NJ3cbZbXYaWOwCCIfeEmQzGOWwOsgSH?= =?us-ascii?Q?6rPiYb41ABOTvFWRsHDjsHvJYbk/0lgetnGrRTmWyOVeedAUZOS/Ayr1nA7y?= =?us-ascii?Q?X9K4g0P2tZnVbLJ9Rzdtf3JXVXyMwTvOKjyPq8LXuc+HnUYSfcWFROo5fkhw?= =?us-ascii?Q?yaqxbGVD2Oa1D0oVnHDhHOJB8ztCVbI4/8JvBKTSObQLI+907p/jezYHeK5s?= =?us-ascii?Q?HIPIL4WvGFJGMQw5283fYVx78M+0FSJFRILVb/pUal9yH7+aTeWBPsdJJxtM?= =?us-ascii?Q?EMt/XsksohrZrxEuhrf5pn3q4Gv+ZpyiqRvohNI1nN8OQq17jT8sxuZ/ifJC?= =?us-ascii?Q?2ZEaA6DPwH5Cj/LYxCLSCPvunT1fA5glflQwJHTZV42tmDm+YjDrsOIr2RmZ?= =?us-ascii?Q?bIYckBR3qz20bxtq3Sa/Rw0QMWuiwGz+7o1+kIIqaZQyXgMahbHXKu+pjekp?= =?us-ascii?Q?yzuA3nO6bs3lsk8pmnQlpaWbIE3aWZHyo7SlmqYfzPqRAfT4Ce9X2Egypbq5?= =?us-ascii?Q?AoOTaGO73rXHuhFkvAwuTKJR8FHpCNEO77dlKxR7y7/As2UYBXDnJvrnWj4l?= =?us-ascii?Q?dQWsi4X6JH/Gby0tYXdMWzAq+ZhR5kKFwsGb1O/Xx5qUe9KN4hxpgZt4jdkB?= =?us-ascii?Q?90n1KNInkKjNcpFVx4+76UYzsnPuVDHnhcX/Svd3Y0k8EL+GSk+1TwwilIqD?= =?us-ascii?Q?msRvht+zc3C4gK/To9UQUlCtF61MYhUlI8DTstxzDFlLIhNgExQ9NYoXPT2R?= =?us-ascii?Q?olzS+lHpLj48kJt1JZFq1v9QG1CNVEZQ+3v2VYfmOjYyXw5l13dI9Pr7wQY7?= =?us-ascii?Q?FmEUh6ufDGNawptgNPon15bdHikagcO65bNrURsUxAYg2VizJbCClIPGgxJL?= =?us-ascii?Q?/WBYeyxza/Fu80D1I+QnxaXamqNQnh77UO4iYaz245CKa8qiNIsA0fNllhqe?= =?us-ascii?Q?FkEaPiVvz7rLv/NwLGzgAWDbv9yygHGt8qbM16aHDV+sAo+m9w36+eY0euIW?= =?us-ascii?Q?3EG0mBFAAAsZVHl2vHTHWOg94U17OoEsj9+q9tLtvwdbU1+trzlC+y2DAWPg?= =?us-ascii?Q?PrV/HJpHi6D5kWpbmRX/NU5dSsVpJ+5IRqTIGlBO?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN0PR11MB6158.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 97378be2-ec65-400e-16d5-08db12deb5ba X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2023 01:06:34.3343 (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: K5wh2aBoKWE/WwQbCWbRqW6ZQB6NVkklmWIhbdEyOGNhI7fiuUX1et/tlnUiWmZP8Iv0Uw7bPvzLVc0PEwaC3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6493 Return-Path: jiaxin.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Any more comments to patch series? If no objection, Ray, please help merge = the patches. Thanks, Jiaxin > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Wu, Jiaxin > Sent: Thursday, February 16, 2023 2:16 PM > To: devel@edk2.groups.io > Cc: Dong, Eric ; Ni, Ray ; Zeng, S= tar > ; Laszlo Ersek ; Gerd Hoffmann > ; Kumar, Rahul R > Subject: [edk2-devel] [PATCH v9 0/6] Simplify SMM Relocation Process >=20 > Existing SMBASE Relocation is in the PiSmmCpuDxeSmm driver, which > will relocate the SMBASE of each processor by setting the SMBASE > field in the saved state map (at offset 7EF8h) to a new value. > The RSM instruction reloads the internal SMBASE register with the > value in SMBASE field when each time it exits SMM. All subsequent > SMI requests will use the new SMBASE to find the starting address > for the SMI handler (at SMBASE + 8000h). >=20 > Due to the default SMBASE for all x86 processors is 0x30000, the > APs' 1st SMI for rebase has to be executed one by one to avoid > the processors over-writing each other's SMM Save State Area (see > existing SmmRelocateBases() function), which means the next AP has > to wait for the previous AP to finish its 1st SMI, then it can call > into its 1st SMI for rebase via Smi Ipi command, thus leading the > existing SMBASE Relocation has to be running in series. Besides, it > needs very complex code to handle the AP exit semaphore > (mRebased[Index]), which will hook return address of SMM Save State > so that semaphore code can be executed immediately after AP exits > SMM for SMBASE relocation (see existing SemaphoreHook() function). >=20 > This series is to add the new SMM Base HOB for any PEI module to do > the SmBase relocation ahead of PiSmmCpuDxeSmm driver and store the > relocated SmBase address in array for each Processors. When the > SMBASE relocation happens in a PEI module, the PEI module shall > produce the SMM_BASE_HOB in HOB database which tells the > PiSmmCpuDxeSmm driver (runs at a later phase) about the new SMBASE > for each CPU thread. PiSmmCpuDxeSmm driver installs the SMI handler > at the SMM_BASE_HOB.SmBase[Index]+0x8000 for processor Index. When > the HOB doesn't exist, PiSmmCpuDxeSmm driver shall relocate and > program the new SMBASE itself (keep existing SMBASE Relocation way). >=20 > With SMM Base Hob support, PiSmmCpuDxeSmm does not need the RSM > instruction to do the SMBASE Relocation. SMBASE Register for each > processors have already been programmed and all SMBASE address have > recorded in SMM Base Hob. So the same default SMBASE Address > (0x30000) will not be used, thus the processors over-writing each > other's SMM Save State Area will not happen in PiSmmCpuDxeSmm driver. > This way makes the first SMI init can be executed in parallel and save > boot time on multi-core system. Besides, Semaphore Hook code logic > is also not required, which will greatly simplify the SMBASE > Relocation flow. >=20 > Note: > This is the new way that firmware can program the SMBASE > independently of the RSM instruction. The PEI code performing > this logic will not be open sourced, similarly to other things > that are kept binary-only in the FSP. Due to the register > difference in different vender, and it has not been documented > in the Intel SDM yet, we need a new binary-only interface for > SMM Base HOB. >=20 > Cc: Eric Dong > Cc: Ray Ni > Cc: Zeng Star > Cc: Laszlo Ersek > Cc: Gerd Hoffmann > Cc: Rahul Kumar > Signed-off-by: Jiaxin Wu >=20 > Jiaxin Wu (6): > UefiCpuPkg/PiSmmCpuDxeSmm: Fix invalid InitializeMpSyncData call > UefiCpuPkg/PiSmmCpuDxeSmm: Replace mIsBsp by mBspApicId check > UefiCpuPkg/SmmBaseHob.h: Add SMM Base HOB Data > UefiCpuPkg/PiSmmCpuDxeSmm: Consume SMM Base Hob for SmBase info > UefiCpuPkg/SmmCpuFeaturesLib: Skip SMBASE configuration > OvmfPkg/SmmCpuFeaturesLib: Check SmBase relocation supported or not >=20 > .../Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c | 10 +- > .../SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf | 6 +- > UefiCpuPkg/Include/Guid/SmmBaseHob.h | 75 ++++++++ > .../Library/SmmCpuFeaturesLib/CpuFeaturesLib.h | 2 + > .../SmmCpuFeaturesLib/IntelSmmCpuFeaturesLib.c | 25 ++- > .../SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf | 6 +- > .../SmmCpuFeaturesLib/SmmCpuFeaturesLibStm.inf | 3 +- > UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmStm.c | 3 +- > .../StandaloneMmCpuFeaturesLib.inf | 6 +- > UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c | 31 +++- > UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 25 ++- > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c | 193 > ++++++++++++++++----- > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h | 26 ++- > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf | 3 +- > UefiCpuPkg/UefiCpuPkg.dec | 5 +- > 15 files changed, 356 insertions(+), 63 deletions(-) > create mode 100644 UefiCpuPkg/Include/Guid/SmmBaseHob.h >=20 > -- > 2.16.2.windows.1 >=20 >=20 >=20 >=20 >=20