From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.10308.1676020344639445825 for ; Fri, 10 Feb 2023 01:12:24 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=PBeOGb1O; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: yuanhao.xie@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676020344; x=1707556344; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=QttYhCkTrgscbxRetgyU4hDOwTNecPz3nyEHO1OU+so=; b=PBeOGb1OTiZaMx58+vJwOHMg4EXT1y+4qqcoo5l8oiwrOqJzoTSHE30S TYzURh9ighsapMoZbuhSVFNBI4UdnkKkiO8I2Bf7Qi0tBHGISOBHPuM15 c5P7plbV5bjLX5ZR3TEfu0t8LLDsgKnVeEwikmpOKbi29GncBWHcxLHmI yUOKOybwKgoYdZwNCxKNu0Y6FICqDJo8cvvdk3TGznTi6G1slIT104s5F ItkcA4WExdFbYeUyCRDCk3mHz9y/lorwSgNe6+jN6+KKGXkt2QP3ow26P dIRMLa8AF+4ixxsC5l/Z1JvMrBe5TElKqCUHzU6mhi8dTSHSeDRxTa3vd g==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="331678226" X-IronPort-AV: E=Sophos;i="5.97,286,1669104000"; d="scan'208";a="331678226" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 01:12:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="698366137" X-IronPort-AV: E=Sophos;i="5.97,286,1669104000"; d="scan'208";a="698366137" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga008.jf.intel.com with ESMTP; 10 Feb 2023 01:12:12 -0800 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.16; Fri, 10 Feb 2023 01:12:11 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.16 via Frontend Transport; Fri, 10 Feb 2023 01:12:11 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.49) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Fri, 10 Feb 2023 01:12:11 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MOve9vFQV4R6X9AZ3s1Qt0U2Ps1KpNwPVl7X5C5Epz9K3/4QThRaQQQDq+cPpAVgcwnpSm/kBbfezHAOx8UiiZAJnmOr9a12rIaLchdos47aamouacRPofnwhAAuz6gl0elXmFuADwTYZiEd/m0pFR1pPfTwvUVOQO1koW8+SQkYYLwzkiAzsXyC+nS5lBR94qX6Vy/8A+ag2jcWzJdSAPardQqFGuFBMadbAPLG/6lOsokUBdlO1U5oQFTHMpCLvqWyUZiR491f3Iy1cOdTvseCnKLDR6xH2AQ/Vc5jOSrE4kcwBi/eYBod5h9Kxe0vS59IEweVdWYFYBJSMe+sOg== 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=bLq3K58TsAr7e4UqT8DTjIZSTtC2YyX9493V7Qfn6kM=; b=kGZIwuPgXWVjkJJ1W/JCBjJ8HMxpsj2Po4atG5KF3E6+IdMezNMe9nSZlFM5LpFKvMOst+bXhJiADH+uuvE/INAMFqRVlbh9ntEXCtTIKk6d4vR1vudahbQx3wSXBz0WNHq9Kaug8ayZNIFasDSyVEusNU+nQ1QaRW11+d/slKoUq2Fkc65urS6upHGnO/10ANBjG4B42f6VoKgiU9KeZl34WawBTwrGDdVsUjre2Y7Cwd4RfJ39r0hfdqRT8OMjFWaBmltgke9WcJN6YzNU2OHBZ0MPFrkcGnkBYQ5us/MfiBE7R9ZRfQSZWDhDmY0TuAPe13gyuZX8F/xg7VU+PQ== 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 CO1PR11MB5026.namprd11.prod.outlook.com (2603:10b6:303:9c::13) by IA1PR11MB6098.namprd11.prod.outlook.com (2603:10b6:208:3d6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.23; Fri, 10 Feb 2023 09:12:09 +0000 Received: from CO1PR11MB5026.namprd11.prod.outlook.com ([fe80::5233:d7c6:4aeb:5caa]) by CO1PR11MB5026.namprd11.prod.outlook.com ([fe80::5233:d7c6:4aeb:5caa%5]) with mapi id 15.20.6086.021; Fri, 10 Feb 2023 09:12:09 +0000 From: "Yuanhao Xie" To: Gerd Hoffmann CC: "Dong, Guo" , "Ni, Ray" , "Rhodes, Sean" , "Lu, James" , "Guo, Gua" , "devel@edk2.groups.io" Subject: Re: [edk2-devel] [PATCH 2/5] UefiCpuPkg: Contiguous memory allocation and code clean-up. Thread-Topic: [edk2-devel] [PATCH 2/5] UefiCpuPkg: Contiguous memory allocation and code clean-up. Thread-Index: AQHZO63SlCxHJz6eFUSg2RFe+/Y1F67HjwwA Date: Fri, 10 Feb 2023 09:12:08 +0000 Message-ID: References: <20230207134939.273-1-yuanhao.xie@intel.com> <20230207134939.273-3-yuanhao.xie@intel.com> <20230208110933.bho5lybb6evnqcoh@sirius.home.kraxel.org> In-Reply-To: <20230208110933.bho5lybb6evnqcoh@sirius.home.kraxel.org> 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: CO1PR11MB5026:EE_|IA1PR11MB6098:EE_ x-ms-office365-filtering-correlation-id: 03dc8ab5-c4bd-4dcf-e45b-08db0b46e2b1 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: EDENH/+QNkG5QsqsGC+GvyQNFXkt+e1QNkyJi1qTc+wEytlgqa1XxW/8rkRdciixMxg8iDaV5D0u2YCC4SvHHRhybx4qvtY+jlMSAyJBu6szfgSTX00DwGZMMIrF4LXFkddbtCbwLtAJ0cNmsbisDcAszruxCLkZFL3JbhKTjkWKtKS7UF7UhnCh4gGyKI945HPqJHjtzL+j3j0Vcv4coEddGmUTQT8uDlFfne0CsO9m3bOFdI4K8WQ7wNNmOuWfJu3YLe2sCbMPMvOgJd48hkrKyQCp89dqUi9MiQkBVeIf+ubzo9OZNJwnEZ5Trqp/Z6+JUCLbw8aJnwkqym+l5aHAPe9ZMp1NwdHKf1DscJOs02V4MA42TC4AGlIZ8LbZPWPRPRsGALd+GxBhu2UdkCL0xMsCXeQkA4+HLt56ohP2gVt70M0/o9CTL+FSuAbRUYBm0jntyy6Uic7+3oV9tlYjENR9TS7Nas5jxfeMnEv9iOG44lorcDt8NIWrV5LnrPnhJaBDZUW9gEdIOMKvWwDuzZjaGGRrw9xVm+53qu0kHsGJhugTokStbnU2X86jCw0Kb8fiItTg1Vn1LA6VgdKN+vuB080rjLyFq1C33Hk/uaAE4cuwAnUIUFg04f6/ReOPn2W+yHI44RGpLZQOFXa7O0d5OH6NG1eUhznZ5J78+vhWnGy6o3VG/a02tt515SUCcWhnbt9PVsZXLxly1A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB5026.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(366004)(136003)(346002)(376002)(396003)(39860400002)(451199018)(478600001)(7696005)(186003)(71200400001)(9686003)(6506007)(26005)(52536014)(82960400001)(41300700001)(8936002)(38100700002)(8676002)(83380400001)(66446008)(33656002)(4326008)(122000001)(76116006)(66946007)(66476007)(6916009)(64756008)(316002)(53546011)(66556008)(5660300002)(55016003)(2906002)(38070700005)(54906003)(86362001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?gMJzqkJJ4wyo3wkQQCDmOJMbSNpjHc2dZN8KQ6QRbXwvsrl4vmGGUm8+UXx8?= =?us-ascii?Q?H+YAAemEbzAn70AFAEzjW2EfPpOFIaysoQIjyhGNIig0becj6ct+ArwLjFGT?= =?us-ascii?Q?vWzy+gzfGZclVFxqkjTuP4+ALs1T//1C67N8qLqKch+MTbHB11vJWFZGvd+u?= =?us-ascii?Q?yD+WYGXsJT4dNDSn+98Es18GJSq2reJ/23wCXYtaVqOGIOka8G72eF73viIZ?= =?us-ascii?Q?IPcgLfXQC4FuzxjX0iDJtEg25Di5flJqzFPx6iEzikC/FgHiSspIOqfK+Oql?= =?us-ascii?Q?fjgzbasg54zhI3crEH2fbUnMunpzUL7rpeR/6P++G3VQLQHRtcxBznRrt4U9?= =?us-ascii?Q?lWeV7KrlLBcAk2ptRlV25S7hDbt6JKCHhRJJ8MUnXUwejopAwQwTovyLA3oV?= =?us-ascii?Q?o6nxhbp8i+mNbJGGVFLyHoMnXOdCFC5ublX7c0/OKtu3lSqMwLb0S8uTY1Eg?= =?us-ascii?Q?GZTSFvJHmJ8gieiINcKEZADTfYBr7tFsk5YlGVTt42aGk9EcLC2kGctXCXlU?= =?us-ascii?Q?rYSLg1Ug4DvCwQS1U4zDXvaFnI8j/B90a4hOCXe8rK6X6h2T6wdoj3rqvTDo?= =?us-ascii?Q?U7KkSJNOpOp6TToIDC/GEf/u23kWJDELTmUO2VLYgOENN9mfFOTt55ac2Nj/?= =?us-ascii?Q?XyZL+a5fOQ11fU+uU6RzK8mQQCOIAORiZVrYc3p4ZDe9NCRochTkyOAHomo/?= =?us-ascii?Q?zFjWR7/RcfVSIuXbtSWEQuIPHFGJ/sF2UA1r4k2cbOTJ7cPuXFdO+2m3Q3bz?= =?us-ascii?Q?7tGSR0TQXm/gG2BitKfTdSTuQIGxvYwW1Ye4tLu+F48QYDV1AXbyL9h+vvF2?= =?us-ascii?Q?NfRSGxqQAV1jX/nudIIA4nvvTpBLYMza16mY5gg+zgzKUFjDEJDvYu3OQOzS?= =?us-ascii?Q?QBZCY+s2x5830Q0DJXiXuee59Yd+Fsf94/deDwvM6lUfwb0HitC4m8wREZlT?= =?us-ascii?Q?sS4pLlXiFu82/1BfdCnAzIl/BmVz/9npLTbpSGQGv1L22RmN3OF9GNC6pn/9?= =?us-ascii?Q?szr6rQvEWTfXksvHT554d0rC1D4Ihhay/OnYmOLUY0INk66/+ZGb4mWhD2pF?= =?us-ascii?Q?vgGVqhNbmlrFrnk6pDNBxRp8eJWg3Cl1ISe5MZ1XJxnlqly+DZvW7KUjAYTv?= =?us-ascii?Q?QXdHMsz8Uy199bkKtPnJo+KwWh5RRgdBJg5w7U1tddwhoyUwkJh0Ze3n+M7C?= =?us-ascii?Q?+DK/E6cTj/nodLDpo0HANQTUTf/VjjKV3J1QNa56XmZ6gUi8f2IXueZJN7/U?= =?us-ascii?Q?CsgAtLnz0t2r2+HUtVSs5l8Onjk/OoFlz50bpir/4g2rybrI2c8fs8tRB5Ej?= =?us-ascii?Q?VHLmR+qWtHmOJGrD27NLWihLJ+NTkFT8CYvI23quGEzyVNrZtgxOUEMAM4PY?= =?us-ascii?Q?uz9PQT78pRBy+ZqHqmwoiAu8QoIomQXcD0JKGTXgrDqduCQzrwyafH857r7g?= =?us-ascii?Q?RZWJXtBMdbr9sZUPpurQYfBz1PwBOknBOYoRpZ7UmPJL5qPi0rmGryTUpBjU?= =?us-ascii?Q?DWMP2GaULMfuUbWnm+Ttw3YdnM9vPL7ayyOvvguQL1lvZuJUhKDK7ri4Tvng?= =?us-ascii?Q?1t151iUEYTfXnU2S5PgVnY/Y8BiexqAlAZ5tI29c?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB5026.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03dc8ab5-c4bd-4dcf-e45b-08db0b46e2b1 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2023 09:12:08.1513 (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: y0WTJzlsdflHtkLZAd/LWKtvtb4WQDCMm9KKEbF1aQ+egjXzyfwa4jJsQjv3R94H5qsAfAFsOedIOgc/ANRjHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6098 Return-Path: yuanhao.xie@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Gerd, 1) You convert size to pages, pages to size, size to pages again. Agree. I will update it. 2) Also you don't want stack and code being on the same page Patch 5 ensures that stack and code are in different pages and also ensure = alignment. I will update it patch2 as well in v2. 3) The special case you have to handle is not running on a AMD Processor, b= ut AmdSev being active (i.e. UseSevEsAPMethod =3D=3D True). Otherwise it s= hould be just standard Ia32 and X64, there should be no need to check whenever you are running on = a AMD processor. I understand your point, but for both cases (check AmdSev, standard Ia32 an= d X64), AMD related code will be changed. We would like to keep the origina= l implementation as much as possible. Best regards, Yuanhao=20 -----Original Message----- From: Gerd Hoffmann =20 Sent: Wednesday, February 8, 2023 7:10 PM To: devel@edk2.groups.io; Xie, Yuanhao Cc: Dong, Guo ; Ni, Ray ; Rhodes, Sea= n ; Lu, James ; Guo, Gua Subject: Re: [edk2-devel] [PATCH 2/5] UefiCpuPkg: Contiguous memory allocat= ion and code clean-up. > + AllocSize =3D EFI_PAGES_TO_SIZE ( > + EFI_SIZE_TO_PAGES ( > + CpuMpData->CpuCount * AP_SAFE_STACK_SIZE + ApLoopFuncS= ize > + ) > + ); > + Status =3D gBS->AllocatePages ( > + AllocateMaxAddress, > + EfiReservedMemoryType, > + EFI_SIZE_TO_PAGES (AllocSize), > + &Address > + ); Hmm? You convert size to pages, pages to size, size to pages again. Also you don't want stack and code being on the same page, so I guess the l= ogic you actually need is this: StackPages =3D EFI_SIZE_TO_PAGES(CpuMpData->CpuCount * AP_SAFE_STACK_SIZE);= FuncPages =3D EFI_SIZE_TO_PAGES(ApLoopFuncSize) gBS->AllocatePages(..., StackPages + FuncPages, ...); > +// > +// Union holds the relocate APs loop entries for different cases //=20 > +typedef union { > + VOID *Data; > + ASM_RELOCATE_AP_LOOP_AMD64 Amd64Entry; // 64-bit AMD Processor > + ASM_RELOCATE_AP_LOOP GenericEntry; // Intel Processor (32-bit= or 64-bit), or 32-bit AMD Processor > +} RELOCATE_AP_LOOP_ENTRY; I'm sure I've mentioned this before. The special case you have to handle i= s not running on a AMD Processor, but AmdSev being active (i.e. UseSevEsAPM= ethod =3D=3D True). Otherwise it should be just standard Ia32 and X64, there should be no need to check whenever you are running on = a AMD processor. take care, Gerd