From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web08.25800.1650165762598305391 for ; Sat, 16 Apr 2022 20:22:42 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=BFySoIzp; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: jiewen.yao@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650165762; x=1681701762; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=7I7YaaF8iUz/DvOJVumYzLaka/O+mNAhCm/0Z+EtdLk=; b=BFySoIzp3C5V3oYWTL11/tydwkgwnEFdHPMGiHzt7bi4DPjXiOmu8P9P hziR2Nvqrt4+d1CvAuCbv1lPyHAaWbDjSnCOQTTSehCDSe8j01Wh8zLcC g2CuqNPknEpN1yxCnERFH2I8uRZ4GP0FKr/BUqWPiwPa36BRqSy7DkSau s7BVEcPVsm4XqZqMcmYin50t7FnjxdBXiVOV6y7g66EPlF5VUqUQ0FnqX kFuSZLiieKI0IkskSBt0PLpjbR5qltoUmniP07MbkaORM8cSXwF2nPdro J0XC1ZJJ3BiO1qcglhvBWgBezdRCgRWG4PfMvGEN+HykT7laoAVYL4pud w==; X-IronPort-AV: E=McAfee;i="6400,9594,10318"; a="263113675" X-IronPort-AV: E=Sophos;i="5.90,266,1643702400"; d="scan'208";a="263113675" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Apr 2022 20:22:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,266,1643702400"; d="scan'208";a="592041098" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga001.jf.intel.com with ESMTP; 16 Apr 2022 20:22:41 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Sat, 16 Apr 2022 20:22:41 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Sat, 16 Apr 2022 20:22:40 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Sat, 16 Apr 2022 20:22:40 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.108) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Sat, 16 Apr 2022 20:22:40 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZGyQxAnbA/LhtKf/GTkkXkrwwT4bseh83hkCK7JDaKySSP0gpGeJhDvOPzEj2VRc5q4piOLEBMazhQj2m6oK0juzPuT1UZ4Ta7v7upoY/ASPAemATuYAFTqDM8942ClEMnBYQ7ebRPUjSVmHeqlVb9DwJxG3bcPUsdIIVVbu1MJRDrauNy8RnBrIjY1TROC+ILqfySj9igJRlPhkiklc03r0T9J9ghrkcwmaTCqgtMa7mBnH1blhmwjhjhhHXyJuw0UUSHj+/LIKurv792VGf1mAJAFy3JyFoC3wq4JnymU+m4F4nJTWeR1oFONszxaKgpyApNb5/jfsHh6m5hming== 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=xB92rVmnlC+vstxahkh9lO0B+jh8qvDFEG7xd/+x26U=; b=VRS5D/OLzdY7e1jV8D61EIFjO+9j3tYYweniHK0DxzTX+UOc7gt6VWwEfjA2vMuyW0feUn7MzmZC7r822+uNDCatxhy9YvnpwgVslexaMo19iNiSRzYAIN2BD0m86jfdDQR1vSRezd0sWt/BKX+okSbrNNopsR0FtJTaxa7bOfLzKmc+5SkGt07uQufzcGwxD1fhtq7QZ3qx+MqVGhmadv9AHkE+oCQsFoTNZDoyzt90SNuythyEdvrtp+z8DXmR/IdYa6V7qzCyscZANbfdXTUV/mmsOSBzm+LSo0IrY2+n75AlUctAkV8WELvbKvg2jNIo2ha8BCHapL26UN+tbA== 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 MW4PR11MB5872.namprd11.prod.outlook.com (2603:10b6:303:169::14) by DM6PR11MB4265.namprd11.prod.outlook.com (2603:10b6:5:1de::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Sun, 17 Apr 2022 03:22:37 +0000 Received: from MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::198e:ea23:c83b:b93a]) by MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::198e:ea23:c83b:b93a%4]) with mapi id 15.20.5164.025; Sun, 17 Apr 2022 03:22:37 +0000 From: "Yao, Jiewen" To: "Xu, Min M" , "devel@edk2.groups.io" CC: "Kinney, Michael D" , "Gao, Liming" , "Liu, Zhiguang" , "James Bottomley" , Gerd Hoffmann , "Brijesh Singh" , "Aktas, Erdem" , "Tom Lendacky" Subject: Re: [PATCH V3 0/7] Introduce CcProbe in MdePkg Thread-Topic: [PATCH V3 0/7] Introduce CcProbe in MdePkg Thread-Index: AQHYUgd2kpuqTP9ziEqigPyPGcxCaKzzcKDw Date: Sun, 17 Apr 2022 03:22:37 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.401.20 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e55ae712-0d67-4651-7ce1-08da202185c6 x-ms-traffictypediagnostic: DM6PR11MB4265:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr 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: 6Jjdnf3xToZKNreVtft7RrEk50xQJP+WCu0t7APOmInW0LDnXO33g47jOQKjhuwFN1zGUTGfjYcrZyb6RpkMIiIQlwYJXR/MdujfOLT6tsFT90zKLYfxPMOxq7EdoqLRGje9hbwDjsdNt44/LMM3J0cDySvrK6R1KH4NYjh6/nKmZ2RGoLI+EQdtzdj4CYHMJm7gZJHHicUFQhDQB0FE+BL25vaVPvrd65vMEz2Ir7seRnMFKEzRfpH3BpUCqGO2tvHMsWG0kg84/AxZhCWaY3zk08v6wdDKqL0ZvfJKSjKsDIGZjwjxxUUnxp3ZbkbFwwCy9eqluEahvVCvvCEgVfscZ8TubqTT/YrKZY5g0NlGT2yILI9Kg1psf9dAoHm+f7WbeaBrHR9y/Gg+FoKed2g2AFsTLKm3ciG/aeruDG7zziVbd8szH/rzC0FFzGQpdi0MfFEMkpws75vx2Rau7tvcnlbFlZTdohMnF5hq71JA8k0kpRScdG3kFrHu4qdrvLYYxyMFzXra86gSJhXGcZIcr9ogS+KkHzRpbqidR5f9fKNsYDGKt226lMwDOZafglc4Kz/2bML7x67xYGdicZMtYCsxnQozeEPb8P7pduUlpbKlnAj8A2H9RDlnNAXKvaaO9ehkhNEzkW5KS3lKPrtQqWFns7xIZOqq/913SsKGFSgm8QeDVE0Bru7JPRtbGDE5b9Pjs/JyPnj6jzLnfBXUD1EfFo0IoBFogRATgeujyksP1DNlRAAIENItSZYtu40I8HRRwVodagqfjI82SUIrihwTUDg1wIzsSmOS6ilziw8QvaO3KFcBQRadwqgqWWzK2Vfe/dTXZ0a7O+YH1g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5872.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(6029001)(366004)(83380400001)(5660300002)(122000001)(64756008)(54906003)(2906002)(66946007)(38100700002)(33656002)(66556008)(38070700005)(66446008)(66476007)(76116006)(52536014)(71200400001)(8936002)(110136005)(8676002)(4326008)(508600001)(53546011)(966005)(316002)(19627235002)(55016003)(82960400001)(9686003)(186003)(26005)(86362001)(6506007)(7696005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?2CaWkeQ0gWTdXh0R8LE4VY4SKxEnuWRTQEybkQJ4JM8vDXmzOoajSZCkE2fG?= =?us-ascii?Q?e3qLSY8vArlZ+BEzj2qsQHIxh7aF76zPyASkR5/sL56RCC4gpOqBUat+lRVw?= =?us-ascii?Q?ijD/YW+uwUGl3rR6zoyyj8KgUOoNBfDOfSFqBZrSrGTsoFQ9FpiYXeTLKGmM?= =?us-ascii?Q?9McZpdAx+ezo5q+unBRMownmso12wwzK4aY+UR9bSiOGWQBSH2XSBawNooFs?= =?us-ascii?Q?yANuMNmC4IqIdotg0BQ7SEPJkJOpNBcqa3Ykj7wCrthQefxXTv8OrITBNdnm?= =?us-ascii?Q?kvmKz6e01faqz2NLqNzYqVMKNddICST8qDramrbOWoHDlIeGHCWB7VPxu+VW?= =?us-ascii?Q?ohx6bXQx2/IUOLAXCHPbusn5VapckTTj7gfbAHg+t2p1wASVKEPpQIwbhmGa?= =?us-ascii?Q?Il0qIhngNCxA82TjExEZsC4jljDmSWxjo/+wuqRtgHof/kHDUauniXLCY3uU?= =?us-ascii?Q?6z6WFSabDG18uxfeGw+g/rU86U3L5zwJYD0R6NT6zY5k8wQ9+Jt9eZVaOkzK?= =?us-ascii?Q?YYy4ylaVxYKllOE6jT/GWa6jm8EZRSrpFKtvFKb1l70okAsYqfrmYpdH2KkR?= =?us-ascii?Q?v4EecZp2SVMXsCc8XNkB1pzidDXNVGoTxf8Q4u8RFwHfaV/1YtJ/RRLE7ZHk?= =?us-ascii?Q?RfjudwGJA5gb4hyb6t+GDAu7yAT8EqTiVQAhk2gSmDN19fLvtdWyq6P6+/K5?= =?us-ascii?Q?1erHB1eCMphR1R2MX02CdA5+GzYbFlOIqp5UliKzZn5JUsNNq2Vg0yKMEtJW?= =?us-ascii?Q?/bLYQBs+3UTJpHDVkbRLbS7qxrtlvwtL4q476RWhRfcazv5pl/EPGi5Gt5RP?= =?us-ascii?Q?Q4D7ZblV6II3awOdK3Fmd0qdFd54F/rqrS/GGh4UoIjhLP+yvSP+P6LQWkLI?= =?us-ascii?Q?F2KNa79NmLl7gJmQNItxtAViUQbRAR3wRkN8qIRqsef9XZdSOjVJZZsVHcUD?= =?us-ascii?Q?1KT0x4uIOzSkFlE6cGDPaly7xblJVxFX2hv0sMmfsDhxivBoq2Rp5W0aJGtH?= =?us-ascii?Q?UdC4OqId8wQCYl25rp1dFG+/IdxdS8TqQAwwF7daoggpJZQR6C5k/VDaozkh?= =?us-ascii?Q?1VEfQ7oZO93G+5tA+bYyYOoFkC3TmbQ3YjqKkCYoXMtuZLFQF3a1cDPbAXPp?= =?us-ascii?Q?FZIwb90LiR8aBaVu0H4S1Wm7F3l+bPYTO6Cv3jnWeJTob9V2g2P31DJEfe5Z?= =?us-ascii?Q?4U0Ek8ykhpy+QkW1JdePKb0rlI62SB4T/xY+jH15jYANrAHLuGosAWLwPM/X?= =?us-ascii?Q?LAsTGpWvU4xZDx62cpouJjAEViC7RvcAC+vNlo3mZQETk8rrhz304pRQ6r8M?= =?us-ascii?Q?ku37c2Va1qCsanRjTJcMTzijgbLWL6LLQ6oX8sQQSP8Rvpa1vSMzwfNEl9/L?= =?us-ascii?Q?4sR2iIHLbZelAGdYrHK1V8nCA2b+77nxzEQTzmTfJWrZkZK5NTx2tBPw8inX?= =?us-ascii?Q?mIbzRsxnZsTPXlBzMFjFZ8x/ZSH3dvE5CylCHf/Wnf2F9C2GXUtYOlZi+xdN?= =?us-ascii?Q?Y8C541XLlSIEm7VuUaVYuHPYYQUXUjD2EghKtK3lascrFo+HE05FSsj4E/7+?= =?us-ascii?Q?pRh6JMYwWfXLAJYqLKppMuu3vagTqOnzx9tkG5J72yhJ9nHY7rnehUJgEsjo?= =?us-ascii?Q?Px3a1ePtw6ejD4Ol2EtdAdQiutFmH2+M9y9UtP9ImJXYoinFCGyzL5DA+CxQ?= =?us-ascii?Q?o2ZdkFCooQmIfaUmR6RPaqZ4NjnKrS2tzwNqKuKnDibemRLJWyEIrDxCd77g?= =?us-ascii?Q?7A4uKxXWqw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5872.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e55ae712-0d67-4651-7ce1-08da202185c6 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Apr 2022 03:22:37.5315 (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: N+lXHVhfqInB5uhfl4jh/QeKbQqBvN+Y6iwglqYBZpU0o5WmtqHE41KIgSs3YsAAorT9mp6Gxa3dWEQZeU3OJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4265 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Series reviewed-by: Jiewen Yao > -----Original Message----- > From: Xu, Min M > Sent: Sunday, April 17, 2022 11:01 AM > To: devel@edk2.groups.io > Cc: Xu, Min M ; Kinney, Michael D > ; Gao, Liming ; Liu= , > Zhiguang ; James Bottomley ; > Yao, Jiewen ; Gerd Hoffmann ; > Brijesh Singh ; Aktas, Erdem > ; Tom Lendacky > Subject: [PATCH V3 0/7] Introduce CcProbe in MdePkg >=20 > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3902 >=20 > Bad IO performance in SEC phase is observed after TDX features was > introduced. (after commit b6b2de884864 - "MdePkg: Support mmio for > Tdx guest in BaseIoLibIntrinsic"). >=20 > This is because IsTdxGuest() will be called in each MMIO operation. > It is trying to cache the result of the probe in the efi data segment. > However, that doesn't work in SEC, because the data segment is read only > (so the write seems to succeed but a read will always return the > original value), leading to us calling TdIsEnabled() check for every > mmio we do, which is causing the slowdown because it's very expensive. >=20 > CcProbe is introduced in this patch-set. It is called in > BaseIoLibIntrinsicSev instead of IsTdxGuest. There are 2 versions of > the CcProbeLib. Null instance of CcProbe always returns > CCGuestTypeNonEncrypted. Its OvmfPkg version checks the Ovmf work area > and returns the CC guest type. >=20 > In this patch-set another issue is fixed with CcProbe as well. If the > working guest is SEV and in the beginning of SecMain.c TdIsEnabled() > was called. At this point, exception handling is not established and > a CPUID instruction will generate a #VC and cause the booting SEV guest > to crash. Patch #7 is to fix this broken. >=20 > Code is at: https://github.com/mxu9/edk2/tree/cc_probe.v3 >=20 > v3 changes: > - Fix the broken issue in SEV guest at SecMain.c. Please refer to > Patch #7. >=20 > v2 changes: > - Rename TdProbe to CcProbe to make the lib work for Confidential > Computing guests. > - Rename the GUEST_TYPE to CC_GUEST_TYPE and move it from > WorkArea.h@OvmfPkg to ConfidentialComputingGuestAttr.h@MdePkg. > This is because CcProbeLib is designed to return the CC Guest > type and the lib is located at MdePkg. > - Rename the CC_GUEST_TYPE's fields name to Camel style. See the > commit message in patch #1. >=20 > Cc: Michael D Kinney > Cc: Liming Gao > Cc: Zhiguang Liu > Cc: James Bottomley > Cc: Jiewen Yao > Cc: Gerd Hoffmann > Cc: Brijesh Singh > Cc: Erdem Aktas > Cc: Tom Lendacky > Signed-off-by: Min Xu >=20 > Min Xu (7): > MdePkg: Add CC_GUEST_TYPE in ConfidentialComputingGuestAttr.h > OvmfPkg: Replace GUEST_TYPE with CC_GUEST_TYPE > MdePkg: Add CcProbeLib > OvmfPkg: Add CcProbeLib > OvmfPkg: Add CcProbeLib in *.dsc > MdePkg: Probe Cc guest in BaseIoLibIntrinsicSev > OvmfPkg: Call CcProbe in SecMain.c instead of TsIsEnabled >=20 > .../Include/ConfidentialComputingGuestAttr.h | 11 ++++++- > MdePkg/Include/Library/CcProbeLib.h | 26 ++++++++++++++++ > .../BaseIoLibIntrinsicSev.inf | 1 + > .../BaseIoLibIntrinsic/IoLibInternalTdx.c | 13 ++------ > .../Library/CcProbeLibNull/CcProbeLibNull.c | 26 ++++++++++++++++ > .../Library/CcProbeLibNull/CcProbeLibNull.inf | 21 +++++++++++++ > MdePkg/MdePkg.dec | 5 +++ > MdePkg/MdePkg.dsc | 1 + > OvmfPkg/AmdSev/AmdSevX64.dsc | 1 + > OvmfPkg/Bhyve/BhyveX64.dsc | 1 + > OvmfPkg/CloudHv/CloudHvX64.dsc | 1 + > OvmfPkg/Include/WorkArea.h | 9 +----- > OvmfPkg/IntelTdx/IntelTdxX64.dsc | 1 + > OvmfPkg/IntelTdx/Sec/SecMain.c | 6 ++-- > OvmfPkg/IntelTdx/Sec/SecMain.inf | 1 + > .../PeiMemEncryptSevLibInternal.c | 2 +- > .../SecMemEncryptSevLibInternal.c | 2 +- > OvmfPkg/Library/CcProbeLib/CcProbeLib.c | 31 +++++++++++++++++++ > OvmfPkg/Library/CcProbeLib/CcProbeLib.inf | 25 +++++++++++++++ > OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c | 2 +- > OvmfPkg/Microvm/MicrovmX64.dsc | 1 + > OvmfPkg/OvmfPkgIa32.dsc | 1 + > OvmfPkg/OvmfPkgIa32X64.dsc | 1 + > OvmfPkg/OvmfPkgX64.dsc | 1 + > OvmfPkg/OvmfXen.dsc | 1 + > OvmfPkg/Sec/AmdSev.c | 2 +- > OvmfPkg/Sec/SecMain.c | 5 +-- > OvmfPkg/Sec/SecMain.inf | 1 + > 28 files changed, 170 insertions(+), 29 deletions(-) > create mode 100644 MdePkg/Include/Library/CcProbeLib.h > create mode 100644 MdePkg/Library/CcProbeLibNull/CcProbeLibNull.c > create mode 100644 MdePkg/Library/CcProbeLibNull/CcProbeLibNull.inf > create mode 100644 OvmfPkg/Library/CcProbeLib/CcProbeLib.c > create mode 100644 OvmfPkg/Library/CcProbeLib/CcProbeLib.inf >=20 > -- > 2.29.2.windows.2