From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 3C48D740034 for ; Fri, 1 Dec 2023 08:41:13 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=P0MxQ6Insp9n6zLDEfNoynryJ566neW2rt++XHttynI=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1701420071; v=1; b=FJ8biNPA1rgdeVq3j2PtkRxpc14UQHXGEXmxE6tr2hf08g0rLAYfnrGKBZIBg/1pU3HVGNWs LawRKuqM20XpFINQ1pWkaImNhxX1XzBjm6eJQuIHYGU5am9diXVPzWyppcTA21NoKg/oyLUzlEG YOiMlWuaiN3h/jtW/SJzGqc0= X-Received: by 127.0.0.2 with SMTP id y2QcYY7687511xJzUKmtyJRe; Fri, 01 Dec 2023 00:41:11 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.18642.1701420071303862762 for ; Fri, 01 Dec 2023 00:41:11 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10910"; a="459962769" X-IronPort-AV: E=Sophos;i="6.04,241,1695711600"; d="scan'208";a="459962769" X-Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2023 00:41:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10910"; a="887566860" X-IronPort-AV: E=Sophos;i="6.04,241,1695711600"; d="scan'208";a="887566860" X-Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 01 Dec 2023 00:41:10 -0800 X-Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.34; Fri, 1 Dec 2023 00:41:09 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 1 Dec 2023 00:41:09 -0800 X-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.34 via Frontend Transport; Fri, 1 Dec 2023 00:41:09 -0800 X-Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) 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.34; Fri, 1 Dec 2023 00:41:05 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GxmYkWljf/u3ALdJ7qLp29iAQibf0eLVAfFiPdGsyhZGMos9Z2bp/nOOYlztSf4lnHOexirl59aadxXhMfV/yb4Rku56fvA6HyygFRlRTHKMvSQwgKxjhPjq6mfiaSpfehSTq8wH8lEYHoWN8Xg81bLeWKCN62I4BCObWAq3yFXA49Zm1NmLmdTSsNSoUryGIwdc9heiKiAc4rhnPDz2PMrAkrGXhhFC1Qk3D5izTgZanvN8yhga7UX9ICTdvT3jYplkxgioQabYWrMkh/HEee46N+aktCbVabDGHq0YYRW3c/0cPu6DWcWOVIc3nakEpQgeWfzZIGB0CCz8/iorWA== 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=loi+SxhxxALZvuCfEXp4A3rbh3XOk46BfYLeFh4/yCI=; b=AzB+hyP8O7bVmxnIg1/UjjkZZiQYMIy4yuFSnsvstiN2rMk0AU1JLsOiAX/RiKtxI5ReV25OP8Mm6gSgMIN/kafh0JLzxdL9ZUA83DvRY3YvGK8e33yqeoG4z7O0axj2RKMogIqQGyPEvsohTiWRuHW5J0Icyoz2+I4HHhIlziv/e2iZm4Mnu+3feeRlZ/7A6EgVXVfulyfw53NqZ6B51nRC11oU/Bk59qyR618ayiBYnXASy7/MZ1LNm2D4Uklhvvjc/irsVXUdf9C2oMDknTv8AdRW3OLfOis5pVPN0gMtybN6xVA+TNkhzcNNry7rxnl31Y0muIEjM94CCejkRA== 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 X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by SJ0PR11MB5086.namprd11.prod.outlook.com (2603:10b6:a03:2d1::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.24; Fri, 1 Dec 2023 08:41:03 +0000 X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858%4]) with mapi id 15.20.7046.027; Fri, 1 Dec 2023 08:41:03 +0000 From: "Ni, Ray" To: "Liu, Zhiguang" , "devel@edk2.groups.io" CC: "Kumar, Rahul R" , Gerd Hoffmann , Laszlo Ersek Subject: Re: [edk2-devel] [PATCH v2 2/3] UefiCpuPkg/CpuPageTableLib/TestCase: Refine test case for PAE paging. Thread-Topic: [PATCH v2 2/3] UefiCpuPkg/CpuPageTableLib/TestCase: Refine test case for PAE paging. Thread-Index: AQHaI1ai2C3IxjeZjkaWL+5Eh8+elLCUHYtA Date: Fri, 1 Dec 2023 08:41:03 +0000 Message-ID: References: <20231130062909.2003-1-zhiguang.liu@intel.com> <20231130062909.2003-2-zhiguang.liu@intel.com> In-Reply-To: <20231130062909.2003-2-zhiguang.liu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN6PR11MB8244:EE_|SJ0PR11MB5086:EE_ x-ms-office365-filtering-correlation-id: 70b09b56-dbbb-4bc9-ade7-08dbf24940da x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: 3DBDpjd8iFga0SEJ2iJIZG6yCDgIkoVok32FeP/tKE6ftZ7rL5vZF4dxy5TM141bAwreAwei482+k7wnWkzn4/HLnzeVPMhEbJ4s3N5TipJ2X7yvbpRrq7mFqL/sfu8/zviz0snrmESH4zDYLu3OFcrUCXJ7A3U2Zj5pGf5oVc0dKgTc0aUMsUJRJFGLFemeswa9YcPvrQeu/ZvmQuCFXwYzt0Xx96Rnj9SazYgYdzRwP/4tUG6P/MKTmjH19wrpIYs0GNyobAt/SE+f9JTsrua60jOn3aFtXxMhuiH1N3RTcqQiBxUA7Y1OyiiepEnENWCGoTiBTD89XxHV9U2aGkKGVdqTkEbDNsrlz7kD0RwJiIuEyPgyN/mluKGRN5CT0DZRB2WRohcXF+mOITMGFUazHjxffnnpuYv0ZCzeB8LYG5H4LM6+r/bjR+w8L9cdijRDx1CvZBTpH2zXE6FwuyMebGcliBD+ZEEEDk9scK3cFH6nRWpI3imHSq5ck5SQ9XuylujJvC02cvimA5/JyXuSgOGDTkz7isln1B7WXy9gDN7AldVsfueOB9lm1KDAmW4QWluN4lQ1KcnOav4KaI2DoKPZ45aDjYHQBYkh8u2yuN8C2W+079SJnHPL6PKk x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?bEANKJScrrLM+Yd8EezLjuQq5PkmWo3YMoqyENwLWGlTGAvrVWV48HPBX8tR?= =?us-ascii?Q?lQyUuIJZh17HgDR1H89Kd5/yWaQnIrGWs+iUkV6JEO6RP27+i6ZKA6iGl7xQ?= =?us-ascii?Q?D7ePqlo34yyFlb13L6pPU+LPseLioz6p6vhd7Pl7gyj7TCmkc7s9Lywdi1Eq?= =?us-ascii?Q?/6J2RM3w/Id/phhelSSKeFJvhjjiulcwyGMG1RC0xTryq6KFt4kJXZY2gJ1d?= =?us-ascii?Q?xIx2b/9NJsCCEvaaK21KTBvoqxKKAI8ZX4yn2A0GAczIqAacnmyEmgUAb5qC?= =?us-ascii?Q?gAwYqzkEDotO4OXVhbwNjv+zPfmKZfhEvxlJwbmhKCZC4OcxUad/mlHtAKXT?= =?us-ascii?Q?0w/kTTUL3fmPHJbE4x6SMymn5Buy22n+5VHkNkLj0A9X8XsWAlB0pa/Sf1dQ?= =?us-ascii?Q?QcHcEKJKhq2c32W+2XsyMPU8heZUEmo+0d3JvKQEda/4v/DWpqC53MictBzc?= =?us-ascii?Q?M5eL4MgNK2UjnZVgmvHPyfwf3hek6ZGZG94sVKVzgeN2eqq1+HepNNV9WEkN?= =?us-ascii?Q?dUH3Td3fdXaYEKXSOgbvpKojV00GCkI1273aN3n0RYrM956y+9TB3frjQ7qi?= =?us-ascii?Q?WSX3J9Mwb4ZPO3ydZ/j68j5dhS3Hh8zA0ucv7rgv9xD5cJoowknOuQl+Qeo5?= =?us-ascii?Q?dYkNnPOlhwwU1cxda6v+aolJ9dSqn6F99xDK1KLEokI0Dw7+arr9JyB5ZjKA?= =?us-ascii?Q?3ZGPahMTvGxZO4izartf2lG9vcIgBl/39+5OJpI9JAaVlWc0F+vVTyeLbpnt?= =?us-ascii?Q?nB5yih7Na5R90F3Me9TbY+Na/AkeDjtsOkmjxQUnqZLC6ccRCNiWD0JmlIA6?= =?us-ascii?Q?3PYb/cf1w8O61Ud92285L8T+/XDN+IVsaLGl9w/PX4r85XJkPixV/3SS1v1o?= =?us-ascii?Q?L2HdO8EmvXj6nM/LANQLj3Y+V0Llu8Ev9OCvs658rjUVj+x54s+JxYtIB7L6?= =?us-ascii?Q?E/2f3VmbI0IMaLM5UU/+fr2vikj5tkMB3JdGPVxQF1WXXZxk4vUOF3SJSiZz?= =?us-ascii?Q?aNfWAHbhuzEsLurJo7sujS8Zy/K+GyyDbFo2D7e+7IguG1W72t0lAs+K9D88?= =?us-ascii?Q?LFPz1kRIZGSOhlsfPxoDDt+0B/M/F7JlO/ESexLN1QDw1MmscNlTTK3KyvVo?= =?us-ascii?Q?cGu/b/YQUIFYJANZpu6mLwkBmJvH6IPJN3bUtS+/Mebi+VVgCKvnb39dyX9u?= =?us-ascii?Q?1I0eZEyUgSw4tESWqPEN5wb5r7vMdaYniBS0eR2uxaXhFZQZkkWdl+WIMi/t?= =?us-ascii?Q?nqZz+NirK5ZdMJygYoxme0ulSyfnTg6uoI4IeYBAxZdbb1c71vaAaGK7mtgX?= =?us-ascii?Q?grVPA2I0/cnCosUfWGJMJW1FcUhFxrR4cWBoEEoCInuZBOYuKwEIfpR/O87g?= =?us-ascii?Q?oKysk0kSkRA9EhWF9OLBGgf5M5gkgfHbZ5eNFCaIqHtyQeZsGMP2uSZDE4Uc?= =?us-ascii?Q?cpO4LpSXk95A50vRGYnZQWE+FwWgWO1OSONfFnnYBm5Gk/Lp/JwWAaoN9Mp5?= =?us-ascii?Q?+oQkvhyxYmPbcvUqnbXs+DowKIAJqtA+bzLiqYmO5u3wcm1Hubn+D2oPRxwf?= =?us-ascii?Q?OgPITj/ZlU3Q5dsqzyw=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 70b09b56-dbbb-4bc9-ade7-08dbf24940da X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2023 08:41:03.7481 (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: 3EUBGOn1cDjyOMsWAEYq6OuEWPKpA3uBt9yl8By6LDk4Cis4OOjmaspHWp34Pnyppn0iZBB8sv1E7H2Ql2qJeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5086 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ray.ni@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: e8LVb1wKQVlYW8G8cZJdeEuRx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=FJ8biNPA; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") Reviewed-by: Ray Ni Thanks, Ray > -----Original Message----- > From: Liu, Zhiguang > Sent: Thursday, November 30, 2023 2:29 PM > To: devel@edk2.groups.io > Cc: Liu, Zhiguang ; Ni, Ray ; > Kumar, Rahul R ; Gerd Hoffmann > ; Laszlo Ersek > Subject: [PATCH v2 2/3] UefiCpuPkg/CpuPageTableLib/TestCase: Refine test > case for PAE paging. >=20 > Refine test case: > 1. Check PAE paging reserved bits is zero. > 2. Set stack as random value. >=20 > Cc: Ray Ni > Cc: Rahul Kumar > Cc: Gerd Hoffmann > Cc: Laszlo Ersek > Signed-off-by: Zhiguang Liu > --- > .../CpuPageTableLib/UnitTest/RandomTest.c | 24 ++++++++++++++++++- > .../CpuPageTableLib/UnitTest/TestHelper.c | 14 ++++++++--- > 2 files changed, 34 insertions(+), 4 deletions(-) >=20 > diff --git a/UefiCpuPkg/Library/CpuPageTableLib/UnitTest/RandomTest.c > b/UefiCpuPkg/Library/CpuPageTableLib/UnitTest/RandomTest.c > index f7a77d00e7..9ac3188be0 100644 > --- a/UefiCpuPkg/Library/CpuPageTableLib/UnitTest/RandomTest.c > +++ b/UefiCpuPkg/Library/CpuPageTableLib/UnitTest/RandomTest.c > @@ -138,6 +138,23 @@ RandomBoolean ( > return ((Probability > ((UINT8)Random64 (0, 100))) ? TRUE : FALSE); > } >=20 > +/** > + Set 8K stack as random value. > +**/ > +VOID > +SetRandomStack ( > + VOID > + ) > +{ > + UINT64 Buffer[SIZE_1KB]; > + UINTN Index; > + > + for (Index =3D 0; Index < SIZE_1KB; Index++) { > + Buffer[Index] =3D Random64 (0, MAX_UINT64); > + Buffer[Index] =3D Buffer[Index]; > + } > +} > + > /** > Check if the Page table entry is valid >=20 > @@ -670,6 +687,7 @@ SingleMapEntryTest ( > IsNotPresent =3D FALSE; > IsModified =3D FALSE; >=20 > + SetRandomStack (); > GenerateSingleRandomMapEntry (MaxAddress, MapEntrys); > LastMapEntry =3D &MapEntrys->Maps[MapsIndex]; > Status =3D PageTableParse (*PageTable, PagingMode, NULL, &MapCou= nt); > @@ -1039,7 +1057,11 @@ TestCaseforRandomTest ( > mSupportedBit.Bits.Pat =3D 1; > mSupportedBit.Bits.Global =3D 1; > mSupportedBit.Bits.ProtectionKey =3D 0xF; > - mSupportedBit.Bits.Nx =3D 1; > + if (((CPU_PAGE_TABLE_LIB_RANDOM_TEST_CONTEXT *)Context)- > >PagingMode =3D=3D PagingPae) { > + mSupportedBit.Bits.ProtectionKey =3D 0; > + } > + > + mSupportedBit.Bits.Nx =3D 1; >=20 > mRandomOption =3D ((CPU_PAGE_TABLE_LIB_RANDOM_TEST_CONTEXT > *)Context)->RandomOption; > mNumberIndex =3D 0; > diff --git a/UefiCpuPkg/Library/CpuPageTableLib/UnitTest/TestHelper.c > b/UefiCpuPkg/Library/CpuPageTableLib/UnitTest/TestHelper.c > index 67776255c2..d2c50a6c8a 100644 > --- a/UefiCpuPkg/Library/CpuPageTableLib/UnitTest/TestHelper.c > +++ b/UefiCpuPkg/Library/CpuPageTableLib/UnitTest/TestHelper.c > @@ -9,6 +9,7 @@ > #include "CpuPageTableLibUnitTest.h" > #include "../CpuPageTable.h" >=20 > +#define IA32_PAE_RESERVED_MASK 0x7FF0000000000000ull > // > // Global Data to validate if the page table is legal > // mValidMaskNoLeaf[0] is not used > @@ -95,6 +96,7 @@ InitGlobalData ( > @param[in] Level the level of PagingEntry. > @param[in] MaxLeafLevel Max leaf entry level. > @param[in] LinearAddress The linear address verified. > + @param[in] PagingMode The paging mode. >=20 > @retval Leaf entry. > **/ > @@ -103,13 +105,18 @@ IsPageTableEntryValid ( > IN IA32_PAGING_ENTRY *PagingEntry, > IN UINTN Level, > IN UINTN MaxLeafLevel, > - IN UINT64 Address > + IN UINT64 Address, > + IN PAGING_MODE PagingMode > ) > { > UINT64 Index; > IA32_PAGING_ENTRY *ChildPageEntry; > UNIT_TEST_STATUS Status; >=20 > + if (PagingMode =3D=3D PagingPae) { > + UT_ASSERT_EQUAL (PagingEntry->Uint64 & IA32_PAE_RESERVED_MASK, > 0); > + } > + > if (PagingEntry->Pce.Present =3D=3D 0) { > return UNIT_TEST_PASSED; > } > @@ -142,7 +149,7 @@ IsPageTableEntryValid ( >=20 > ChildPageEntry =3D (IA32_PAGING_ENTRY > *)(UINTN)(IA32_PNLE_PAGE_TABLE_BASE_ADDRESS (&PagingEntry->Pnle)); > for (Index =3D 0; Index < 512; Index++) { > - Status =3D IsPageTableEntryValid (&ChildPageEntry[Index], Level-1, > MaxLeafLevel, Address + (Index<<(9*(Level-1) + 3))); > + Status =3D IsPageTableEntryValid (&ChildPageEntry[Index], Level-1, > MaxLeafLevel, Address + (Index<<(9*(Level-1) + 3)), PagingMode); > if (Status !=3D UNIT_TEST_PASSED) { > return Status; > } > @@ -190,9 +197,10 @@ IsPageTableValid ( > if (PagingMode =3D=3D PagingPae) { > UT_ASSERT_EQUAL (PagingEntry[Index].PdptePae.Bits.MustBeZero, 0); > UT_ASSERT_EQUAL (PagingEntry[Index].PdptePae.Bits.MustBeZero2, 0); > + UT_ASSERT_EQUAL (PagingEntry[Index].PdptePae.Bits.MustBeZero3, 0); > } >=20 > - Status =3D IsPageTableEntryValid (&PagingEntry[Index], MaxLevel, > MaxLeafLevel, Index << (9 * MaxLevel + 3)); > + Status =3D IsPageTableEntryValid (&PagingEntry[Index], MaxLevel, > MaxLeafLevel, Index << (9 * MaxLevel + 3), PagingMode); > if (Status !=3D UNIT_TEST_PASSED) { > return Status; > } > -- > 2.31.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#111978): https://edk2.groups.io/g/devel/message/111978 Mute This Topic: https://groups.io/mt/102889279/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/19134562= 12/xyzzy [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-