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 4DCA4740038 for ; Wed, 31 Jan 2024 18:40:36 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=NtUngLxNHwt8o7pAv1+VkxfhV53555D4Ws9i3hZ+Pbw=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Message-ID:Date:User-Agent:Subject:From:To:CC:References:Autocrypt:In-Reply-To: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=1706726434; v=1; b=tNTb4GoIECmgpPYiW/4n8vl9H9glQztIziVSk2igDnhRio8CcAbZklzSNHVrJ+w3hCenVA4h wrcj/ujImMoJ0I6R173NPOT2OZgdcDTZPDor2e5dYAsFcgd55CMPryT79TSL0OAOc+GiiNuCK/h rSd/BW2DsqGoaSJVc5D1I/1Q= X-Received: by 127.0.0.2 with SMTP id CHdGYY7687511xCWHkLIckgV; Wed, 31 Jan 2024 10:40:34 -0800 X-Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.69]) by mx.groups.io with SMTP id smtpd.web10.3098.1706726433737631985 for ; Wed, 31 Jan 2024 10:40:34 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T1RR2+fMnCjiwCfwyBGiP2TvTS7yVlwOyMQ8tD5feG37Ajwbsx4RGJ0OCzDFJAFogYMGMMGkOaySoKWbVqZYyvAWhpz6WS9+dQc9Fw4RMQobS+d7qJl+pOiWEOTS8RaurpeoHfUsVCJxEgF71Z2P8SUZyO81qPNwDDR0GlmMRL+n0sg3YHQ8wcuH/KSfmCkGnN5FpgdpZ+FIoB6/ys9rM4s/2qmwBl8DSgzn+Ose7tYhCUTUscF2RP9799Pj8uGyrBustygm5Hagifstz+ZmGZtsEzOR5KHv4qD+laEHLAdbUTfLEgfqaDrmJ8WE0SUY5eHpPRYOU26P2OzM3ExF8w== 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=Q+ol9pSBp1zTy/kKjmZMSU/hzpSVpkR65sV2YAw826k=; b=VydA3qlo5mM1hjWCqMYB/yW5MCu8OogWzBcLGGwIRpf4fhszEcRA1Ua5cxsw5oA0mieOIYsHHXCygr+h1gqdOc/mJPbcsegdeEK41i6ioAfC/TDHiz2NFJf1xuRP8k6K2MrRf5Cp7oRrcT8ep5K2HAxhJwNsFhZ+Dl74YK4twDXIcDDcWghAZLV7Q6vIqN8fFfim5gGQ6vBQ3rB/YeDgaJJ5sXQDVVSHRXfuEFtkhZFzflwR/CjImo9fQQWnefX3dN9vLiuMqQVcmVbgfb17yvBQZNspbOolSHcnEkDTD1kOVx+LVOl+Db+7SDunMOGVoIe8GnxZ9FLSIlzc+WAGCw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from BL1PR12MB5732.namprd12.prod.outlook.com (2603:10b6:208:387::17) by CY5PR12MB6550.namprd12.prod.outlook.com (2603:10b6:930:42::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 18:40:31 +0000 X-Received: from BL1PR12MB5732.namprd12.prod.outlook.com ([fe80::200:c1d0:b9aa:e16c]) by BL1PR12MB5732.namprd12.prod.outlook.com ([fe80::200:c1d0:b9aa:e16c%4]) with mapi id 15.20.7228.029; Wed, 31 Jan 2024 18:40:31 +0000 Message-ID: Date: Wed, 31 Jan 2024 12:40:29 -0600 User-Agent: Mozilla Thunderbird Subject: Re: [edk2-devel] [PATCH 07/16] OvmfPkg/CcExitLib: Add support for the SVSM_CORE_PVALIDATE call From: "Lendacky, Thomas via groups.io" To: Gerd Hoffmann CC: devel@edk2.groups.io, Ard Biesheuvel , Erdem Aktas , Jiewen Yao , Laszlo Ersek , Liming Gao , Michael D Kinney , Min Xu , Zhiguang Liu , Rahul Kumar , Ray Ni , Michael Roth References: <7bd1171077a547173d35f95a89387d13abdc8301.1706307195.git.thomas.lendacky@amd.com> <594d75db-3230-4057-918a-1dbe6c057eb8@amd.com> Autocrypt: addr=thomas.lendacky@amd.com; keydata= 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 vFkWitqCJg== In-Reply-To: <594d75db-3230-4057-918a-1dbe6c057eb8@amd.com> X-ClientProxiedBy: SA9P221CA0011.NAMP221.PROD.OUTLOOK.COM (2603:10b6:806:25::16) To BL1PR12MB5732.namprd12.prod.outlook.com (2603:10b6:208:387::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL1PR12MB5732:EE_|CY5PR12MB6550:EE_ X-MS-Office365-Filtering-Correlation-Id: 261978d4-5e66-487a-277a-08dc228c1a58 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: kQaT5cuTaz93HZX59hJ9Gx9nufXt4+HRvGgdv6sQtn/0r4ko3I423ffljstD9F/V18chfWqzkaONQsibQVGgw84Xg7huhQiFmW6dFPVkltc46ZyGRQikM19uRTdStAi+bjMJR5O/xFwkaGGdEbptWR0wYQY7mpixP0ragjp3BWpziDBzeOw1uho7Xu+n8jiPQ8tKcyhXMNlA4Y0QAHheAWAKIZq0tgJCij2u+pGdZbW4ujf+JUZCXoTwUcow7aKoHhP77jXehIA40SvLRqHZy08MM7wb+3PY4v67psnqeJcnBe0B/jyTcH1T1x4EzpLM/8grUb6TA5yHlk6nhAVQEQiPbU5lFkoqgpxn5KEpzP0R/UapxhjTIZLynJxESrJiv3pLhIKJUvcJMPSp7PMogGWvuIfJC/dAIhBHxpJllkhR7pSIcsuSFJVt1Uq0/3Ax1WnzH6HEeQw0p/1rr8+vw2deW1xzrqHXB4MTQX+cd0SRH/FI/w40D/QjZcoSCVnkl6by3FDTlxWVzHQfV4J0SSx8HLZ3gUXzEAuhhWQCK5hhpYjyhUNToaaB24jEc0Pml7jNl7XK+ly6cEuzshAl5MbQkcT5N3xzlECwyYOIB2gwnu3zJORHebzypsMuVvga/z1twmKp2kFw1wRpsjdgLg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?52Tr+oDuDeckWNSVvSIlDy4012BF5QRl9XG8+DSRtYz8YiscsnJbVsbvM6Ag?= =?us-ascii?Q?VoXK4xdsI+N0ZWPnEj4uxfegrJjIh8qBghYCzDFsVNEZDCaEdPI/di9GHCxR?= =?us-ascii?Q?96sVveyxgd6pKsL8QJCUWnA1HvGQUNtABKpENH35h/eXFsrDwE2B+5crAkt/?= =?us-ascii?Q?ZwCEjt9epTpMY9t9zInYsgsDEUIKNh9R++EqvVAiwwJhkE3eMhiFXkbm9MZ5?= =?us-ascii?Q?/NSQEnC6kA6r+Pc99ZOMC44b50P1et8l3iFpOV2wdVxc0CdNBvwOGqAtFtW2?= =?us-ascii?Q?/8PGtsgyzhEvqHO1RovTRW6R7+sAOyBQkxgX+M81wfbFR4gejLt26Ez9AhVH?= =?us-ascii?Q?0g2Peg4egrZKGI7ogu8CwtLR7gYIFpNYy7BM425Kb4VMDsQ3spiQbG2MpSXl?= =?us-ascii?Q?QM+J71E20lzoXN1DQ++sgHc6esHdSrrOT0IVZHxsoFXms6DAOPWb9Gd4i17/?= =?us-ascii?Q?LSn1W46YFq4dqclkbBnvhIH/jK24yWBHDX8IfpqJMhYJB9x5nrcVqrz8cANM?= =?us-ascii?Q?Ou4VhhI+lP3xLs2MKC7+o96vOJ2tA5IkT9jm/8yfbZSLlLPpQ2RLAYDFJ/4s?= =?us-ascii?Q?MkLn3NyP9y/gRCNXRotfzLSAc9CHZwfD82AQU3aycxbJXBjKdq7UVQgPpYaM?= =?us-ascii?Q?GkmADual+H7rm7g+f2IodCTek1UTzDGszUfP+e6fLvi992jRbkI1CeJiJn/A?= =?us-ascii?Q?wrK6dVgZUxqRrYH2Oqg6iiT8YIWd9fthEBB41eUmYSI0lLIbVO8W9A+GXfXA?= =?us-ascii?Q?hGs1tle/bCY8nGjMxSwb64dRwUS06iDwtAfqf5q+yo8Xrqa02qq7Ml8V/ua9?= =?us-ascii?Q?E42Zlndq5tJXiiVBWon+RANeU+Ktc4bt+/uHGbCrA+XC+GhbjcS6UQ3E1dyF?= =?us-ascii?Q?M3y5HJRPYIdnep5rn/vDa0yBCss5AAASo6JxV1wJdLJVpiHr16cuAiQc1uGt?= =?us-ascii?Q?ODeBJJMMHDpSEfmSxnWDFK8iSFpwPTneVYWYZ3vs4eMyxtFLbhSUrjF9IrT6?= =?us-ascii?Q?ZMiIWUriM9SCX04DSq85aPRlf2t/U/Oujxdz4qwwgI54BxHma40YhCNRG/ya?= =?us-ascii?Q?JS94FJjhtsodKmwc02pwChN+x8AM6aHWlUN51e5Yrlmxt5D3W25XdaLtAGCY?= =?us-ascii?Q?yrLvJQ5EqgKHwpZI6zwtsxVgkiDxo12IVMTjNxSl36JkXmFIfKbJI/wRFLR6?= =?us-ascii?Q?rXuSrhtxuWdD3CZE4U1FCucUrgfDl0NttdEY+BLrJnjzrdPqmdX968ltWrry?= =?us-ascii?Q?TNO3k7V3iLkQqPL3D/69RLxy1BvvJ86cCrV2MCsybVpXd1n8eXEdxOCR5H9Z?= =?us-ascii?Q?cUYWJ1IuSSnBtfJlxZQTBf++GsUktj/Pt6mpXMnQrIlqA1WiqSTN14yxzKLX?= =?us-ascii?Q?bdR0GwYzHNQblchMtUmIUE7jlePQXSroOdYu5eHy+E/k0dQzjqvM+Ijl/uvl?= =?us-ascii?Q?zq/ahiiNeFJWYkCimqIJqzLV4JaJjYmXOerH+JMiLWRZhgzRHQoHnHpliF6c?= =?us-ascii?Q?8ZeaYvtmYDnGnlTt6V+NThKL+P85+A3Bosoc8yJlcA6i6rWnYX9JC29aPmKV?= =?us-ascii?Q?pBNX1a4h2HzhczoFDouUuPlxxKgyOkIF0en/+KY2?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 261978d4-5e66-487a-277a-08dc228c1a58 X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5732.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2024 18:40:31.3671 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nhpgkajdUVAjt462ac2NoQwZzyqpQmDxjsOzc95y9aEewRvlembSpOzzKv+2bCQOygvpnbbG/suH3GRAtiVxcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6550 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,thomas.lendacky@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: hFbaTGq9E6ZhRz92JSkPHQz1x7686176AA= Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed 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=tNTb4GoI; dmarc=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}") On 1/29/24 11:34, Tom Lendacky wrote: > On 1/29/24 08:40, Gerd Hoffmann wrote: >>> -/** >>> - This function issues the PVALIDATE instruction to validate or=20 >>> invalidate the memory >>> - range specified. If PVALIDATE returns size mismatch then it retry=20 >>> validating with >>> - smaller page size. >>> - >>> - */ >>> -STATIC >>> -VOID >>> -PvalidateRange ( >>> -=C2=A0 IN=C2=A0 SNP_PAGE_STATE_CHANGE_INFO=C2=A0 *Info >>> -=C2=A0 ) >> >>> --- a/OvmfPkg/Library/CcExitLib/CcExitSvsm.c >>> +++ b/OvmfPkg/Library/CcExitLib/CcExitSvsm.c >> >>> +#define PAGES_PER_2MB_ENTRY=C2=A0 512 >> >>> +SvsmTerminate ( >>> +SvsmGetCaa ( >>> +SvsmMsrProtocol ( >> >> Adding these three funcions can go to a separate patch. >=20 > Ok. >=20 >> >>> +SvsmPvalidate ( >> >>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 GfnEnd =3D Gfn + 511; >> >> Use PAGES_PER_2MB_ENTRY here? >=20 > Ok. >=20 >> >>> +BasePvalidate ( >>> +=C2=A0 IN SNP_PAGE_STATE_CHANGE_INFO=C2=A0 *Info >>> +=C2=A0 ) >> >> So you rename PvalidateRange() to BasePvalidate() and move it to this >> place.=C2=A0 Moving code without functional change should be done as sep= arate >> patch. >> >> Also I'm wondering why you move the vmpl0 version of the function (which >> does *not* call into the SVSM) into the CcExitSvsm.c file.=C2=A0 The old >> place looks like a better fit to me. >=20 > Ok. Let me look at that again. That shouldn't be an issue to leave it=20 > where it is and do a pre-patch to rename it. I'm inclined to keep it in the new file, just because it puts the decision= =20 making of whether to directly invoke the instruction or call the SVSM in a= =20 single place. Take a look at the next version of the series when it comes= =20 out and see what you think based on how I've rearranged things. Thanks, Tom >=20 > Thanks, > Tom >=20 >> >> take care, >> =C2=A0=C2=A0 Gerd >> -=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 (#114914): https://edk2.groups.io/g/devel/message/114914 Mute This Topic: https://groups.io/mt/103986455/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-