From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.7657.1686735654405041519 for ; Wed, 14 Jun 2023 02:40:55 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=TMuSMLuM; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: dun.tan@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686735654; x=1718271654; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=W+T5Tn3uHKiquYHMPXmm8rPuFNekyyfv5YXpcijtZfw=; b=TMuSMLuMbIqHUhgVe7ksUnzn+UDqGRzR2BDabRLLzJVYHgF8QHDxkrXe deLaf28mMgmtgQgWndHvTiSUNjHNJlSR/7N/vKSAQ/SLwElu6zrBoF8gR Uj9Pk9ezKfi0fMKTTMvGExee9tMj3Fn2SrqkcIJ3RTjJ8E4nJaxJv8t2D 9r2EPRGm2XTsYBpkQMy/8lWgIhs2EXz8ttPS7BactYiOV55YJW109MMFD 5xEkIsbEvoAzmc/M7RmKFZ0m2iWqLzSSvujTOEc5I9a/Opg5aO6BUE7Mp ESOVGvzYceQLSlBcyhVDt3fxxiIO/WP2+H3lh0Mr236GI+v9UlDLHS3Z1 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10740"; a="444939452" X-IronPort-AV: E=Sophos;i="6.00,242,1681196400"; d="scan'208";a="444939452" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2023 02:40:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10740"; a="745015965" X-IronPort-AV: E=Sophos;i="6.00,242,1681196400"; d="scan'208";a="745015965" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga001.jf.intel.com with ESMTP; 14 Jun 2023 02:40:50 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 14 Jun 2023 02:40:50 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 14 Jun 2023 02:40:50 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.173) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 14 Jun 2023 02:40:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KnndijMFDEjKZyAThGhsyyEU+94R8Kjb8qANQSXIfmHwE6Ir3l4APw0IFqoag/aKwm1WJ2c13VqhzqPO1p/6ImPSffr4w3sUAglT9jy3GPwzoWr/PogRURKZkE31QFVU8Z6gsLc6XUMeBNT4vlLfZ3E4VYvXuyUv+i6Xgn+InID3gYMYrCI6bhRWWLG1AxJ/WYZBpXcdwC9r8X52YBGTvDPLAxLUHNUU3FkBmyNugwqeDYXkrP46C027f9sraS0km5bNlkPr6GCfd1JzlUSY8xAzJKW6FoShHKSkcIHT0Fdo3ZdiGvRUHWnG1/ll1L8khs/agzmU6rS0ymHv8jupvw== 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=FJ7HKZwPZ3qFemknwoyLTEq8m6OGlwjwjtI0JF5yoLo=; b=TVyDpsWBenR6QlW7BUrXchBDRd92ao4C9cFfUyDuGeV3xP1+cI2XgsFogvkUk8Kw3bfqK2bowRafjNg2lW7sqGiy5iiexqpSLP35+U6xxQB6G+2MlfMvLb9X3gN/BmZNLo1j/tY039CXpB9D8GntROv6oETYQhOyrskRhTaBNL9hTqU7AuJRASM8il+BIZf3Bw5ZFejdR7V/vswVhOr9F9o7KuJrLZQrUGjeQbZYjOu7sAmSHhXxPCiDtjA6J1LFAurn/C8NFLspiQbtkWLiC6OA7ke7BW9dkgoL9QCtrdlnRGKRKW8p2mZHp48p674oeHyWYrYP9uf0rFaOIHFFqw== 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 BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by SA1PR11MB8426.namprd11.prod.outlook.com (2603:10b6:806:38d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.38; Wed, 14 Jun 2023 09:40:42 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::3023:34d3:bd4e:7901]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::3023:34d3:bd4e:7901%3]) with mapi id 15.20.6477.037; Wed, 14 Jun 2023 09:40:41 +0000 From: "duntan" To: "devel@edk2.groups.io" , "Tan, Dun" CC: "Ni, Ray" , "Kinney, Michael D" , "Gao, Liming" , "Liu, Zhiguang" Subject: Re: [edk2-devel] [Patch V2] MdePkg: Code optimization to SMM InternalAllocateAlignedPages Thread-Topic: [edk2-devel] [Patch V2] MdePkg: Code optimization to SMM InternalAllocateAlignedPages Thread-Index: AQHZiVrVSEz5XAMElk6ZxQOFM3xfBa+KMqvw Date: Wed, 14 Jun 2023 09:40:41 +0000 Message-ID: References: <17602C696F3132BC.21156@groups.io> In-Reply-To: <17602C696F3132BC.21156@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: BN9PR11MB5483:EE_|SA1PR11MB8426:EE_ x-ms-office365-filtering-correlation-id: 6c921185-7b70-4419-5976-08db6cbb6b3c x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 032j+2BYfGEiwUc2KvHtZ0NO4wXn8/FYgLAs0HhyoTAxcxqQCg5DSRE/Rs7HK41wAT8KACDaGHdnnV+6ymHfpThHEMUpoPka4f84RONkrAQ6KVDp2xeI97Fw9Ja1l+56A05ylZJnkhfNcGznFqyA5ORUfNZa4qSR8MOA8r6egnTQvkRYNqRsJZb8wBFdjI712hOGEqVkYm8Wj4a2NwO5AvQauVAmZK0zSd2SyCnaSeVcO49NuED9FwU2V4YUlVAtk0N9F9jJt8BWR51tVMQBvoT/+sFyW9416BndkE8pwLGOeqe/tne4hZmP4+eukVuIukWCqa7qESPAh2ZIBwVy0vjUBPo2KLjgI6vYzT65Nv1QOFd5oGM7hFEwZvpeGNM7xMq2koJnKFmXPUABhvWPxduNCMhSE7iIoH041VraBfFm3lQx9UOH9zXo4y3ueM2Dm5XcgO2e+4r7rJu+N43rZhuCDw2A9RfATr83sDAzCLJlWx+CV7qRuIUP1p9w4olS5Adbd/gK+40o6REAVCDFOmMeOl3aqmwMPBYBF1rsY4Aqz1tz8HctQPAkzrAMG30IpnB7c3SeejbM7bzWD5TA9CzWHG22+uVmTh8jQ9ScO3LMYHrKLW1dkqbkU3zMY8h1I5N81hcU6eZrmFH1tbkT9A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(366004)(376002)(396003)(346002)(39860400002)(451199021)(86362001)(2906002)(33656002)(38070700005)(66899021)(64756008)(55016003)(76116006)(7696005)(83380400001)(71200400001)(966005)(9686003)(107886003)(26005)(6506007)(53546011)(186003)(122000001)(82960400001)(110136005)(54906003)(66446008)(38100700002)(66556008)(66946007)(8676002)(41300700001)(478600001)(316002)(52536014)(8936002)(66476007)(5660300002)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?sKzOOqziT/8EcHA7iHereuimOH5ONDPwG5AnhxCuroHEtkNGNrpBiHuyKgVY?= =?us-ascii?Q?HKePlOgg1BvLzNOgAe3dKYgW/q56M5LVajvoLIHyFSAavA2J8cRvdQYInFnx?= =?us-ascii?Q?YLOeLhNLQUAnIyupd/UII2VpzOTjcBLuwNWDtNc3V0GDuwEkd7KnQepvqC2Q?= =?us-ascii?Q?bpttzvRconlZrNDvPwNmkCRbNTr45XI0BQWaohT+FW32J0IR3yXijIFD5uDT?= =?us-ascii?Q?6u8DTLxe71gyRnPopXrK+7f4G1hz63BJIYaR596H7Fu54+JAM5YR5/QSiEjb?= =?us-ascii?Q?16tojaLuRRMRqqYj6IY6Ac42uTNSWSTbAGc//d9PfgGBloSaRTJGLih6pEUU?= =?us-ascii?Q?hGT5FF9ULfS/4mzeHiD4xbsZZ3nPAwg3gnfHhlPjCUABrUH8S7z04T9v4Mig?= =?us-ascii?Q?FEPlkDg40qrbzUPpquB3oOibrtyH3u1AdXJp+RP0jQrS7kaZw+8hO++U6cjG?= =?us-ascii?Q?KBFiS+GNVJn3uj6tCoWYBfUx/bw2pwLeQcXZ/4AZn5nMsieZ02YKDS27zkES?= =?us-ascii?Q?RG+meCc1gqQWL2bVfVChosELq0yoBaQCXt81uFLYp4OgNNzl98u5+SuLFPTt?= =?us-ascii?Q?a9UX8FfrS2dKF66t6vaSSK8jwc9Pw8eMS8R0zH5XtcTcBlZdOyzFWEDWOpWE?= =?us-ascii?Q?VQz+iGY9oHj5inQkFdnPx4dN4AbvyVi2zT50oIDpzRtB0MFQWXQpOvvdiY/m?= =?us-ascii?Q?vwgM+dx3q3oXHtEMfZ24qXesxenEa2ntOPlMoJqArTXDdiWyrYoJRN5Ib0zy?= =?us-ascii?Q?j9kDnxs/PblnylK/ABYg2an9O68WguZAGwwHIS8Cxg24rXbCnn+TfWbWKLxZ?= =?us-ascii?Q?evKtjN3zVhabKA3oP7O4cKW65SjVzd42HUlZ+8PDr4xkkY5kqgyJP40KD7D+?= =?us-ascii?Q?k1PexaCjeLHLUy+b+xAyPDF0tTuWHViSDEtq14W8V1e9/bIkb+7U2ann/oW9?= =?us-ascii?Q?AZ2v9/3ttixqG5geh7rDN0X0oNPBJEJXBN07yHgrgqNnXmnyBfNoWtbxMaQ/?= =?us-ascii?Q?TkjMOgrttVczsiHAQP+bs4r/OA9iVcuw6rCXPxOU6bnIalG8K3ZiMo2lRu2g?= =?us-ascii?Q?ab1SoTl2XSS43A0ErM6Q3XXOYKq9xEr3mDDlhrWe4q3cTLhpaHS+6o+cojgq?= =?us-ascii?Q?1se5QyV7YnZMTkgaR8vwj7/cm1sMy7h2i3TFGPQyBZPz4yogUodqszv9Lapx?= =?us-ascii?Q?EW9vtFZ2SCTmqCsltSA3V5/GEBJew7FEcSs6KHRI9xB9WxiAJLyCgcTtgtyw?= =?us-ascii?Q?bvFYJgdPirDvrIUnyIiNIDmZGzFCCWxqIOlKiwqWlTYaEXSw0rtvAikevYRt?= =?us-ascii?Q?oA3+0NwE4ZaqRo9JvQTeyBDDh4A93Aq0gANhARGaV68Dqx84YjztQG62fKNv?= =?us-ascii?Q?432M0uQeOcqx48nqUJ5eg5vaMi1zwlIWcYgz/FRrArvgwgjDW8T3gtD+lo2p?= =?us-ascii?Q?QR3539iDAJypJTyL2KkePe7Sp7nNa3IhblUd8wInHxVp1zYhqp6zg2Kzi+G1?= =?us-ascii?Q?h6jrxXw3YDnV55JJ9wXDJjpHOhltAl48IU2DeVoyqgBbF9SgfjGL734fFHl8?= =?us-ascii?Q?opDEebSxtWOZvUQZQAw=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c921185-7b70-4419-5976-08db6cbb6b3c X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2023 09:40:41.6697 (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: cMbMQpUnrTmg9YG6EjCOhvyEKOV8EB3fN7BKhk9lcbTVrXvIX8z4P15B+9jqgBEO4Z7QNtxRfseAuoDIOri8uQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB8426 Return-Path: dun.tan@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Mike and Liming, Could you please help to review this patch? Thanks, Dun -----Original Message----- From: devel@edk2.groups.io On Behalf Of duntan Sent: Thursday, May 18, 2023 3:31 PM To: devel@edk2.groups.io Cc: Ni, Ray ; Kinney, Michael D ; Gao, Liming ; Liu, Zhiguang Subject: [edk2-devel] [Patch V2] MdePkg: Code optimization to SMM InternalA= llocateAlignedPages This commit is code optimization to InternalAllocateAlignedPages of SmmMemo= ryAllocationLib which can reduce free memory fragments. Also it can reduce = one pre-allocation page. Let's take a simple example: The expected pages size is 8KB, Alignment value is 8KB. In original InternalAllocateAlignedPages(), the first step is to allocate 4= pages and then find the first 8KB-aligned address in allocated 4 pages. If= the upper limit address of allocated 4 pages is already 8KB aligned, then = the allocated 4 pages contains two 8KB-aligned 8KB ranges. The lower 2 page= s will be selected and removed from free pages. Then the higher 2 pages wil= l be free. Since the whole memory allocation is from high address to low address, then= the higher 2 pages cann't be merged with other free pages, causing the fre= e memory fragments. However, when only allocate 3(2+2-1) pages, we can avoid the free memory fr= agments in specific case. Also 3 pages must contain a 8KB-aligned 8KB range= , which meets the requirement. If the upper limit address of allocated 3 pa= ges is 8KB-aligned, then the higher 2 pages range of allocated 3 pages is 8KB-aligned and will be selected and = removed from free pages. The remaining lower one page of allocated 3 pages = will be free and merged with left lower free memory. This can reduce free m= emory fragments in smm. Signed-off-by: Dun Tan Cc: Ray Ni Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu --- MdePkg/Library/SmmMemoryAllocationLib/MemoryAllocationLib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MdePkg/Library/SmmMemoryAllocationLib/MemoryAllocationLib.c b/= MdePkg/Library/SmmMemoryAllocationLib/MemoryAllocationLib.c index 3ab2c1ebfd..99a8259325 100644 --- a/MdePkg/Library/SmmMemoryAllocationLib/MemoryAllocationLib.c +++ b/MdePkg/Library/SmmMemoryAllocationLib/MemoryAllocationLib.c @@ -322,7 +322,7 @@ InternalAllocateAlignedPages ( // Calculate the total number of pages since alignment is larger than = page size. // AlignmentMask =3D Alignment - 1; - RealPages =3D Pages + EFI_SIZE_TO_PAGES (Alignment); + RealPages =3D Pages + EFI_SIZE_TO_PAGES (Alignment) - 1; // // Make sure that Pages plus EFI_SIZE_TO_PAGES (Alignment) does not ov= erflow. // -- 2.31.1.windows.1