From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web10.4567.1685676866428005543 for ; Thu, 01 Jun 2023 20:34:26 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=NjzfG3b7; spf=pass (domain: intel.com, ip: 134.134.136.20, 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=1685676866; x=1717212866; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=R7UilPtuS7pQIf/i/V1TuQw+7ZBr5PzAuSGz5cCJPy8=; b=NjzfG3b758us5AuIxjy6vosh1B0sqWXnNlf+sbRdcDHklAiJlfktvROL 9RNCI++K76rrCdmq1PyzmlqeCMDk9wyG2kBlZOC8m8agNYHDpFSUd6ziI A6aDKjzvHW88St/9sX+2A/bAYbTpD8PhjlnKNw4B7eZ8EiVd30E2XuHOJ Qmj2pPrT22abrfgbVUJ0+jMyuVlRFXHvYcuHnRb+kencg68b1LAdcEPtP C5RJf8cNxmlAYrt5gWZtUuG25i1MHnxusU84bQVE1uYPjABbbNbQloGf9 PIm3tQEO0Snoz5RwS6caCp7MWkhSEj9+8KVt/T6Ie3IN4XkqsuO6vNs8a w==; X-IronPort-AV: E=McAfee;i="6600,9927,10728"; a="345330567" X-IronPort-AV: E=Sophos;i="6.00,211,1681196400"; d="scan'208";a="345330567" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jun 2023 20:34:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10728"; a="772710915" X-IronPort-AV: E=Sophos;i="6.00,211,1681196400"; d="scan'208";a="772710915" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga008.fm.intel.com with ESMTP; 01 Jun 2023 20:34:25 -0700 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.23; Thu, 1 Jun 2023 20:34:25 -0700 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.23 via Frontend Transport; Thu, 1 Jun 2023 20:34:25 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.175) 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.23; Thu, 1 Jun 2023 20:34:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VLG6rKQb0elq1AncFSwHp9DQaxUj/avlzpxNJoABI53YOjaEF4uCJp8/74/qUeNv8rAQn0irsal2IEhqdOFvSdSgWYoaBjcHGHrS84nwooRPw1iM6qjMN2d5z260J20TM6yME5V2RObdImg5hCNbNcaNaroI3hQbL1as3jjyaeaLU2bjInhhLYzSfSllXw1o8raKv3jNIJCzCbvsOLoJMJ02Lry3iB0jas9QtPHzFfgspdligbHPRnArXnIceJCqZnTe373Z+VpfXEZABS32wudwB694Bs+fF2EqB+Fsxz40rOMYMo7Aml5TC0aiTEUVV6zWLY2Gut9jG0DqZaQN9A== 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=dMRQPjMrqAt4kRcqQ2EGrz1bBHGJFMfykq/UcLzv7js=; b=LrgpbSA4B5P5NeL2BntVL8OGv/3KeiG4bUDorg3G/VEo3rw8B4wbWMhkq5xFyVTHkMU6uJHOwKSkq9Mg5biEaC7pNav8NLelGPiMK9SQpGqokxhxgnlTtOx8ZMqZDLbGv7kMPvB+ZCV85gKA99HV6IwGBYJ/V0AzueWMT5PTwHwzir1fwHxDaEmyGoUFOC3Q7MYG9mPC1N00QuVqtPSWBsEFM2Yct51gMVf2w1a4ruMOLMwdAEDeoymVn3lr4VEQptvacSQCWPfoUHlSu1j1kDHvTWXFTsW1k5IiMQgxr0Wy0g17wc9MmOc9FnpVYRFujR5SO4kkeHdu6cL+CD6cmg== 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 MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by BL3PR11MB5684.namprd11.prod.outlook.com (2603:10b6:208:33f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.24; Fri, 2 Jun 2023 03:34:23 +0000 Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d%3]) with mapi id 15.20.6455.020; Fri, 2 Jun 2023 03:34:23 +0000 From: "Ni, Ray" To: "Tan, Dun" , "devel@edk2.groups.io" CC: "Dong, Eric" , "Kumar, Rahul R" , Gerd Hoffmann Subject: Re: [Patch V4 13/15] UefiCpuPkg: Sort mProtectionMemRange when ReadyToLock Thread-Topic: [Patch V4 13/15] UefiCpuPkg: Sort mProtectionMemRange when ReadyToLock Thread-Index: AQHZh91oK48vLym8c0WlTU3pXh96hK929nOQ Date: Fri, 2 Jun 2023 03:34:23 +0000 Message-ID: References: <20230516095932.1525-1-dun.tan@intel.com> <20230516095932.1525-14-dun.tan@intel.com> In-Reply-To: <20230516095932.1525-14-dun.tan@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-traffictypediagnostic: MN6PR11MB8244:EE_|BL3PR11MB5684:EE_ x-ms-office365-filtering-correlation-id: 88dc6248-5a63-4297-9cf2-08db631a423c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: q7j3BIVuMFk4BppAZbiuDNQqQ4lIkHsVoSnJtjqezwKfUpolrhkBd32dbWn9igN7dZrjRQgNBCpVr3Z/Eci7iXBvPTIj1GkcfZT/jlUQ9Q3Gbv117TuuK/LDQfQzLZVWGDX5HhGzO7cut1lnE0+YEfl6tdy8bY8dQWFu811PCRgkiLEI1gYjVJCFO3hdteQm85z+9LxOGUJ34CgxBt4QPqSvis30YhfbKh+90sD9fLmVpxPVfeq112OVptoFlFXyMOr7p4ZsrYLxtwsjk8VZLXchkuO4Wr87vVRoK9E6cVNbW1DElXu8wLe4V4n9f6aeKlCSbrImXOrPOWdVV4iHfO46FOmxqp9Bstpfx+E9Wdgnf4mwqNTKNdM07sQLUT0psM+un+ajjuKYb5Ty+BlXmp3jwcmr270oHtG7qrEPX/tyZNhzanF4mjML2sbV8HiBeY2Bvh5+ZlR3Nok8BKxNY12mfdjLboLlFzEoX0mrXLD1L2yAZOZEORbIZlYcg0aLA18NDGfmG55VkucyYNnWEHtMX5eC6U+UilxLZBQ8Zk7a9PVAWNWrEHIPcNfq2Vs73bOo+Bhso9UzQE47UhGkKMsxO+GOy96u9ujuhZmHXMDbjm/TavUPidSELF0HtYprMxbWbwMv5sVsajhwjE9nZg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN6PR11MB8244.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(6029001)(136003)(396003)(366004)(39860400002)(376002)(346002)(451199021)(82960400001)(122000001)(38100700002)(110136005)(54906003)(86362001)(66556008)(64756008)(66946007)(76116006)(66446008)(66476007)(4326008)(33656002)(38070700005)(55016003)(478600001)(7696005)(71200400001)(186003)(9686003)(53546011)(26005)(6506007)(316002)(52536014)(8676002)(5660300002)(8936002)(2906002)(41300700001)(83380400001)(145543001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?TkxcbbyKBY2ChBQbWG2cecd3SK8eSHvu9tkGThGaO4xrGmdy36p9ufWRu3AA?= =?us-ascii?Q?p+p4CJrR6mlpqQ9/kODwokbp6DxmiqhLUOGIQcdmrrOukdruaoevvFyvrh9a?= =?us-ascii?Q?6q/Qu/7MAjQaxqiQI7nOGWGvefih2FoBt8bX1x+pnYZpsLgF7/PDO2jJD2Hq?= =?us-ascii?Q?McHSywBgOPZYNj8uH3fatBtvNfbMKE9Yqf6aZr4oufA9/ke1ppMFH1LM7XfR?= =?us-ascii?Q?0Cps79pdfDJvSXOHIYDK0PZyAI70VQDRdA/GGmZGeWjRx0HEU0gzzojv/piL?= =?us-ascii?Q?4n1wFttOTGVIOSouPGHfX14dpXUXXK3x0jnrV/H+R+LmZ6B8V+0FkM4VablH?= =?us-ascii?Q?+R7eNIIGhnZdMhEcc+eHhHWQjuVDAgu5Lby6ZXco/uSNs62PGwJVeYotuh2S?= =?us-ascii?Q?7uIRnbT4NoPe0Fqnj8v1qNS9D/pnauQ0Gt7YTLpPCJ3qIrkFzXclArHLeMA4?= =?us-ascii?Q?H9SEnXntrVlOEt9Rj26PDi/u3VY9oH65Jt1JQIiTaKHlReyB/vU7SuPtQOGn?= =?us-ascii?Q?Veaswmhd639a8DwsbHrg6qVkYJzwljJ2YKbQmTsdtEsbPo2C8dDjQ3Z1SpHB?= =?us-ascii?Q?hHa3CxthmAY1l/+9WFieOJBZr30IxyuxLfWC7hU1JTjhEiRGw6Q3a2sqLp0c?= =?us-ascii?Q?PaUxuP3/TJwcN7lLwp1/wbQLMvS4kuvXUybnaGjyqz+AwejQKh7iJ49/IspN?= =?us-ascii?Q?XK56Kp+QnUCNXyUZ0vbDarq/hCj8gqk6vWT3a4UCqgz48GQJhWfkouAk0l04?= =?us-ascii?Q?53wvuJ9vmrap5COzeEHWzaHaD6Noc+Gpm79FovPr84r/i1Y4i6ABUW8xFRf5?= =?us-ascii?Q?mHBqZcTS+GgNfIfB4LkTRbTSpfjof8yXP8LY4tl4d0EL3pAP19tYB11M949e?= =?us-ascii?Q?TxrkQ9Lm1O7c9qTAGhqtlrf9CyX2xowfn4BA4iE0wYx/6dJrmVUjkXaB1pSs?= =?us-ascii?Q?KB7UxmS8GicfSlfZOiHxy4yalq6gA2dE35Px+hn9Dlf5/7KAtlFSlbgzeEbl?= =?us-ascii?Q?4jTOGBkzXM8M8NchZ6hNtHYjHudhXs56h79k0GVSVkyS3zz/dy8/bEwc+5sB?= =?us-ascii?Q?aXxpjdNkRa7Fpg2qVsm+iQo1rUhtzuILkufa2OwXnTl6tjz7sPVCCN0NqhMq?= =?us-ascii?Q?SzQAxR7dEkbcn/jVIN0LBfj973ZOUeZ8KUpW4WeU9tdHgi+1LDpXsmA32Ki+?= =?us-ascii?Q?bgkV8D9/ILnpvIgxSYk917NrG7pYZnrnEZig5GJvYkfVkHrbXtLTa0sxyyqn?= =?us-ascii?Q?UfCaprcYjZTgUgYfNaRyDNYXMdvtwuZuKgboP6+Aj8V3/wHBJ7sr4H5D+pUN?= =?us-ascii?Q?o2ikkeMpCO71KPQXso7D+w//+rCb6t5Kr9eYdOEblJc0wHI131gvJlrc5RJ/?= =?us-ascii?Q?fCw0rxoTCVzCfbz2PYSmwKV3vVyeCzuCyEu8xaf0O3rT5Hneh1igJSm6EedM?= =?us-ascii?Q?rQJqIc2tdKjZfDblIgndujzjmXr0TeVBVZSSXzKKjDsUDKOwjXEHtrg+a76t?= =?us-ascii?Q?LxEOAAp9kQYUzV/JDPQhJSiCyd21Jp6vT6nsw0iSImVtcHZYd0tG0bTQz/uY?= =?us-ascii?Q?PjcdkeimQ/QOCkceP9A=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: 88dc6248-5a63-4297-9cf2-08db631a423c X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jun 2023 03:34:23.4023 (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: Diu0JpOLeJlXU2hb+VFpug0R8ZiKYzkUtlRhbDBKQvbdLjCU7KQnVvbdE/q4bjfr7ztP17kQqnRPtxKPOmrTWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR11MB5684 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 Similar comments as patch #12. You could avoid pool allocation. > -----Original Message----- > From: Tan, Dun > Sent: Tuesday, May 16, 2023 6:00 PM > To: devel@edk2.groups.io > Cc: Dong, Eric ; Ni, Ray ; Kumar, = Rahul > R ; Gerd Hoffmann > Subject: [Patch V4 13/15] UefiCpuPkg: Sort mProtectionMemRange when > ReadyToLock >=20 > Sort mProtectionMemRange in InitProtectedMemRange() when > ReadyToLock. >=20 > Signed-off-by: Dun Tan > Cc: Eric Dong > Cc: Ray Ni > Cc: Rahul Kumar > Cc: Gerd Hoffmann > --- > UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 35 > +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) >=20 > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > index 5625ba0cac..b298e2fb99 100644 > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > @@ -375,6 +375,32 @@ IsAddressSplit ( > return FALSE; > } >=20 > +/** > + Function to compare 2 MEMORY_PROTECTION_RANGE based on range base. > + > + @param[in] Buffer1 pointer to Device Path poiner to compare > + @param[in] Buffer2 pointer to second DevicePath pointer to = compare > + > + @retval 0 Buffer1 equal to Buffer2 > + @retval <0 Buffer1 is less than Buffer2 > + @retval >0 Buffer1 is greater than Buffer2 > +**/ > +INTN > +EFIAPI > +ProtectionRangeCompare ( > + IN CONST VOID *Buffer1, > + IN CONST VOID *Buffer2 > + ) > +{ > + if (((MEMORY_PROTECTION_RANGE *)Buffer1)->Range.Base > > ((MEMORY_PROTECTION_RANGE *)Buffer2)->Range.Base) { > + return 1; > + } else if (((MEMORY_PROTECTION_RANGE *)Buffer1)->Range.Base < > ((MEMORY_PROTECTION_RANGE *)Buffer2)->Range.Base) { > + return -1; > + } > + > + return 0; > +} > + > /** > Initialize the protected memory ranges and the 4KB-page mapped memory > ranges. >=20 > @@ -397,6 +423,7 @@ InitProtectedMemRange ( > EFI_PHYSICAL_ADDRESS Base2MBAlignedAddress; > UINT64 High4KBPageSize; > UINT64 Low4KBPageSize; > + VOID *Buffer; >=20 > NumberOfDescriptors =3D 0; > NumberOfAddedDescriptors =3D mSmmCpuSmramRangeCount; > @@ -533,6 +560,14 @@ InitProtectedMemRange ( >=20 > mSplitMemRangeCount =3D NumberOfSpliteRange; >=20 > + // > + // Sort the mProtectionMemRange > + // > + Buffer =3D AllocateZeroPool (sizeof (MEMORY_PROTECTION_RANGE)); > + ASSERT (Buffer !=3D NULL); > + QuickSort (mProtectionMemRange, mProtectionMemRangeCount, sizeof > (MEMORY_PROTECTION_RANGE), > (BASE_SORT_COMPARE)ProtectionRangeCompare, Buffer); > + FreePool (Buffer); > + > DEBUG ((DEBUG_INFO, "SMM Profile Memory Ranges:\n")); > for (Index =3D 0; Index < mProtectionMemRangeCount; Index++) { > DEBUG ((DEBUG_INFO, "mProtectionMemRange[%d].Base =3D %lx\n", Index, > mProtectionMemRange[Index].Range.Base)); > -- > 2.31.1.windows.1