From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 665627803CC for ; Tue, 21 Nov 2023 01:56:27 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=3/erh+1DfBg3hwrKcK140WprpvYksUpl5lP+IwkXo/c=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1700531786; v=1; b=vcQr0ueD/X0uU0UX4Wfnvpt6HgGzX5uT9FkmMtiby4J/105SqRj1M/2BEMiC8vj54G+nmAZp e8hlIYgWFtdIZCEJMyXrnq0nCsFOLGnAXM3aRfH7gO7OKscVSN6/AY+w6KeevIGGJXGpm3/jhmk rnLZ8vgQwuAGTdBDODIBYwJY= X-Received: by 127.0.0.2 with SMTP id qAQlYY7687511xMfN8bOEyDA; Mon, 20 Nov 2023 17:56:26 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.25373.1700531784957902926 for ; Mon, 20 Nov 2023 17:56:25 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10900"; a="394587451" X-IronPort-AV: E=Sophos;i="6.04,215,1695711600"; d="scan'208";a="394587451" X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Nov 2023 17:56:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10900"; a="939954485" X-IronPort-AV: E=Sophos;i="6.04,215,1695711600"; d="scan'208";a="939954485" X-Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga005.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 20 Nov 2023 17:56:24 -0800 X-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.34; Mon, 20 Nov 2023 17:56:23 -0800 X-Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.34 via Frontend Transport; Mon, 20 Nov 2023 17:56:23 -0800 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Mon, 20 Nov 2023 17:56:23 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GCsQgQXBwf8TiuTRLdqskZsGnfeYhgP8VZf94QXeoc6hjvhSBgAslSL5Vyr6WbPyw7Tq5z10JkopGS3L8QCAwJ48BcSyEgaO9m3HxhFxMM36SzTG9qVplPNPRgjgjvt+aovyciVTFcv90JBXqL050RoH0xczIy1xGc+G+h0ig2ssAPPEZg3eSGoZyMzA3LJ5uc0qWsc7P3i9/+R8Rp+tv1emkceE2W0DVGJg3Nrt6UCRavdghsTSeKRvjKPNYVP+LJnIy1Ug5VqvFlrkIogBTCeaMXsKnDRrDy47V3TmFJcuYdEyJrszrwa4a7cvOv4xEyo68cAMliQeLjidGKYnqw== 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=uLVsk1mwNNJ95WicQ+BQH0VgEU+8SoT9Jk6s1Dch/xI=; b=VvmyoE8LspztgZ/YDW2M8Mhxs7+DhjcWyN7a7AddUAtVB5lzPnqtnADEgBcuBdklm1sCQ9wBQLNyvopsSa3i2M81zhElk/lHvdbBVitAUT+g7I+PfkCUbkm41DL5233wR0InJWYApXZtpFM3+nh854KBW21ejsU/hYmhl+uYeSUYd4OzcEz7oHFFlg2ug5aex8a2QkdINlP6QsQTNzIkvooD/Q6typbV1ZDVXxRijXA4LOcLTzfMPPt9Ysz1y92Y5tEr96kQpJI729bCU6C+4BSYyn004st9Te7xyOBAJvQSrNhJjM0TKPj1+FyEub2DjcWXOPOF1aXGjJMMw1izPA== 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 X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by DS0PR11MB6471.namprd11.prod.outlook.com (2603:10b6:8:c1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.27; Tue, 21 Nov 2023 01:56:20 +0000 X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858%4]) with mapi id 15.20.7002.028; Tue, 21 Nov 2023 01:56:20 +0000 From: "Ni, Ray" To: "Xie, Yuanhao" , "devel@edk2.groups.io" CC: Laszlo Ersek , "Dong, Eric" , "Kumar, Rahul R" , Gerd Hoffmann Subject: Re: [edk2-devel] [Patch V6 1/2] UefiCpuPkg/MpInitLib: Enable execute disable bit. Thread-Topic: [Patch V6 1/2] UefiCpuPkg/MpInitLib: Enable execute disable bit. Thread-Index: AQHaG224YYiS4Weh7keTneAYeLYgX7CEBLhA Date: Tue, 21 Nov 2023 01:56:19 +0000 Message-ID: References: <20231120045452.2324-1-yuanhao.xie@intel.com> <20231120045452.2324-2-yuanhao.xie@intel.com> In-Reply-To: <20231120045452.2324-2-yuanhao.xie@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN6PR11MB8244:EE_|DS0PR11MB6471:EE_ x-ms-office365-filtering-correlation-id: 6baa4041-1bfa-4f2c-471e-08dbea350e61 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: DQYIYNfAXpf57FfP7DA97IF26UxTldS+UC9eA27aR4x/3lV9QBeHuVi6wXoz8FDICSZtgrsvaLy7jP5EphHjrWkjT9kYeXROt+HAt8Uosy/wIfPnyZd2FmkdXhJjTbXBdC4fGuj6ozQaxQuMhyoJJwPL/f/d9B5frBfKrIE4o0RXwhWIZXTFKCVbBOOJnP4cP+y3WlKGGeaRXW+cLjWIi1COms+HekN709QiR5CkdZq6uWI8O4h5kgy+VMJWbVI+tiHi069XfwyKJmbLkq3MzYQ61JYVdrtxFZd3espFqKwUZ9AIzMY4+q2zkJiEwN1b+yi2ebnz+aXOg2qL8CKm6tcneeGKoxgK9LWf1e3wU6ybxUoU/M/5ESJqrngKwsjtbEhQa9J/jjMsyZcBY2Exf+arwcmwYN+QkFnhSb0QPREgFbjO7kCQWTUfQR2wufeSNM2yMOrLM54Cy3gKS8eyvkx8UZuHvcVkifgdszTlbHcPTrwEmLygvJVvD0W34I90VB8zeeJsokrAimnz1kp2/BjMeICefLil2IYFY6fZRJM4kN1HWbF+4In5TL3f60jteg7iozM2acarVwOOH6DlhAwpwYLLhCKwgNnjTETrZpYsErxRMWbwR97pienFRhtIlIUQ1ToF2XKZ7Wbx+A5wWw== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?2MMLEje5/tvlJwgSTR3Y+qcTrJnT32v5ijKEC1lTBOhT2k8wlyM543Mvk/sb?= =?us-ascii?Q?rQwpa8HJ4Ms2lE00n0ES+wr8YHODzs7AXdzPEjL/6uLLpyiCKlk2D0Vwmj+z?= =?us-ascii?Q?avyh5bNZxFHrrigGVzYROLIIH4hnte20QGZ3Wv8/vB0A2y7wCuPcdcFoqDg3?= =?us-ascii?Q?5LzQDFzCsft36dfyK8m1HKzT+1cAS0GdGdvNc3uBz5i/pj0ZsaTcylEskzB5?= =?us-ascii?Q?s6wnrmRayin5Qapi2ESRXcvGHcz6aKyuo4Or8TY/T1laeKxcVOUY6oiUh2i9?= =?us-ascii?Q?VCEaxlQNu+5kDUrdMVyQkyydjwsSVlBTytl61imVDKOi1PStEETsqXCHZUQH?= =?us-ascii?Q?1xNpuGscmzhlC4rxU3UCk4/jHccI098G8WpgGILQ/aPjIgy2UiU8Uc4TjSgC?= =?us-ascii?Q?vlDVQXd/QKoZiYmG2Yb4Uaiqg6BsV2s1vSOEUeTWADn0a7Ej5iImvQn20JFG?= =?us-ascii?Q?tTuoRgPqaJdCIwe2Mc99C5lruS6ERKOxRmfsR/qzbo7BKREjXWP+Uc2x7JlZ?= =?us-ascii?Q?YnGWTRhLjKZ4rirZuO9ZSeIkdZ9s5PZdWAxnkQVQ12Os5WFiodhgllKORuHi?= =?us-ascii?Q?iqvjFTRDT7/zp5Zxo0BrQW7DpIOP4jUjRToPIPHn0Rj+kDAqZ/PeG7NkIeUm?= =?us-ascii?Q?sIVRojgGvdnaxRk4zRDtvzas6yf/f/Dh2OQtNA/ot9klcM1kEU/vSmuUPvk1?= =?us-ascii?Q?ufwMAzTP4Hlhs81fFuaT2Hhs1ecYKNvkzD6wnSmcASyknXruOumREkS0In31?= =?us-ascii?Q?0rb/HNfi7GF1REpylTRgzQiv+SV/VUfPGd8swVMI94IfMoY3ECOe4l6TP3sH?= =?us-ascii?Q?dPxUHAFI/kZLrf1NCY08xGvKnr4EdQAIPpuYotha9zxp17g+FZoNAngTIv2b?= =?us-ascii?Q?ISUiZYD1A/ubevNEkroYKJMGzcgzaYtFO0/KtN9BvGsHzy+Srg5zRQ7HnL/J?= =?us-ascii?Q?ayKNqCdxb57rfx2lISPtj23U4UI2zM6+arwtq7SxGSfAMk2Uzr4XSKgjaUG2?= =?us-ascii?Q?5wBAXUAJ9Ufqsm8rANOwjmWzt8gQaHzuInqjC/Ttfu3OGnxZwhnzh8uzI2h9?= =?us-ascii?Q?fVr5uGM22WyEIKdAclFwZCfun5BPxhmStFgtDqIZRHq+IvsjiAQVFLhMIZPA?= =?us-ascii?Q?AmI/dX7JDppqplByAGQwa3lQmzywA4rq/a+TQmMmK9cfTVFUk/DlXQql/0/F?= =?us-ascii?Q?wZWAwouernRGyErOl/LVWyf1c+BNvUHz+2ZQ3LEEm52Do+ebqUZLXial8WzZ?= =?us-ascii?Q?r38SDCS9qULVF4MqewVvreKfRJOLL1lyFL8FZrgxaM4fwxbS0YZyccZEoWs8?= =?us-ascii?Q?dU53vE2E3Xckw3xygoOgocrlk9nqYpFvNpGhTm2h+bqCihHkvfEZzSq+kBaV?= =?us-ascii?Q?8uxh0pDcQkMoK/q/wG9VQC0lL0mIBlsDKtn/tqXbFc0gFfOrUR/V7TAJXNk5?= =?us-ascii?Q?c0mu8Kd3S7qr5+qyGgcHz50973A4TwT4EWrfG+IPs/d5nZ7GkzVjoPjPgD+o?= =?us-ascii?Q?AEoz+Zm5xBIkAb28mnXxeySx0++yts5l56VzlZtZ2p8nEUdNGJpIiDObmuSo?= =?us-ascii?Q?yrWcks0hn7VSiHeUog8=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6baa4041-1bfa-4f2c-471e-08dbea350e61 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2023 01:56:19.8096 (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: ENfRic9NFdKQydxgLFTemKMcFW+I6A5ZoKTpVbuFlSyNpFvXqA2FzzeiKrw5sj9mVGmDUse36AO8TfkQ8Stazg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6471 X-OriginatorOrg: 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,ray.ni@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: Gcc5S8CQlzr370mLk334gYLxx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=vcQr0ueD; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Reviewed-by: Ray Ni Thanks, Ray > -----Original Message----- > From: Xie, Yuanhao > Sent: Monday, November 20, 2023 12:55 PM > To: devel@edk2.groups.io > Cc: Xie, Yuanhao ; Laszlo Ersek > ; Dong, Eric ; Ni, Ray > ; Kumar, Rahul R ; Gerd > Hoffmann > Subject: [Patch V6 1/2] UefiCpuPkg/MpInitLib: Enable execute disable bit. >=20 > From: Yuanhao Xie >=20 > This patch synchronizes the No-Execute bit in the IA32_EFER > register for the APs before the RestoreVolatileRegisters operation. >=20 > The commit 964a4f0, titled "Eliminate the second INIT-SIPI-SIPI > sequence," replaces the second INIT-SIPI-SIPI sequence with the BSP > calling the SwitchApContext function to initiate a specialized start-up > signal, waking up APs in the DXE instead of using INIT-SIPI-SIPI. >=20 > Due to this change, the logic for "Enable execute disable bit" in > MpFuncs.nasm is no longer executed. However, to ensure the proper setup > of the page table, it is necessary to synchronize the IA32_EFER.NXE for > APs before executing RestoreVolatileRegisters . >=20 > Based on SDM: > If IA32_EFER.NXE is set to 1, it signifies execute-disable, meaning > instruction fetches are not allowed from the 4-KByte page controlled by > this entry. Conversely, if it is set to 0, it is reserved. >=20 > Signed-off-by: Yuanhao Xie > Reviewed-by: Laszlo Ersek > Cc: Laszlo Ersek lersek@redhat.com > Cc: Eric Dong > Cc: Ray Ni > Cc: Rahul Kumar > Cc: Gerd Hoffmann > --- > UefiCpuPkg/Library/MpInitLib/MpLib.c | 14 +++++++++++--- > UefiCpuPkg/Library/MpInitLib/MpLib.h | 1 + > 2 files changed, 12 insertions(+), 3 deletions(-) >=20 > diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c > b/UefiCpuPkg/Library/MpInitLib/MpLib.c > index 9a6ec5db5c..f29e66a14f 100644 > --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c > +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c > @@ -910,9 +910,16 @@ DxeApEntryPoint ( > CPU_MP_DATA *CpuMpData > ) > { > - UINTN ProcessorNumber; > + UINTN ProcessorNumber; > + MSR_IA32_EFER_REGISTER EferMsr; >=20 > GetProcessorNumber (CpuMpData, &ProcessorNumber); > + if (CpuMpData->EnableExecuteDisableForSwitchContext) { > + EferMsr.Uint64 =3D AsmReadMsr64 (MSR_IA32_EFER); > + EferMsr.Bits.NXE =3D 1; > + AsmWriteMsr64 (MSR_IA32_EFER, EferMsr.Uint64); > + } > + > RestoreVolatileRegisters (&CpuMpData->CpuData[0].VolatileRegisters, > FALSE); > InterlockedIncrement ((UINT32 *)&CpuMpData->FinishedCount); > PlaceAPInMwaitLoopOrRunLoop ( > @@ -2188,8 +2195,9 @@ MpInitLibInitialize ( > if (MpHandOff->WaitLoopExecutionMode =3D=3D sizeof (VOID *)) { > ASSERT (CpuMpData->ApLoopMode !=3D ApInHltLoop); >=20 > - CpuMpData->FinishedCount =3D 0; > - CpuMpData->InitFlag =3D ApInitDone; > + CpuMpData->FinishedCount =3D 0; > + CpuMpData->InitFlag =3D > ApInitDone; > + CpuMpData->EnableExecuteDisableForSwitchContext =3D > IsBspExecuteDisableEnabled (); > SaveCpuMpData (CpuMpData); > // > // In scenarios where both the PEI and DXE phases run in the same > diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.h > b/UefiCpuPkg/Library/MpInitLib/MpLib.h > index 763db4963d..af296f6ac0 100644 > --- a/UefiCpuPkg/Library/MpInitLib/MpLib.h > +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.h > @@ -270,6 +270,7 @@ struct _CPU_MP_DATA { > UINT64 TotalTime; > EFI_EVENT WaitEvent; > UINTN **FailedCpuList; > + BOOLEAN > EnableExecuteDisableForSwitchContext; >=20 > AP_INIT_STATE InitFlag; > BOOLEAN SwitchBspFlag; > -- > 2.39.1.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 (#111495): https://edk2.groups.io/g/devel/message/111495 Mute This Topic: https://groups.io/mt/102702384/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/19134562= 12/xyzzy [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-