From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web11.2488.1645581728264554019 for ; Tue, 22 Feb 2022 18:02:08 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=TSqTUOy5; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: min.m.xu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645581728; x=1677117728; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=v/MijgObwWL0XKekqjaKZlEvz0/1yRDCy4sS8TTMR2A=; b=TSqTUOy5r2Y34iuwjcgTHzV6BuKdgbGRIwz4GlhHr3IqGqyrbS5773W3 Dot6UJOdsn9Eavp82ldJRZvBS27TQ9XCzZYMdrBjOu/2pQHf4CGb1pj5q zw9OrvRaCka/iH44WzjfC5+ZywK4WDkqohHFNgtePGBSKts/gMqf2deSx GaZ4PIwt8KF/ff/6zxbww6+8TeM2qzTHyZNsVdN0j/bcNxRf8Z4EVR5gL ttypk35AiMuOaGB5/8tf2mEFzu4f37ddgXfNDy5ZFYjj95soU61IQjX0l +8pnunuaRdU+cfwrfFXwyOCLdcqII8ctH62bRCFIjFcBAXZpreFH4oB+q w==; X-IronPort-AV: E=McAfee;i="6200,9189,10266"; a="250688323" X-IronPort-AV: E=Sophos;i="5.88,389,1635231600"; d="scan'208";a="250688323" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Feb 2022 18:02:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,389,1635231600"; d="scan'208";a="637241499" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga002.fm.intel.com with ESMTP; 22 Feb 2022 18:02:07 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 22 Feb 2022 18:02:06 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 22 Feb 2022 18:02:06 -0800 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.175) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 22 Feb 2022 18:02:06 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CSKmlurHAg6RF5a5jZL46M5/InkSSDkaU1dBF2VYcNn9fEeCLTh8vJ2lLv9IKumPPBnFlCujIyIbUEX52qKAsY5u9KOrLyy1kUATkLGPS1KSsWbpuHJq3/nIxcuKVrDf3U6NlXjwvTv4ZsAhBt4VML9zO03uO5SDBUYMV4f1HiowNE3S79o4KRHfyY0GwLsJ/Tfl9R2RVexrWV/Q4nrjzMBzItjlOVrtta/Ctm9gVbf9KAZAmdYOGA8w44OS23dNcWv/63UPIVMwXe2e7h6uRdUixEee4uQ6HPhActjdGCnxD/L6pneKvzpc2hrZimQXPJ9XEmcndrhZeOyryIaF6A== 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=cYgkCjZbY6TllqYqp4H6j8g5UoCN8DthSJv4KKNklYI=; b=TY+r8b2OjW1pmBx+2u/EAudD9ROBu7kKTHMKJTEhbM2LDkqmFvZ6yrRMdLK7LReFwt7PfHYmFhrmtYz8smP6f4D6fxNALJfTH0tMhRVO6qHzEejfOYs3lJOrOULjM8eXLtWs5Yxbvv67/lGvcvDX5XLYw2QVi5pfzK47xh75k23tKissgxa9wzwdjJZ9ar7I6Uu7YMpGRZGv3td+hdeCX+lwHJzavJ7TwjBYIJ6oghNNqri5azrOb533BHnaPixygyydY6lQWRW+MyfCISQGGs8XmjdDzzxqzIfGFIQjvoSROGYOdJrdnVjXTm5w//zAKCeKtQf3/FjDviUKjGSOdQ== 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 PH0PR11MB5064.namprd11.prod.outlook.com (2603:10b6:510:3b::15) by SJ0PR11MB5647.namprd11.prod.outlook.com (2603:10b6:a03:3af::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.16; Wed, 23 Feb 2022 02:02:04 +0000 Received: from PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::98f5:edb6:aee6:6886]) by PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::98f5:edb6:aee6:6886%8]) with mapi id 15.20.4995.026; Wed, 23 Feb 2022 02:02:04 +0000 From: "Min Xu" To: "devel@edk2.groups.io" , "Dong, Eric" , "Ni, Ray" CC: Brijesh Singh , "Aktas, Erdem" , James Bottomley , "Yao, Jiewen" , Tom Lendacky , "Kumar, Rahul1" , Gerd Hoffmann Subject: Re: [PATCH V6 06/42] UefiCpuPkg/CpuExceptionHandler: Add base support for the #VE exception Thread-Topic: [PATCH V6 06/42] UefiCpuPkg/CpuExceptionHandler: Add base support for the #VE exception Thread-Index: AQHYJYfjRbyYlgtjjESF9MDTmZdqxKygZ20Q Date: Wed, 23 Feb 2022 02:02:04 +0000 Message-ID: References: <610fa406cc16eb68f07dbf925a3301fbfa181ffd.1645261990.git.min.m.xu@intel.com> In-Reply-To: <610fa406cc16eb68f07dbf925a3301fbfa181ffd.1645261990.git.min.m.xu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 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: 5fab02e6-0791-4ffa-3520-08d9f6707d32 x-ms-traffictypediagnostic: SJ0PR11MB5647: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: z1HuD54UzZg0CeHfai3x5nE0psN9n3aH5G9USOUf84dQltzYneSNXKcpnbbWi8/uWY/cKW/AsEUD2gz7/AWQZPJw9mvL1iqeDCLIsjz48kpTjOZLCu0LLeOfY3zfPTi3nTV3MltCFIBArQsnMVlA6NU4YEfLkjZuI8NXdZCxvW0ZjGww3ET0YO8n+6DopwiXDHnZJBiUIuBYzl6iRmbVu9dl32DDL06F8WkcHyKhnfiXzF59u0UOl8YbbkfEKoRInth046v+Joot9BrtkF8Hvp3KksoDHUv0jm9dkTNE9gWsGfA5uRyyJjMfvslzvM2I+7WaiX2ywbPMCnyIc8/KPPQSqPik4v9nPqRYulg/cPC6ol44clqPno9OQ/DVQKanPmaLCDQcBp7Ta7gAhkrCTwT/7mpik78Wk74grtS3XXEApgaCSz9/+IAgMmA8q1SdrmgCGgnEjuEKgCknImr2BFmxXndslb+VJB6cP5x4CCiVdFUFwW0IfFmxl8wdg+hD+NGN69r8WtesBx+aJtudA/pdU6UCkHLCZHxClwfhkiW4lbMwaEv9rqxZEhCUUGI27vMZqWmh7oh1lBQgG8wuzL/AwSy5EivyuFgmZz45XJ8qLnFUb93z/dF9qdYWYaPfytXBzBcV0uaxzpMFlUQwje/1R0qoFUKdSX/XL9jaZ7Y/HQV+kXNTyM6lBPi6ShJWSjifMLctqtBU2a9Te8Jk5eCxAfx+s4iad7HyXnR5QKx62agYXnE/j4SwOz/9inLEaMNbLTjHc0HlZTcrFOFHbM9Fpov4VrU8CVSkSOmsj6enmTEz1/TaIqyiGB14j3Nx1AP8w7qjUd97cLq/my//cw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5064.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(2906002)(38100700002)(86362001)(26005)(71200400001)(7696005)(186003)(6506007)(122000001)(38070700005)(82960400001)(8676002)(66556008)(66476007)(76116006)(54906003)(316002)(508600001)(6636002)(66446008)(110136005)(4326008)(966005)(64756008)(66946007)(83380400001)(9686003)(8936002)(5660300002)(33656002)(55016003)(52536014);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?7mdv0k7BZkZnYoDPT7IthAMN+hq3om4ZDMNlKiWUGYi+A2BV7rO+ErRHBpdl?= =?us-ascii?Q?pDzNKNPX2Ouirp5qhjT2jdQpFrovSQKzeK4or/+q+E2qR/H5UNBWtdhkFCLK?= =?us-ascii?Q?i5nfNqfiyAaZ4q1pm3s7ue2t3b8Iwc2+qGK1rU2rUvw03lls27HlkIq5X9Hc?= =?us-ascii?Q?XqY4MX5GJ0LiKi5Xjw3H5KUlyIjY5lMR1NIWVJlegAQXqBRsIdwREPpoc6Kz?= =?us-ascii?Q?SMMveLzckIBsivTlPqQG+yIwM48qvWqZT5QQ4KqZ4wYcgwvWLtY+akLIaq3K?= =?us-ascii?Q?l5mvWK3qtXWlgu52olOFc8vtr4Wallc9lkv0mBN1v4zdhh5ClnfipzuNym6a?= =?us-ascii?Q?5t1elGy8zPzAUe6o4u76G5wTFTR/GFyU1E9+t+JCXagrxkafmazFVQTXtkl0?= =?us-ascii?Q?ayDOAYlRZ7OZZwIGjPibahDB2OknjA4wtb/pH//VPJlLLcRgkw39wFRDLB4Z?= =?us-ascii?Q?XDPlkgwaz60xYCGy0vRDgriCqr273U1H0rBZk8sWsuyP6oAiokGQJpUgyHJ6?= =?us-ascii?Q?K3B6MrqZqQKxzp2vSO9M024b4QtICykp3czQRARPvqHcWuQw1dWaRMbiHDop?= =?us-ascii?Q?NC2kx0Bp99nm8DfARZuk7eXiY8IggduTPIkH/+/JUJS5VfgRulvq+/htUDTp?= =?us-ascii?Q?pDoKZ1FfLJm8xhmK3KRd3Vkd9sXSjBy3ciUfE3wwyDn0yqu/rJDrKzXwfUtj?= =?us-ascii?Q?r1a1DYrdcJJ+wMkWdpRufVUr2uJfpQzJEZ7CIs6AWONmP18Mzn6+R4aiN0fc?= =?us-ascii?Q?UR0nfuXp7WLzXJSG8UBEfbqYLRpeUZ2rzXxtpjSYC98PM5LKePUWyUjkYL4X?= =?us-ascii?Q?hOG9NqFUqDIXvgsNIhob25pu47bSeQRd2Hs/eKhNcKf3ym4ycDW3J2b0+Xal?= =?us-ascii?Q?x/bzcu0FG4qpxij/I8YlsBstUqds4dGCe1F+3LElABekR/slpuYaX5ad0vZU?= =?us-ascii?Q?D4xwXyIvW3F2B2zEqrlCvkQv5qE+nFDpmn5KHknKC6J9YJ1YKIjbkUZUSMjz?= =?us-ascii?Q?Q5yPD3JLKb07UIrZpQY8Zrg86u+7TcPTMxvjCoE5IRKcT0CjLKBHUjPLY5mP?= =?us-ascii?Q?ZC6ebUes9faNaFWhx6FcmZtVhVr9gfYZC/ttMFewJfhAGWZGngIUbaNvETSd?= =?us-ascii?Q?PWely3y1AZLkq19i4kwtuVxXiZ4ixYWYG/mRfn0fhCLnb156iHCqyIpBP9gc?= =?us-ascii?Q?NFGT4YuWropGRJrGETwt5bbMsBkGqa5aKHExCwbAS6Fet70IxWEczpyZaE4F?= =?us-ascii?Q?8uihzGtLa3cfbJ3M7tEoGPF/CvePF6vdxI0jd68fX0pQOh39EgzDSR2ajIz7?= =?us-ascii?Q?8M/pgdij6dCPoq2rF/BYxLYp3FYXO9GoY2Dq5MnVil7pg0a1MdG4CASNZJLD?= =?us-ascii?Q?6Il+MF32+E8UvZK7GDayj4kIzHINui10hmTpIgBHkyt7f8C/jjgjIBThT3UQ?= =?us-ascii?Q?QLiPspbMD6Uop7Kn8vDktaGplF6yW9V4bHeaDvoLllxIQQs1BUzPxvxmjlXt?= =?us-ascii?Q?lLJTZDHn7FYtrpdbsY5Il9t63tQWkTY/36iaXUekykOjLSHuK9sBPu8ox9At?= =?us-ascii?Q?x+vfrtludswzDjtAzJOlNVMqgutrjKlsAYeIe/fktBM9UtN1mldlLd82SpXR?= =?us-ascii?Q?bm5PMMn+3QU5BD7OTpf8qyw=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5064.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5fab02e6-0791-4ffa-3520-08d9f6707d32 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Feb 2022 02:02:04.5442 (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: cdV73CXJzlcie4K4J8xlJHSFx/7eCmvuUETpWawGHj3xk+uMgD+7bSk0qVGPtFsW0K47+Gxt90V0LINGdutAtg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5647 Return-Path: min.m.xu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, Ray & Eric I am doing the TDVF upstreaming and this commit is in UefiCpuPkg. You're th= e maintainer/reviewer of UefiCpuPkg.=20 Your comments to this patch is great helpful. The complete code is at: https://github.com/mxu9/edk2/tree/tdvf_wave2.v6 Thanks Min > RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3429 >=20 > Add base support to handle #VE exceptions. Update the common exception > handlers to invoke the VmTdExitHandleVe () function of the VmgExitLib > library when a #VE is encountered. A non-zero return code will propagate = to > the targeted exception handler. >=20 > Cc: Brijesh Singh > Cc: Erdem Aktas > Cc: James Bottomley > Cc: Jiewen Yao > Cc: Tom Lendacky > Cc: Eric Dong > Cc: Ray Ni > Cc: Rahul Kumar > Cc: Gerd Hoffmann > Acked-by: Gerd Hoffmann > Signed-off-by: Min Xu > --- > .../PeiDxeSmmCpuException.c | 17 +++++++++++++++++ > .../SecPeiCpuException.c | 18 ++++++++++++++++++ > 2 files changed, 35 insertions(+) >=20 > diff --git > a/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c > index 762ea2460f91..4fa3f8202a33 100644 > --- > a/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c > +++ > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c > @@ -45,6 +45,23 @@ CommonExceptionHandlerWorker ( > } > } >=20 > + if (ExceptionType =3D=3D VE_EXCEPTION) { > + EFI_STATUS Status; > + // > + // #VE needs to be handled immediately upon enabling exception > handling > + // and therefore can't use the RegisterCpuInterruptHandler() interfa= ce. > + // > + // Handle the #VE: > + // On EFI_SUCCESS - Exception has been handled, return > + // On other - ExceptionType contains (possibly new) exceptio= n > + // value > + // > + Status =3D VmTdExitHandleVe (&ExceptionType, SystemContext); > + if (!EFI_ERROR (Status)) { > + return; > + } > + } > + > ExceptionHandlerContext =3D (EXCEPTION_HANDLER_CONTEXT > *)(UINTN)(SystemContext.SystemContextIa32); > ReservedVectors =3D ExceptionHandlerData->ReservedVectors; > ExternalInterruptHandler =3D ExceptionHandlerData- > >ExternalInterruptHandler; > diff --git > a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuException.c > b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuException.c > index c614d5b0b6f1..148d89011721 100644 > --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuException.c > +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuException.c > @@ -43,6 +43,24 @@ CommonExceptionHandler ( > } > } >=20 > + if (ExceptionType =3D=3D VE_EXCEPTION) { > + EFI_STATUS Status; > + // > + // #VE needs to be handled immediately upon enabling exception > handling > + // and therefore can't use the RegisterCpuInterruptHandler() interfa= ce > + // (which isn't supported under Sec and Pei anyway). > + // > + // Handle the #VE: > + // On EFI_SUCCESS - Exception has been handled, return > + // On other - ExceptionType contains (possibly new) exceptio= n > + // value > + // > + Status =3D VmTdExitHandleVe (&ExceptionType, SystemContext); > + if (!EFI_ERROR (Status)) { > + return; > + } > + } > + > // > // Initialize the serial port before dumping. > // > -- > 2.29.2.windows.2