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.4654.1674004437482596880 for ; Tue, 17 Jan 2023 17:14:01 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=kC8KCpDZ; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: zhiguang.liu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1674004437; x=1705540437; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=nyP2/RRCUwI4wJvsA/9ESwUp07RgwhoruI7iWTMHxtA=; b=kC8KCpDZN5lC/6VSlRvzyaUr3P1wpXyWGCmfM5j0TnjvrsZvrTrHSsRo 2LSXUNS/Bp1mTEfSTYYIi0HBgC7TV86sLdT3cRt8y6qYeBgdARAg4t6oR gnAl29VTd3UUF0L1RaTFkhdAOlm7jJhfDCXAJUGZT3Ri9/mep1Gb2qLeA RmC19Am3S1aPCbykPgNbK6ViqZ6eZERfXAZYToA8UfKmmHBXDyo859dRB NWsroNSaWT0mWKBC+Yk5Tmxk9+vnuvIzWF6+L9eArCqz4NR21u5LqEnxz EgVn3/L3MFoClmUsu0ONB8Ne63wtW5SmDvJccymq5KYFUD1/G4nqtAGUn g==; X-IronPort-AV: E=McAfee;i="6500,9779,10593"; a="326141260" X-IronPort-AV: E=Sophos;i="5.97,224,1669104000"; d="scan'208";a="326141260" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2023 17:13:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10593"; a="748249245" X-IronPort-AV: E=Sophos;i="5.97,224,1669104000"; d="scan'208";a="748249245" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by FMSMGA003.fm.intel.com with ESMTP; 17 Jan 2023 17:13:47 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.16; Tue, 17 Jan 2023 17:13:46 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 17 Jan 2023 17:13:46 -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; Tue, 17 Jan 2023 17:13:46 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.171) 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; Tue, 17 Jan 2023 17:13:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PmzpOlpEt1WAWud4XNzgjanojQ+hSSanFq4aT6YRWFPJK5JRmZoEe+LuAe17z5Y6clBdVMZH/z+bBagLRyUUPlxvdOj45Bg4xdFZ2kStRcVPwBBwfJjkayXC3OB5PXusTIqtGoDVXBjwh/UT0vTFGufvenNKp3FEsuYQA1k59nTQm4r7cN+VA42AsrmMysT5mzCJLJ5ucsWElFQYIoY/7rl20AzOCM2yifcuMZB1mEmVrgxIaPKMDAgISYg6BoQRL5iRwGEPN7TJfxhClU0Zi0DLqCMCBGRWsgAqcgLEakXft1WDZj9FOvHScQFFmUuS6iF/w8uE1teME2pcg4Ckdg== 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=AnDP91GEPiE1VNRF+hYJ/qqSp6WDRw5Qv44k8fjzF2E=; b=c8z2HcTqWWs73jQX97Qkk5mjERjWPJR6d8J5iEZJGU/AraJ45KNJcoekXQrB5L53DthnL0hGGGQTIcvHyFFesQGJQhHyWhL8MoW0zITLl39ZxWMZNtb4NBgCo+StWdYjTogOQJraOASWdzimpH+GLwBWP3RyRvzGlzk7XPACY8DQhjsr6MxgIZPe1VprpkpQdpuzBLKMlzlDwF+2m4euJfOmvOk2wMwjM6K4huvMS8XlKKVYPQp0EYZd+9SfnX8xnQXi3bYMxGl1nGZi5Lq8K+20mhw49AIEzUanlBAD5xZ8+kwBpZIgiWlN1TviaFRQH6XCGn8+EzYZlh9YDCHkRg== 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 PH0PR11MB5048.namprd11.prod.outlook.com (2603:10b6:510:3d::14) by CH3PR11MB7180.namprd11.prod.outlook.com (2603:10b6:610:148::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.23; Wed, 18 Jan 2023 01:13:43 +0000 Received: from PH0PR11MB5048.namprd11.prod.outlook.com ([fe80::f382:d721:8364:480d]) by PH0PR11MB5048.namprd11.prod.outlook.com ([fe80::f382:d721:8364:480d%7]) with mapi id 15.20.5986.023; Wed, 18 Jan 2023 01:13:43 +0000 From: "Zhiguang Liu" To: "Ni, Ray" , "devel@edk2.groups.io" , "kraxel@redhat.com" CC: "Kumar, Rahul R" , "Dong, Eric" , "Zeng, Star" , "Wu, Jiaxin" Subject: Re: [edk2-devel] [PATCH] UefiCpuPkg: Fix SMM code hangs when InitPaging Thread-Topic: [edk2-devel] [PATCH] UefiCpuPkg: Fix SMM code hangs when InitPaging Thread-Index: AQHZH/9PcZDp7HKPPE2cfzkOA0v3C66iZLqAgAA1ooCAAAmpgIAAyQag Date: Wed, 18 Jan 2023 01:13:43 +0000 Message-ID: References: <20230104054118.280-1-zhiguang.liu@intel.com> <20230117121359.52rxmec7dv6gfksa@sirius.home.kraxel.org> In-Reply-To: Accept-Language: en-US, zh-CN 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: PH0PR11MB5048:EE_|CH3PR11MB7180:EE_ x-ms-office365-filtering-correlation-id: e0a9d148-295a-467b-be44-08daf8f13dfb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mxbREKxz0ygjV8ohUt41uK5pgPKxl0ljTEbbPNnNcWhoBULFbVoSjSX/U9v1fBi8sHVmedcvk62BifZenUEfc5VDGjBTD8LkNySlgxc4pI3vewxUggYrk+Z18nS52H0I7ACTGRRPVPiHYs2zseyXSPWNFD9La9mtRG+40aSN3jcvqMPbOApauQTClcpmnDZ/9uLGEji4eV18zXLvTmnYX/67eH1fybZoIun+6grAT0Rmkx/3NyiWhsvgMxRDUhVcijyPV1VcX+fio7Pa/10ZJjCFwQCNXnUhgl4mc0RKb8jkdvrrVo+/TbZS/Q1fffi2XGD9Lq2w5La6AsckrSy8tzi2NlDhNRIfdF5j55AYYPu97MYuzE5DFr5QdjFFtZCkNZICLMeFDGHszT+9QmtcIaeCUmL5+Wy37t6iYQs+XR5qPjzm5XLNWqczmpoNbHH/ah06tM8sEM97BQraqWyFI0VllzHHhTYXP0xvR+ox3/mrsQG9NNu64Vg3SgoVGoML495WMBKgHZdg6/dfVHndCc4cSELr3cklIiqOSYKnmnR1vJ0uR798Yk4us5bN5MeAZC4hILsI12FODXdsbC1sJVJdHuvHPtxvptSPF6uGeI57ZNtvOJ68Dzh/UCWTPGgkqOqeyiD1Eoq1nI2yCpgJ6R4TdvdKWBsXwu6KN/EhRKBOWJ0/VpDt87IAYRSntzn/JIJmepUzW8ZeYe+7Gjw9KYisaUJ2+HB/8b7ITtq9RUkMV43d3v4ac6j1gE8N4QwUVoBJKYx+mjIP8rjjXB74vQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5048.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(376002)(346002)(366004)(39860400002)(396003)(451199015)(33656002)(478600001)(55016003)(110136005)(9686003)(7696005)(54906003)(71200400001)(966005)(6506007)(122000001)(2906002)(26005)(52536014)(53546011)(107886003)(316002)(41300700001)(5660300002)(19627235002)(64756008)(66556008)(66446008)(76116006)(8936002)(8676002)(66946007)(66476007)(4326008)(186003)(38070700005)(38100700002)(86362001)(82960400001)(83380400001)(66899015);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?erJE9uUpIYSHZWGfvGlisopbRjXH4lEImtXJKylvvUpgdNxqYsD+ZLTvXLwZ?= =?us-ascii?Q?OozNQTjMR2vI7mWQzcbHR32xvodGHW8HrxQ/EEMIbDAjPaGqd6NPQz2OzQ15?= =?us-ascii?Q?VKfS6aC2j7SbVbpsvsV6hMhpX4oOETQmY0XLprBC7bSw/34jQnaHdtOaSot8?= =?us-ascii?Q?C2f26y7tPIPK553kW72UgUAZyVuBNxWhplDMInh2U0BTEkYZ77aWh1OQ5W0T?= =?us-ascii?Q?3E91o4SXEi5uUN7udQGzFnD2A+4vGeIhebQgym6qglzZy7eR8doq5oXSO544?= =?us-ascii?Q?KGPV6tlgO4ACqeVjrzvSRNv67GUhMiKGTO20gvT2CaE3pB7wWgYl+GGSi6xY?= =?us-ascii?Q?L71M22+zKN/3d+t7ceIUvPbo1f7qLsh0vJWZFV9pbqWVRnCk40k1U8WTkJbB?= =?us-ascii?Q?6BnP2n8lMP8f8qfvrY2GTvewx3eC4K9bnGe9gNzG0gSnji7HBJo7X+vQg6lY?= =?us-ascii?Q?sd8U/jTJW+HrkmZvesf53iqZsj+ZnqUqRG8sHit9DsA5MqDXxqUVOCwqW3SA?= =?us-ascii?Q?Irxh0kmgtLCu7Mur4hfz/TJ1UDP0lRij+slFvQ3btpPP7qZvJCB5SzqXlM2p?= =?us-ascii?Q?YeCV1a/OZlB9D1kpN/SvhZh5cinz2IcCjr1BD4JJu4rSaaFAmio0jG9awyLP?= =?us-ascii?Q?ltiRqbwaGSmnH3qewH4FFzqSIW7p2d/jjzyqEcVg+AIJbjG1Nb7sEz8+4TYU?= =?us-ascii?Q?6P/8MiwqzarrKLkg2VfokXdBXfGaCw7Gi33S/fInRfOuAyUGPJ3tjStePXzH?= =?us-ascii?Q?VS79DFrrcMBYWfFbuKUFn1zIp2WZ1lLCkIB3n1UnIvLtJM5izf1qGWzo6kOz?= =?us-ascii?Q?7DXNE8NV7B+Vuy96RPfmJJrMFZ10A0MhON8TKZ4/+SwzF/GioRneUfTEfT8M?= =?us-ascii?Q?T006An8VjD7elSvSxZcSHtpB3tWuSM2XSjxj+CKr1zwzt/8N+YUueW08shTV?= =?us-ascii?Q?MWSbtWGskE7FaZDAYDbhwJPGqHIda+W4xcuc45FV7m4WHPKG9ScDkIB3CDsL?= =?us-ascii?Q?VEqtjOaedxW/Z8oQOTe0clwJ3hiKzVutaNBS49R/PNZQlcdQs/cV+js+Ssvp?= =?us-ascii?Q?b7sjZqQLGZue0/AzbeUDOfBlHCkkhbV9STMLm0xVQ0m2YDyQa9SsqciA604o?= =?us-ascii?Q?lE2HA8E515jm1XI17MUKyzEcZusxqjO6+SbkbnvR5PimVYN3kX399eWb8cdL?= =?us-ascii?Q?gGGZFGNnOfvUwNOf3dcR9B2408i4Usa/httHguO+kYHBrVPNS3YPIudH6yXt?= =?us-ascii?Q?BPfWQzIas0FAIh+j4GfGSsk86lzUp4TizhFnADVrvpwC7tgczl9L9CTCcrdg?= =?us-ascii?Q?ULomrBOwv3bg6Sv5G0pLcrPvRN5mU9YQduTuQ5fr8AvlwayldYb03JZi4vsM?= =?us-ascii?Q?DD2KpfBsylCUa/M7bMsuTiY+6bEBZoJyoI2VJqTCgelxqY8LLuF0lTMUZNUw?= =?us-ascii?Q?1Y6GP/3M3eKrKADIYEISqrmBOjCjmL7rKdI6MfqZ8YFgmbBVcQUqhwCKrkgz?= =?us-ascii?Q?ykMbjr9CyPz0YlXjDA8AWwbQgEWJk6zasgjZtd5PSFh/G1zbsW80x7g0k7BY?= =?us-ascii?Q?aqSBE0ykIz6bqS9Hbhq0T5R5SXz28SiZK3q09+m9?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5048.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0a9d148-295a-467b-be44-08daf8f13dfb X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2023 01:13:43.6905 (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: UVwh9EOwgIimGA4sd2ljnJtAYFHSnEKD0lUJLYX0g6nLbin21ATa1Qjimhtpk3T6mg42NDpy4M/NQJpvJElB7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB7180 Return-Path: zhiguang.liu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks all for reviewing, and I will send a new version to address the comm= ent. As for Gerd's question, let me explain. Let's see one example, that the CPU has SizeOfMemorySpace >48, but the CPU = doesn't enable 5 level paging. The purpose of the current function InitPaging is to modify existing page t= able. To use the same logic to handle both 5 level and 4 level paging, for = 4 level paging, the logic will create a false 5 level paging entry to treat= it like a 5 level page table. This way, the number of 5 level paging shoul= d always be one. If we use SizeOfMemorySpace to calculate the 5 level pagin= g entry count, we will get number more than one. However, as I just mentio= ned, we only create one false 5 level paging entry, system may hang when we= try to access the second 5 level paging entry. This patch fixes the issue = by always letting the number of 5 level paging entry as one if 5 level pagi= ng is disabled. Thanks Zhiguang > -----Original Message----- > From: Ni, Ray > Sent: Tuesday, January 17, 2023 8:49 PM > To: devel@edk2.groups.io; kraxel@redhat.com > Cc: Liu, Zhiguang ; Kumar, Rahul R > ; Dong, Eric > Subject: RE: [edk2-devel] [PATCH] UefiCpuPkg: Fix SMM code hangs when > InitPaging >=20 > > > > + ASSERT (SizeOfMemorySpace <=3D 52); > > > > + > > > > // > > > > - // Calculate the table entries of PML4E and PDPTE. > > > > + // Calculate the table entries of PML5E, PML4E and PDPTE. > > > > // > > > > NumberOfPml5Entries =3D 1; > > > > - if (SizeOfMemorySpace > 48) { > > > > + if (Enable5LevelPaging && (SizeOfMemorySpace > 48)) { > > > > NumberOfPml5Entries =3D (UINTN)LShiftU64 (1, SizeOfMemorySpa= ce - > 48); > > > > - SizeOfMemorySpace =3D 48; > > > > } > > > > > > > > + SizeOfMemorySpace =3D SizeOfMemorySpace > 48 ? 48 : > SizeOfMemorySpace; > > > > if (SizeOfMemorySpace > 48) { > > if (Enable5LevelPaging) { > > NumberOfPml5Entries =3D ... > > } > > SizeOfMemorySpace =3D 48 > > } > > > > That is a much more readable version. >=20 > I had the same thought. New version is consistent with the logic below. >=20 >=20 > > > > The only effect I can see is that this avoids creating page tables > > which would not be used anyway. > > > > Can you explain where the hangs mentioned in the subject line are > > coming from and why the patch fixes them? >=20 >=20 > > > > take care, > > Gerd > > > > > > > >=20 > >