From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web10.347.1655934091315402857 for ; Wed, 22 Jun 2022 14:41:31 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=Tk/VzbkD; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: hpe.com, ip: 148.163.143.35, mailfrom: prvs=0172c72e1c=brian.johnson@hpe.com) Received: from pps.filterd (m0134424.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 25MKwPxR012723; Wed, 22 Jun 2022 21:41:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=content-type : message-id : date : subject : to : cc : references : from : in-reply-to : mime-version; s=pps0720; bh=dh1cihYl5PfxI7VdpRvXRmI8/nX1TsXt5Snj6VZMZCE=; b=Tk/VzbkDkJrMuisfB8ih8ULBC/374/9J/kGDscOr5cMsUEQ4Nyg3Layzth2u/HShF3m/ S6GcWvvknxSiDooz6vXi5LAFMdiyxeIByp7XlxtrodSC0lULfPYiJPqmcweM+XG28oQD 3SdJKCJzoBDLA5zMYECRLckaBg84u+YjZf7/yyaWZRnYm8iS+22MaTBlYPiqaqubmhxv jfz3o2AT9NSeXg8ca9iUddo6kOAmmz5AvE5b2A4GbK8EeVlUnfQJ3EnOD+TQn5GbvZmY /AgCdWqkqikJWO/WcHhWUEpwc6TUQDz7qoUoZQ9EWMq01dYp+urSyx1dRblYoIeFVGQi FQ== Received: from p1lg14878.it.hpe.com (p1lg14878.it.hpe.com [16.230.97.204]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3gvak1gjxk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 22 Jun 2022 21:41:28 +0000 Received: from p1wg14925.americas.hpqcorp.net (unknown [10.119.18.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by p1lg14878.it.hpe.com (Postfix) with ESMTPS id 65BA2D295; Wed, 22 Jun 2022 21:41:22 +0000 (UTC) Received: from p1wg14924.americas.hpqcorp.net (10.119.18.113) by p1wg14925.americas.hpqcorp.net (10.119.18.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15; Wed, 22 Jun 2022 09:41:13 -1200 Received: from p1wg14919.americas.hpqcorp.net (16.230.19.122) by p1wg14924.americas.hpqcorp.net (10.119.18.113) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15 via Frontend Transport; Wed, 22 Jun 2022 09:41:13 -1200 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (192.58.206.38) by edge.it.hpe.com (16.230.19.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15; Wed, 22 Jun 2022 09:41:13 -1200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lwrNiV/BnqRnmweJY0r5HX5zdGw04V5JOkcg9r0MU5e6AUzrh6+KKwxkLJHCl2gKqF5pBStXxGXhD9qlZ8Gyt4b5ar4jA9lQeznxATEbjwob7TBG75Q+Cc9hZ9eQrUu/A+cZBPUFZC+2A5aJQat4+XUjzZyPkgzsr8/XKpvlXEQL8W8R77Ef37eHxCQ9xBBAuGnmVPwWSmEQ/NcBn67PteOMDzqq8pALWh1G0QfW23ekRnxmUmxibiEs9rQfvrdHSzgk5lCzjqgBECKhI4WPT9Bw74/Rtw/wOIqX8J9IM6OQxgutkJ2OVaHSp6VhuxZ9YZ+m7ecPLP2S21QGjfrsyg== 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=lBXa5y7dp+pZPM897wWcEqUFBgGWr3yqDrznV6tQKTg=; b=nHbYI+qtmIp1DNjU/oP740+uV/W6MvMX+igAlwwnptN6MBsc0syiWYLEURlWMrj9GTj2ocXHcwWPoQxBnD0lMFgnbpsB885FPLrQoxhpN5iRgprx4malGn37g5G6TbfXJYx3CCgjz3YW0wPshr6rrWrg43zIo6uAsSnqL90/+4Gvi3ShggFaBH/EDcdOGT6f1Z6vNwA97BKFHR+X/Q50tpfQtSY2Oj11O3ScRaFHRKNoMVJiTcE3syY50vMQf7UWSjjx1X1xbhCmq5SNL1Uj7siYrPSfbkJODajoP9fo4eRJtMAMWIPGUOwgx+Of2gg5bbmZkX+xdxs04xydoy8cfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from MW5PR84MB1354.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:303:1c0::21) by PH7PR84MB1910.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:510:155::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.22; Wed, 22 Jun 2022 21:41:07 +0000 Received: from MW5PR84MB1354.NAMPRD84.PROD.OUTLOOK.COM ([fe80::a8ef:95c0:f06:8b1c]) by MW5PR84MB1354.NAMPRD84.PROD.OUTLOOK.COM ([fe80::a8ef:95c0:f06:8b1c%7]) with mapi id 15.20.5373.015; Wed, 22 Jun 2022 21:41:06 +0000 Message-ID: <9e98ae48-41c5-18c3-d347-2a5312e111b3@hpe.com> Date: Wed, 22 Jun 2022 16:41:04 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [edk2-devel] Clarification of Memory management in PEI phase To: Andrew Fish CC: , References: <500949D4-FFB9-4BC1-8655-430BC788765A@apple.com> <76b8a649-c0e1-8ee8-4502-8d6010a76b14@hpe.com> <64A70BD6-B1A0-4DDC-8B41-40222258F1EB@apple.com> From: "Brian J. Johnson" Organization: HPE In-Reply-To: <64A70BD6-B1A0-4DDC-8B41-40222258F1EB@apple.com> X-ClientProxiedBy: DM6PR02CA0066.namprd02.prod.outlook.com (2603:10b6:5:177::43) To MW5PR84MB1354.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:303:1c0::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0a42ce46-be95-4f46-3469-08da5497e9e1 X-MS-TrafficTypeDiagnostic: PH7PR84MB1910:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XA5dmIxkxF2IUBWYaGQom/ezqkwcAqARTER515ToaEQLCnlyr9GIqasD6eP7yQWlMVNtRFpCspMZpqgxoajTc18vZ8PuQjotjZOoMMzcc27rlrF4jsq73I2/GjxkcbeMcelt3iSDMa44cd2zBuCoMKtFbKQ16TH3vMyUMgK6/0fgdbBen92YDwGDrnK6LzWTOKz7rwmZgxA7JHehhmx0NH/DyTdD07tUQTz0SOokNWS0pXJc3KG3q9a1mkH1d5Qt57HVlzTpj7hFTbkT+1IT2NaoiV8gN0VHI6XAbbWWnYMGLwRGHB7RpAHydvG/AyRrFDw/82tohbMbP69ST361mbbO0awhrl1LH4YZlhDD6XapyvUHOg4PdA/dDwXZQ6X9Z1ACsWKkqHYgH8CqSsdoe/9qj5u1rs2rtQ+r07Eu59vLA9TZWD66cvTHQqx79M3ilvrCgKkALZ1gyjrMyXzqz/sjZW7ylcsjeYaoYDn/bxZvF5WZVCY+tQ9PgpnbW2gKobkaGHXs8tnhPyufvXr9ci8zMUGbGhyk/rOE4Wn7gl8zRqTXJdaLSIWmDfWs/FpLTGFP1H89xk63LwSyvIqIGlNvpaWV3GPEOXR/RbQRrP+3NbJ4rSp+86syq9AJd14z7Q0SmjLVHyKcrE8Ofvju5ny0QtKf+pWdIIl46mNQJwzldAQveojGghJ0qUOFgsM4+Up1zIZ2UFl01lzKh8TgbAi9jq0h9U4vibpRIcIG6WUH0bYbS7RjX55k2w+9+rHBVyDe6i2xkq9Ha9jLW+WbqrfYZtx2CYtJZ41MuGLJ62nFNaewmv8lHW0IqazoafwH/Cjn1j946PCa+yAe6j+tdE7Kkcjkr52Mo+NgSD7XdKY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR84MB1354.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230016)(396003)(39860400002)(366004)(346002)(376002)(136003)(31686004)(166002)(6916009)(316002)(76236003)(82960400001)(38100700002)(186003)(36756003)(83380400001)(2906002)(6512007)(33964004)(4326008)(66476007)(8936002)(5660300002)(8676002)(66946007)(66556008)(2616005)(478600001)(36916002)(6486002)(86362001)(26005)(966005)(53546011)(31696002)(30864003)(6506007)(41300700001)(43740500002)(45980500001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bTJBZjlJWUhPS1hvaEZZajg1THFYUVhrVE9VS3prQVVpM0ROd0tkU1dMK09t?= =?utf-8?B?WThGQkJYbTZXWmtNbGp3NjNJV1hQcmpXUTVkMHo0Qk9NS3lHdk1TVW8wMDAx?= =?utf-8?B?ZGRRaWdrbHBVVndrSW5MdUdmRjlabGVEY2x6Y0UrZ20zNUFaZ0Zpd0pMaE5I?= =?utf-8?B?OTVkKzdTeWpVSmFIM0ZIQzAwQWZjN2FLRVFoMWY2dzlORFJGZm44SUI1VlZQ?= =?utf-8?B?UU16eWxlcnYyOEI3Q0NPcTN4VEU2T2ovWlo3UE5zMEdvQ2JDTnU1S2hzbmNi?= =?utf-8?B?aHJob2ZpZ0ZybGNINEVtNUc1MDBHZlRlRFdtbVNzb0hOVTNMc0FIaDVUYVhq?= =?utf-8?B?by9lMUFTSzVDYmh1YjZhekVIcmFQU004TVo3clptRWNrbzgvWHhSajZjZWlI?= =?utf-8?B?V3phQmF5bGNsV0dYZmpRQTcvcmRqeExuMmVCcU13NTdZejBuZEF2Qzg1S0Ru?= =?utf-8?B?RWJUM1oyb2ppcU5JY3phb3ZVZ2xaTGlSRlBrTU16OThGR1dFUTlhUWJpTnZv?= =?utf-8?B?Z1RtZSs4aDVyQjRFRWxhTVdvTzZJRG5ZMStHUFBnbGx1alBSaCtnazZaMXVj?= =?utf-8?B?TWpSSk84c3Bwa3MyNnpxSHNqSUZnRGpMOHV5M2VLMnZwQ3hPb01IMnl5b0o1?= =?utf-8?B?Y1ZoNHN3T2RiUkNwUUVoclNoWWlyUEtSYkNaU2ZINVlzdnhkSDMycDI0L3VK?= =?utf-8?B?cmoxbXg2SzFhUWRtYmQwRGFyTVFwc2NZNnJlZ1ZtVkZiVXQvRjZlMUVyM25C?= =?utf-8?B?bEhqdEdFK2ZXQ1RjVTBhV054bDNJYXh2UGsyWkN6SGZBR0VHZ3FVby9SVjQ3?= =?utf-8?B?QXpkbUVoYW9vSU5XTk9pL3BpZEV5TGlsZVhjcmRwa3piV29kRzFNY3hkbnNZ?= =?utf-8?B?YVk3OGtHSFFYcUQ2Y2ViakdiU1piRU00NHNVOG8wai9sRFBuSjRUdDM3R2g0?= =?utf-8?B?VURvaHNXSFFJOTgwdkxXaVluek5sb3BMdVF0amlmM1FFV2x1VS9qcHJwVWlB?= =?utf-8?B?TDZiSEF5M21RKzBDZitwUkh4WmxiK3lQVU51VWJJZzE0Vk1VYmpWc1liUi80?= =?utf-8?B?eE5aT2Q3Nm1pZ0hvU0lZWVRFSkMrZVBxd24reUE5K1lPWk10bXJTSE5SNmg5?= =?utf-8?B?TlQydFhvSVRNUWtSaTBLR3lFWjJVR0doRnZqR04ySUNYM25SbEZ0RTZaM3Jx?= =?utf-8?B?WHNZYmk4Lzc5N2pMQm1EYSt2WFBmcnc2VGwvRWQ5TVlZQmZLYStSRERCT1M4?= =?utf-8?B?c2hMdGJUaGdWQVNQTUpNeTdnajVxY3JmRmZaMWV2Sk9TOURlTEVvWVIxRU0z?= =?utf-8?B?OWhlNmJsWDZmSWFJcFMzUDh2Q0dxWEs3WlJta3gySGJZNGhEcEpoT1E3dGFR?= =?utf-8?B?TytjNW5PSWU4YmU5a0N0dDlRRElsVXVIelNTWTB6OWxaNERhSko4b2xucU12?= =?utf-8?B?OVU2UmQrYi9Ja1QyT0x5WElIRStEV3NGdi8xanBmTHlUZkFnSkZBYmtLKzlU?= =?utf-8?B?OEVzWE02ZmduSDJiekFDWGxWMVdtcitFQkZtU2UrRDc2ZkhxQmROeW9mRVhG?= =?utf-8?B?b0Jxd0ZsNk81QitlS3g4NjNKeUd0MG9tcFhMQklxTEJyZm5MNnZSYTVPT3V5?= =?utf-8?B?ZWloTUNVNUI3Ny9jdUoraTNneU1MYjBQTnBZRHlmVTBJcVdYcmJHTDVZYThn?= =?utf-8?B?RmZuOGxkQ09XZENiUG5ocWdXalhPRGxzS1J6UTkrV3pKLzZ6T2pPR2xCSkda?= =?utf-8?B?ZnFJa3pGKzNvNElVSEcvdlNaV280YXBBdkErck1pUDVrUEh1ZVdFbXdTWUx2?= =?utf-8?B?SHpwUUVkVjJCWXRtUDdsRzhzU2lhVnBmRU1rZTlXQXA4WmVTTjArTjM0SHJR?= =?utf-8?B?d1dWVkJGbUtrUDZZWHh0K29yWTRwVGZwY2NEOEtvZnNDa3NEaTdwTzVRTXJL?= =?utf-8?B?dXAwcDBPTlRnbkhwRHJmWEkreXdxYlJ6Wkdib2JQYkhlUkNzZkJHSS9BUE4v?= =?utf-8?B?T0VxeDY2RnQxQlJLc1VhZUkwWnFxYVVtMTNxdHNpSiszWHg4SVFocHBBOC9Y?= =?utf-8?B?bGVGMGZhNlU2R291RHljcU9zMnhOcG83VUQzZnJJWVhjYVQ1Z2ZybWxRQlUr?= =?utf-8?Q?8Lq8H8wzY2KYL9+XAryuNDpRm?= X-MS-Exchange-CrossTenant-Network-Message-Id: 0a42ce46-be95-4f46-3469-08da5497e9e1 X-MS-Exchange-CrossTenant-AuthSource: MW5PR84MB1354.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jun 2022 21:41:06.7940 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U6j06oDukps6TEhh/4wgvgcd8QGOTlQcVaLnYGWjZIINVJH1c8xWqr1sFp/bOw+Hsg5zuX4xRMt/1DpK5qbncA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR84MB1910 X-OriginatorOrg: hpe.com X-Proofpoint-GUID: fSUzWFai76S2cEEUbhSu7GWZwATr7kD3 X-Proofpoint-ORIG-GUID: fSUzWFai76S2cEEUbhSu7GWZwATr7kD3 X-Proofpoint-UnRewURL: 12 URL's were un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-06-22_08,2022-06-22_03,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 adultscore=0 mlxscore=0 clxscore=1015 impostorscore=0 mlxlogscore=999 malwarescore=0 priorityscore=1501 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206220098 Content-Type: multipart/alternative; boundary="------------oY1Gxof8UzWE1AKajNETNJxm" Content-Language: en-US --------------oY1Gxof8UzWE1AKajNETNJxm Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 QW5kcmV3LA0KDQpZZXMsIGFkZGluZyBhIG5ldyBIT0IgdHlwZSB0byByZXByZXNlbnQgZnJlZSBw b29sIHdvdWxkIHByb2JhYmx5IGJlIHRoZSANCmVhc2llc3QuDQoNCk9yIHdlIGNvdWxkIHdyaXRl IG9yIGJvcnJvdyBhIHRyYWRpdGlvbmFsIG1hbGxvYygpIGltcGxlbWVudGF0aW9uLCANCnNpbWls YXIgdG8gRFhFJ3MgcG9vbCBhbGxvY2F0b3IsIGFuZCBiYWNrIGl0IHdpdGggbWVtb3J5IGZyb20g DQpBbGxvY2F0ZVBhZ2VzKCkuwqAgVGhhdCB3b3VsZCBwcm9iYWJseSBoYXZlIGJldHRlciBwZXJm b3JtYW5jZSwgYW5kIHdvdWxkIA0KYXZvaWQgZnJhZ21lbnRpbmcgdGhlIHBvb2wgbWVtb3J5IHdo ZW4gbm9uLXBvb2wgSE9CcyBhcmUgYWRkZWQuwqAgSXQgDQp3b3VsZCBwcm9iYWJseSBiZSBtb3Jl IGNvZGUsIHRob3VnaC4NCg0KQnJpYW4gSi4gSm9obnNvbg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoqRnJv bToqIEFuZHJldyBGaXNoIFttYWlsdG86YWZpc2hAYXBwbGUuY29tXQ0KKlNlbnQ6KiBXZWRuZXNk YXksIEp1bmUgMjIsIDIwMjIsIDM6NTQgUE0NCipUbzoqIEJyaWFuIEouIEpvaG5zb24gPGJyaWFu LmpvaG5zb25AaHBlLmNvbT4NCipDYzoqIGRldmVsQGVkazIuZ3JvdXBzLmlvLCBheXVzaGRldmVs MTMyNUBnbWFpbC5jb20NCipTdWJqZWN0OiogW2VkazItZGV2ZWxdIENsYXJpZmljYXRpb24gb2Yg TWVtb3J5IG1hbmFnZW1lbnQgaW4gUEVJIHBoYXNlDQoNCj4gQnJpYW4sDQo+DQo+IEkgdGhpbmsg YWxsIHRoZSBQRUkgQWxsb2NhdGUgUG9vbCBkb2VzIGlzIG1ha2UgYSBIT0IgWzFdLiBJIGRvbuKA mXQgDQo+IHRoaW5rIHdlIGNhbiByZW1vdmUgSE9CcyB3aGVuIG1lbW9yeSBpcyBmcmVlZCBhcyB0 aGF0IHdvdWxkIGNoYW5nZSANCj4gwqBwb2ludGVycyB0byBwb29sLiBJdCBtYXkgYmUgcG9zc2li bGUgdG8gbWFyayBhIHJlZ2lvbiBhcyBmcmVlIGFuZCANCj4gYWxsb2NhdGUgZnJvbSB0aGF0IGxp c3QgYmF0Y2ggMXN0LCBhbmQganVzdCBvdmVyIGFsbG9jYXRlIHNwYWNlIGlmIA0KPiBuZWVkZWQu IEl0IGNvdWxkIGJlIGFzIHNpbXBsZSBhcyBqdXN0IGFkZGluZyBhIG5ldyBIT0IgdHlwZSB0byAN Cj4gcmVwcmVzZW50IGZyZWUgcG9vbC4NCj4NCj4NCj4gWzFdIA0KPiBodHRwczovL2dpdGh1Yi5j b20vdGlhbm9jb3JlL2VkazIvYmxvYi9tYXN0ZXIvTWRlTW9kdWxlUGtnL0NvcmUvUGVpL01lbW9y eS9NZW1vcnlTZXJ2aWNlcy5jI0w4NzgNCj4NCj4gVGhhbmtzLA0KPg0KPiBBbmRyZXcgRmlzaA0K Pg0KPj4gT24gSnVuIDIyLCAyMDIyLCBhdCAxMjozOSBQTSwgQnJpYW4gSi4gSm9obnNvbiANCj4+ IDxicmlhbi5qb2huc29uQGhwZS5jb213cm90ZToNCj4+DQo+PiBTb3JyeSBmb3IgdGhlIGxhdGUg cmVzcG9uc2UgdG8gdGhpcyB0aHJlYWQuLi4NCj4+DQo+PiBQRUkgaGFzIGdyb3duIGdyZWF0bHkg aW4gY29tcGxleGl0eSwgYXMgQW5kcmV3IHBvaW50ZWQgb3V0LsKgIERvIHdlIA0KPj4gKFRpYW5v Q29yZSBjb21tdW5pdHkpIHRoaW5rIGl0J3MgdGltZSB0byBhZGQgYSByZWFsIHBvb2wgbWFuYWdl ciB0byANCj4+IFBFST8gVGhlcmUncyBnZXR0aW5nIHRvIGJlIHF1aXRlIGEgYml0IG9mIHBvc3Qt RFJBTS1pbml0aWFsaXphdGlvbiANCj4+IFBFSSBjb2RlIG9uIHNvbWUgcGxhdGZvcm1zLsKgIEFu ZCByZWFsbHksIGhhdmluZyBhIGxpbWl0ZWQgYW1vdW50IG9mIA0KPj4gcHJlLURSQU0gbWVtb3J5 IGF2YWlsYWJsZSBpcyBhbiBldmVuIGJldHRlciByZWFzb24gZm9yIGhhdmluZyBhbiANCj4+IGVm ZmVjdGl2ZSBwb29sIGFsbG9jYXRvciwgc28gdGhlIG1lbW9yeSBjYW4gYmUgZnJlZWQgYW5kIHJl dXNlZC4NCj4+DQo+PiBGV0lXIHdlIChIUEUpIG5lZWRlZCB0byBhZGQgYSBwcml2YXRlIHBvb2wg YWxsb2NhdG9yIHRvIG1hbmFnZSBtZW1vcnkgDQo+PiBmb3IgYSBwcm9wcmlldGFyeSBoL3cgaW5p dGlhbGl6YXRpb24gbW9kdWxlIHdoaWNoIG5lZWRzIHRvIHJ1biBpbiANCj4+IHBvc3QtRFJBTSBQ RUksIGFuZCBkZXBlbmRzIG9uIGFsbG9jYXRpbmcgYW5kIGZyZWVpbmcgbWVtb3J5IGluIA0KPj4g ZGlmZmVyZW50IHBoYXNlcyBvZiBpdHMgb3BlcmF0aW9uLg0KPj4NCj4+IEJyaWFuIEouIEpvaG5z b24NCj4+DQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+ICpGcm9tOiogQXl1c2ggU2luZ2ggW21haWx0 bzpheXVzaGRldmVsMTMyNUBnbWFpbC5jb21dDQo+PiAqU2VudDoqIEZyaWRheSwgSnVuZSAxMCwg MjAyMiwgMTI6MjIgQU0NCj4+ICpUbzoqIEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+DQo+ PiAqQ2M6KiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPj4gKlN1YmplY3Q6KiBbZWRrMi1kZXZlbF0g Q2xhcmlmaWNhdGlvbiBvZiBNZW1vcnkgbWFuYWdlbWVudCBpbiBQRUkgcGhhc2UNCj4+DQo+Pj4g VGhhbmtzIGZvciB0aGUgd29uZGVyZnVsIGFuc3dlci4NCj4+Pg0KPj4+IEF5dXNoIFNpbmdoDQo+ Pj4NCj4+PiBPbiBUaHUsIEp1biA5IDIwMjIgYXQgMDE6MjY6NTggUE0gLTA3MDAsIEFuZHJldyBG aXNoIA0KPj4+IDxhZmlzaEBhcHBsZS5jb20+IHdyb3RlOg0KPj4+Pg0KPj4+PiAgICAgT24gSnVu IDksIDIwMjIsIGF0IDEwOjI4IEFNLCBBeXVzaCBTaW5naA0KPj4+PiAgICAgPGF5dXNoZGV2ZWwx MzI1QGdtYWlsLmNvbXdyb3RlOiBIZWxsbyBldmVyeW9uZSwgQ2FuIGFueW9uZSBoZWxwDQo+Pj4+ ICAgICBtZSB3aXRoIHVuZGVyc3RhbmRpbmcgZHluYW1pYyBtZW1vcnkgbWFuYWdlbWVudCBpbiBQ RUkgcGhhc2U/DQo+Pj4+ICAgICBJbiB0aGUgVUVGSSBQbGF0Zm9ybSBJbnRlZ3JhdGlvbiBTcGVj aWZpY2F0aW9uLCB2ZXJzaW9uIDEuNw0KPj4+PiAgICAgRXJyYXRhIEEsIFNlY3Rpb24gNC42LCBQ RUkgTWVtb3J5IHNlcnZpY2VzIGFyZSBnaXZlbiB3aGljaA0KPj4+PiAgICAgaW5jbHVkZTogMS4g SW5zdGFsbFBlaU1lbW9yeSgpIA0KPj4+Pg0KPj4+PiBUaGlzIGlzIGJhc2ljYWxseTogKCpQZWlT ZXJ2aWNlcyktPkluc3RhbGxQZWlNZW1vcnkgKFBlaVNlcnZpY2VzLCANCj4+Pj4gTWVtb3J5QmVn aW4sIE1lbW9yeUxlbmd0aCk7IFRoaXMgaXMgaG93IHlvdSB0ZWxsIHRoZSBQRUkgQ29yZSB0aGUg DQo+Pj4+IGxvY2F0aW9uIG9mIHRoZSBtZW1vcnkgdGhhdCB3aWxsIGNhbiBiZSB1c2VkIGluIFBF SS4NCj4+Pj4NCj4+Pj4gICAgIDIuIEFsbG9jYXRlUGFnZXMoKSAzLiBBbGxvY2F0ZVBvb2woKSA0 LiBDb3B5TWVtKCkgNS4gU2V0TWVtKCkNCj4+Pj4gICAgIDYuIEZyZWVQYWdlcygpIEhvd2V2ZXIs IG5vIGBGcmVlUG9vbCgpYCBzZXJ2aWNlIHNlZW1zIHRvIGJlDQo+Pj4+ICAgICBwcmVzZW50LiBT byBob3cgaXMgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgdXNpbmcgYEFsbG9jYXRlUG9vbCgpYA0KPj4+ PiAgICAgZnJlZWQ/IA0KPj4+Pg0KPj4+PiBJdCBiYXNpY2FsbHkgZ2V0cyBGcmVlZCB3aGVuIHlv dSB0cmFuc2l0aW9uIHRvIHRoZSBEWEUgcGhhc2UuIFRvIA0KPj4+PiBzdGVwIGJhY2sgZm9yIGEg bWludXRlIEkgdGhpbmsgaXQgaXMgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRoYXQgdGhlIA0KPj4+ PiBtYWluIGpvYiBvZiBQRUkgaXMgdG8gaW5pdGlhbGl6ZSBEUkFNLCBhbmQgZGVhbCB3aXRoIFMz IChyZXN1bWluZyANCj4+Pj4gZnJvbSBzdXNwZW5kIHRvIFJBTSkuIFNvIGFzIHNvb24gYXMgeW91 IGhhdmUgRFJBTSB5b3UgYXJlIGtpbmQgZG9uZSANCj4+Pj4gYW5kIHJlYWR5IGZvciB0aGUgRFhF IElQTCBzbyB5b3UgY2FuIGxvYWQgdGhlIERYRSBQaGFzZSBhbmQgc3RhcnQgDQo+Pj4+IHVwIEVG SS4gUmVtZW1iZXIgUEVJIGlzIFByZSBFRkkuIFRoZSByZWFsaXR5IGlzIHByb2dyYW1taW5nIERS QU0gaXMgDQo+Pj4+IGNvbXBsZXggYW5kIGxvdHMgb2YgY29kZSBnb3Qgd3JpdHRlbiwgdGhlbiBs b3RzIG1vcmUgY29kZSBnb3QgDQo+Pj4+IHdyaXR0ZW4gYW5kIFBFSSBoYXMgYmVjb21lIGxhcmdl IGZvciBzb21lIHBvcnRzLiBUaGF0IHdhcyBuZXZlciB0aGUgDQo+Pj4+IGludGVudC4gUEVJIGlz IGRlc2lnbmVkIGFzIGEgd2F5IHRvIHJ1biBDIGNvZGUgd2hlbiB5b3UgY29kZSBpcyANCj4+Pj4g cnVubmluZyBmcm9tIFJPTSBhbmQgeW91IGRvbsSB77+977+9dCBoYXZlIGFueSBEUkFNLiBGb3Ig eDg2IG5vdCBoYXZpbmcgDQo+Pj4+IERSQU0gbWVhbnMgeW91IGFyZSB1c2luZyB0aGUgY2FjaGUg YXMgUkFNLiBGb3Igc29tZSBTb0NzIHRoZXJlIGlzIA0KPj4+PiBhY3R1YWxseSBhbiBTUkFNIHlv dSBjYW4gdXNlLiBUaHVzIHRoZSBQRUkgbWVtb3J5IGFsbG9jYXRpb24gc2NoZW1lIA0KPj4+PiBp cyBkZXNpZ25lZCB0byBkZWFsIHdpdGggdGhpcyB2ZXJ5IGNvbnN0cmFpbmVkIGVudmlyb25tZW50 LiBZb3UgDQo+Pj4+IHN0YXJ0IFBFSSB3aXRoIGEgaGVhcCBhbmQgc3RhY2suIFlvdSBjYW4gYWxz byBhbGxvY2F0ZSBIT0JzIChIYW5kIA0KPj4+PiBPZmYgQmxvY2tzKS4gQSBwb29sIGFsbG9jYXRp b24gaW4gUEVJIGlzIGp1c3QgYSBIT0IuIFNlZSBbMV0uIFRoZXJlIA0KPj4+PiBpcyBubyB3YXkg dG8gZnJlZSBhIEhPQi4gU28gdGhlIEFsbG9jYXRlUG9vbCgpIGtpbmQgb2YgbGVha3MgaW50byAN Cj4+Pj4gRFhFIHRvbyBhcyBhbiBlbnRyeSBpbiB0aGUgSE9CIGxpc3QuIEJ1dCB3aGVuIHRoZSBP UyBjYWxsZWQgDQo+Pj4+IGdCUy0+RXhpdEJvb3RTZXJ2aWNlcygpIHRoYXQgZnJlZXMgYWxsIG5v biBydW50aW1lIG1lbW9yeSBiYWNrIHRvIA0KPj4+PiB0aGUgT1MuIElmIHlvdSBsb29rIGEgQWxs b2NhdGVQYWdlcy9GcmVlUGFnZXMgeW91IHdpbGwgc2VlIA0KPj4+PiBBbGxvY2F0ZVBhZ2VzIGNy ZWF0ZXMgYSBIT0IgdGhhdCBwb2ludHMgdG8gdGhlIG1lbW9yeSByZWdpb24sIGFuZCANCj4+Pj4g RnJlZVBhZ2VzIGp1c3QgbWFya3MgdGhhdCBIT0IgYXMgbm90IHVzZWQuIFRoYXQgY29kZSBpcyBh bHNvIGluIA0KPj4+PiB0aGlzIGZpbGUgWzFdLiBUTDtEUiB0aGVyZSBpcyBubyBwb29sIG1hbmFn ZXIgaW4gUEVJLiBbMV0gDQo+Pj4+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9i bG9iL21hc3Rlci9NZGVNb2R1bGVQa2cvQ29yZS9QZWkvTWVtb3J5L01lbW9yeVNlcnZpY2VzLmMj TDg3OCANCj4+Pj4gVGhhbmtzLCBBbmRyZXcgRmlzaA0KPj4+Pg0KPj4+PiAgICAgQXl1c2ggU2lu Z2ggDQo+Pj4+DQo+Pj4gDQo+DQpCcmlhbg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgICJUaGVyZSBp cyB0aGUgZ3JlYXRlc3QgcHJhY3RpY2FsIGJlbmVmaXQgaW4gbWFraW5nIGEgZmV3IGZhaWx1cmVz DQogICAgIGVhcmx5IGluIGxpZmUuIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtLSBUaG9tYXMgSGVucnkgSHV4bGV5DQoNCg== --------------oY1Gxof8UzWE1AKajNETNJxm Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Andrew,

Yes, adding a new HOB type to represent free pool would probably be the easiest.

Or we could write or borrow a traditional malloc() implementation, similar to DXE's pool allocator, and back it with memory from AllocatePages().  That would probably have better performance, and would avoid fragmenting the pool memory when non-pool HOBs are added.  It would probably be more code, though.

Brian J. Johnson

From: Andrew Fish [mailto:afish@apple.com]
Sent: Wednesday, June 22, 2022, 3:54 PM
To: Brian J. Johnson <brian.johnson@hpe.com>
Subject: [edk2-devel] Clarification of Memory management in PEI phase
=20 Brian,

I think all the PEI Allocate Pool does is make a HOB [1]. I don=E2=80=99t think we can remove HOBs when memory is freed = as that would change  pointers to pool. It may be possible to mar= k a region as free and allocate from that list batch 1st, and just over allocate space if needed. It could be as simple as just adding a new HOB type to represent free pool. 


[1] https://github.com/tianocore= /edk2/blob/master/MdeModulePkg/Core/Pei/Memory/MemoryServices.c#L878

Thanks,

Andrew Fish

On Jun 22, 2022, at 12:39 PM, Brian J. Johnson <brian.johnson@hpe.comwrote:
Sorry for the late response to this thread...

PEI has grown greatly in complexity, as Andrew pointed out.  Do we (TianoCore community) think it's time to add a real pool manager to PEI? = ; There's getting to be quite a bit of post-DRAM-initialization PEI code on some platforms.  And really, having a limited amount of pre-DRAM memory available is an even better reason for having an effective pool allocator, so the memory can be freed and reused.

FWIW we (HPE) needed to add a private pool allocator to manage memory for a proprietary h/w initialization module which needs to run in post-DRAM PEI, and depends on allocating and freeing memory in different phases of its operation.

Brian J. Johnson


Sent: Friday, June 10, 2022, 12:22 AM
To: Andrew Fish <afish@apple.com>= ;
Subject: [edk2-devel] Clarification of Memory management in PEI phase

Thanks for the wonderful answer. <= /div>

Ayush Singh

On Thu, Jun 9 2022 at 01:26:58 PM -0700, Andrew Fish <afish@apple.com> wrote:
On Jun 9, 2022, at 10:28 = AM, Ayush Singh <ayushdevel1325@gmail.comw= rote: =20 Hello everyone, =20 Can anyone help me with understanding dynamic memory management in PEI phase? In the UEFI Platform Integration Specification, version 1.7 Errata A, Section 4.6, PEI Memory services are given which include: =20 1. InstallPeiMemory()
This is basically: (*PeiServices)->InstallPeiMemory (PeiServices, MemoryBegin, MemoryLength= ); This is how you tell the PEI Core the location of the memory that will can = be used in PEI.=20
2. AllocatePages() 3. AllocatePool() 4. CopyMem() 5. SetMem() 6. FreePages() =20 However, no `FreePool()` service seems to be present. So how is the memory allocated using `AllocatePool()` freed? =20
It basically gets Freed when you transition to the DXE phase.=20 To step back for a minute I think it is important to remember that the main= job of PEI is to initialize DRAM, and deal with S3 (resuming from suspend = to RAM). So as soon as you have DRAM you are kind done and ready for the DX= E IPL so you can load the DXE Phase and start up EFI. Remember PEI is Pre E= FI. The reality is programming DRAM is complex and lots of code got written= , then lots more code got written and PEI has become large for some ports. = That was never the intent. PEI is designed as a way to run C code when you = code is running from ROM and you don=C4=81=EF=BF=BD=EF=BF=BDt have any DRAM= . For x86 not having DRAM means you are using the cache as RAM. For some So= Cs there is actually an SRAM you can use. Thus the PEI memory allocation sc= heme is designed to deal with this very constrained environment.=20 You start PEI with a heap and stack. You can also allocate HOBs (Hand Off B= locks). A pool allocation in PEI is just a HOB. See [1]. There is no way to= free a HOB. So the AllocatePool() kind of leaks into DXE too as an entry i= n the HOB list. But when the OS called gBS->ExitBootServices() that free= s all non runtime memory back to the OS.=20 If you look a AllocatePages/FreePages you will see AllocatePages creates a = HOB that points to the memory region, and FreePages just marks that HOB as = not used. That code is also in this file [1].=20 TL;DR there is no pool manager in PEI.=20 [1] https://github.com/tianocore/edk2/blob/master/MdeModule= Pkg/Core/Pei/Memory/MemoryServices.c#L878 Thanks, Andrew Fish
Ayush Singh =20 =20 =20 =20 =20
=20

Brian

---------------------------------------------------------------------------= ---------------------------------------------------
   "There is the greatest practical benefit in making a few=
 failures
    early in life."
                                           -- Thomas Henry Huxley
--------------oY1Gxof8UzWE1AKajNETNJxm--