From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web11.5438.1686781692157904756 for ; Wed, 14 Jun 2023 15:28:12 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Ptjwliih; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686781692; x=1718317692; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ye+YfhcqgmQiXEkfmnVGXMn1pMZVEuE4fvo3faMnRPM=; b=PtjwliihhIkkZOcpvRFKytoBLSCinkeSCPeQdUmW0QFr6yyFVNUZmQmW QgGea/viES/4+eqwSE7BzWUhcQUq2jdfmWojBhJ/haoVzH0mlwheh1Y89 3+xVtzxaOlLKxjqvp9csWnzORK4SNXb1p5mlKxEVDL/st2No3c/G2QLbO Sbcf5SdNlsE5dHXIQdLXZu/8BkB1kh70RzNoa2v+g92ToSB3EMO6+Iypo UAyFNCFqDmeLfugDZD7efpu4TKipbd5OQOvOvFJ4OiVc4ROwvSZlOp8pC w+ZBI85GwQJ2m/rZKHXQNFw8PaKWUeDMBPnSug0L6ef6bfeETboElt+eR g==; X-IronPort-AV: E=McAfee;i="6600,9927,10741"; a="387164981" X-IronPort-AV: E=Sophos;i="6.00,243,1681196400"; d="scan'208";a="387164981" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2023 15:27:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10741"; a="715373899" X-IronPort-AV: E=Sophos;i="6.00,243,1681196400"; d="scan'208";a="715373899" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga007.fm.intel.com with ESMTP; 14 Jun 2023 15:27:35 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) 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 15:27:35 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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 15:27:35 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.104) by edgegateway.intel.com (192.55.55.70) 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 15:27:34 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DOT5CVCXpg2fvd87+Eizh0IYG+XOXZFCO3GDwcRS//ny5YcpcIKqV7rnF4cY8hfSK1MT7Nefi2qPuT//4tH4B30PB+R59qQoivaclcxo/4bv4A30h8rt4FDi16GgG1o0PW8rePLzCIl3h1lnuezpocl+fX+i7d5JhAsVLXcdnnPzZgEJuVljFITIPEWBA/2uCVDluEDNkwFdC3sK3EPiCBqQQI3oxASeH9LDepCg4ClQrwA+uOPGDTi5kFRTUUoQDhjLy4UUEjDeV1kiepOS/EoIAJalpJMCjKlTVvgXN/ZAT7W1wvcOpJX+GE6RImAJdg0dWlhKjMA+hrOpnn+yJw== 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=TvP5dJGFZMByxWmUwZD+xDHZ2YWtpYIIun1LAIC5ZN8=; b=k8txY0agRm/QkiFGghn9sXgXqPEWRMJc+ZChXq+o2VwbsEBQdGyDc7KXGVyV/In8HRqyzryc2Vufv2qadt3NZQzE5Wl/LYWw41mjo8MQBYQQZEfNZzlFPiYcstlnLZSDaaQriA/LZszN4uDbJiJqqwac1QB7j2z6mwRTPmufsQf8i9ng1gVMMIYsKSFOpBYX2KDQwGCiF15uZALizw6ZrbPs+Jp4MYgnGKeGUZ5RnToWyJqrur52CSUl1lsU001z7p3x2rUWag6K62AQUGohGEWd9XkS0v8ebPJOmY80z0tUfuZ/ptWk1d7oPjziADn5CtHHHS0ED3S2Wtg5SXWjCw== 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 SA2PR11MB4938.namprd11.prod.outlook.com (2603:10b6:806:fb::14) by DM8PR11MB5573.namprd11.prod.outlook.com (2603:10b6:8:3b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Wed, 14 Jun 2023 22:27:27 +0000 Received: from SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::f7a7:8a51:7ca5:4784]) by SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::f7a7:8a51:7ca5:4784%6]) with mapi id 15.20.6477.037; Wed, 14 Jun 2023 22:27:26 +0000 From: "Michael D Kinney" To: "Tan, Dun" , "devel@edk2.groups.io" CC: "Ni, Ray" , "Gao, Liming" , "Liu, Zhiguang" , "Kinney, Michael D" 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+KMqvwgADZXtA= Date: Wed, 14 Jun 2023 22:27:26 +0000 Message-ID: References: <17602C696F3132BC.21156@groups.io> In-Reply-To: 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: SA2PR11MB4938:EE_|DM8PR11MB5573:EE_ x-ms-office365-filtering-correlation-id: f3562802-c899-4b03-9bf2-08db6d268862 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: WGzu8sQTCU6X/OYe1ZdjDxzyvHZWufdTGo/BujFBMCbLAIdW3PaFjC8W65ZsLVRS6L8IOLzEZCihCmeW+00FPL66DnpSBgAwtIXO/Q2TWHUuP45QpZVGyLoPHVh3TKOnvRzyJCvF8WYU1oZ5EbQpbPIUYlPFFuEy+ovYRTCZvkCWEC7p0wuta5oDY6RDhRiMsVKjSNcp6MYk6jRxihyyp8HHPsxOzuqjNO03R1M05TQ3UxvLGGO4EoY92FpAOnCgqbtGh+gOMbFFl+K9v+fddkXluWhDUe46bRrMQJiXjXpRhU+bVDfLfQ1AHLiBhwao+8lxYxyzX53tzMkorke+4coqrq2gdJIXr/86gEU1ZMn15LXjT3maDUeF76RukuhTWPQ3flco10uHeNBt/etMuSMZr5G9abqynj8pxQ0wkgxw6i8CrGmoC6cTYo7iaRWgivxnFufDdX8FeH39HaCoeBVvKLxzcXXoVgu6BgE2iKF+xJMF0mVannGJl62MLMLsR2oD6Xg1r/4hTjt5TISAsxpSXJplJC3w02uu7r0U+NdKFINTYOJijP1ncBLCZN1e1ydD+TYytyUEVJxMe5R7fbobeIr2ABP8J56Q0GbVVydJni6y2NH81oddf9rtvrq2y68vSqYFWjq3Cb7EJlRPRg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR11MB4938.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(366004)(39860400002)(136003)(396003)(376002)(451199021)(86362001)(107886003)(7696005)(316002)(966005)(8676002)(41300700001)(5660300002)(83380400001)(82960400001)(26005)(55016003)(38100700002)(53546011)(9686003)(52536014)(6506007)(122000001)(8936002)(33656002)(71200400001)(38070700005)(64756008)(66946007)(66556008)(76116006)(4326008)(478600001)(186003)(54906003)(2906002)(66476007)(66899021)(66446008)(110136005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?4TR9H9kWBhob0421/92LuSYF2P+w+Xq2WHuWGNw6Z+UnLnI42cLYP/Y8UdVx?= =?us-ascii?Q?iPpbvvysnE5YBdKeZLdS3Uh8Jo2dZmhpFRnLLwXvJFeH2xi2BZDKafcerWZd?= =?us-ascii?Q?0RZSZtTgExdCh2TTcxR9r89dUtd7Z8Z7CUegrWpFOhBrPYV6wN2+2HZNwKO0?= =?us-ascii?Q?11pu29Led9CJndfPB4BPhwbk0cK42NqrJM5MDUycL5ejReVrFvnDhU+BIxbR?= =?us-ascii?Q?vGUmlzcj5ujNb6/EGLwwPgBxkySxOWC/KxveMIFoTH8oKnCeMKo/+R4D3mvf?= =?us-ascii?Q?DVUpf9ZWmrhybszqqdg+DZ0jhhL2Q5CfLM1s6uGNdDVrbW8UauFPBGj857kG?= =?us-ascii?Q?BlhaVFyHcHRk77H/eH13PMvLBTi2SUnbgvDw4PEkKEiWr2tb9bvhAImxGe/8?= =?us-ascii?Q?v1bDKabxT/F6BOyrAeXGmFXzR2seRKomI5p7/1ng7EGf/riWBZYR0iBm7zRP?= =?us-ascii?Q?0ZPnGmvP0e9PV/sxvNPiYzYJf4rsHwXALyb9oiaVT0GnhP/sDtdo06UDVvIx?= =?us-ascii?Q?9dGmAEj8R3SLqsnChz122lKjaOjpsUUwvU4pk3qwvP7gD57cXyA05xsMZBUk?= =?us-ascii?Q?9gM7d1gWODQbT8UkUEQUoMNBykKcRjXES9r+UaLtaYkKzKIZLMgFPqukcqSZ?= =?us-ascii?Q?4oUGAtnVU6/qPk2AxFLiVFT4VfFZH2eh6M75dwNXjdtHQVFVDRMjQ7QPcxX8?= =?us-ascii?Q?rd7pJPVmX0Mm5m0B63oqZU4NAtcCGAIxGGbsResOURYu3vAzkOK9TrfZf24q?= =?us-ascii?Q?g2ComX0DQCbeTEswm/F1u0eOgte+wdC/m/YZbKn/2E+E7ESKsZO/tcIQestj?= =?us-ascii?Q?jkUDCYJ1fBFLZRgOoHOoxaNgP1+EjpClbE/XFyxuC30bY9UseLPJtnEzYljz?= =?us-ascii?Q?ghEfXfOXWoSoqAzymtaDZ9VooXimVEJoJ7D2T+IV1Ph0gl/zVl0yU/NtImNx?= =?us-ascii?Q?utG5IaUJMrT85+MfV/gyWBrkktYaAkn5ZF0PmT/l5RQXrpTdvKbjilOV870C?= =?us-ascii?Q?iJePytiCVSqBGC5PXlK6cDwTUyDhb8QjvWD+xBnuEWrTfj1gici5RcYibbWO?= =?us-ascii?Q?bDH7IQCabuHBFYhI4lV/IYDm7GAHNoU/l+pHyTbhOM1CSiCW/dfgXqJl2Kwj?= =?us-ascii?Q?fY6qs4ykFNm+5ebkD9mjj4EtIE4WhGfGlZzgBp/zXCnK0FM2zhEg8w60H9Y8?= =?us-ascii?Q?eDB8La2dDi5UuNe/cO87Hj3Cxp202FBIDfEPfn0ilq+3d6wSjA/qSTA6VL4G?= =?us-ascii?Q?QWTc/mfi00o6a4puJ3ZMe9RKNTk8UJVGEdkVeh8ewwrZxlp19b0UsWDu0G7s?= =?us-ascii?Q?V2FNYUBjSrT0fBpdIVuqRS27jcPBE2+mQ2WXEBpsa9mYOQqdqCpCZTBd2sy3?= =?us-ascii?Q?ZfrPhXrgfLwX59qza1Z3CIGVOWB0BgL0S6JymGnpAiDoewqUlGLYks93WNju?= =?us-ascii?Q?qYU5sSGYNt7Y1SBMOpyNy5eFFfmUQNvydacsIaO8hlrc4CsQHBwvsJyGgDEn?= =?us-ascii?Q?DY7trYxnkLRFn1TewKlxr68wpv/bb6wG5Ni231elK4IxynMVj2KC+FQGCu+B?= =?us-ascii?Q?q6z0W/qkGE8bRfb1bFYy+l82ZBZv3ABPXYP3Zvm+?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR11MB4938.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3562802-c899-4b03-9bf2-08db6d268862 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2023 22:27:26.6330 (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: OdtoZfMk/52nbgNnNgevICy0uUCNs50BcOcX/BxJIHhvf220p5Lt5aauvBtk7yMf+B3NMvYyzSp8U0WwUeUtpiJCylAK21sBR9ND8r+1WH0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR11MB5573 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Michael D Kinney > -----Original Message----- > From: Tan, Dun > Sent: Wednesday, June 14, 2023 2:41 AM > 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 >=20 > Hi Mike and Liming, >=20 > Could you please help to review this patch? >=20 > Thanks, > Dun >=20 > -----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 > InternalAllocateAlignedPages >=20 > This commit is code optimization to InternalAllocateAlignedPages of > SmmMemoryAllocationLib which can reduce free memory fragments. Also it ca= n > reduce one pre-allocation page. >=20 > Let's take a simple example: > The expected pages size is 8KB, Alignment value is 8KB. >=20 > In original InternalAllocateAlignedPages(), the first step is to allocate= 4 > pages and then find the first 8KB-aligned address in allocated 4 pages. I= f > 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 > pages will be selected and removed from free pages. Then the higher 2 pag= es > will be free. > Since the whole memory allocation is from high address to low address, th= en > the higher 2 pages cann't be merged with other free pages, causing the fr= ee > memory fragments. >=20 > However, when only allocate 3(2+2-1) pages, we can avoid the free memory > fragments in specific case. Also 3 pages must contain a 8KB-aligned 8KB > range, which meets the requirement. If the upper limit address of allocat= ed > 3 pages is 8KB-aligned, then the higher > 2 pages range of allocated 3 pages is 8KB-aligned and will be selected an= d > removed from free pages. The remaining lower one page of allocated 3 page= s > will be free and merged with left lower free memory. This can reduce free > memory fragments in smm. >=20 > 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(-) >=20 > 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 tha= n > 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 > overflow. > // > -- > 2.31.1.windows.1 >=20 >=20 >=20 >=20 >=20