From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 473CBC5475B for ; Wed, 6 Mar 2024 05:20:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6B87B6B008C; Wed, 6 Mar 2024 00:20:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 666E56B0093; Wed, 6 Mar 2024 00:20:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4E0D56B0096; Wed, 6 Mar 2024 00:20:49 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 3F2476B008C for ; Wed, 6 Mar 2024 00:20:49 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B75F71608C2 for ; Wed, 6 Mar 2024 05:20:48 +0000 (UTC) X-FDA: 81865464576.22.EB1EB57 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) by imf30.hostedemail.com (Postfix) with ESMTP id 8A36B8000B for ; Wed, 6 Mar 2024 05:20:44 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=EsEulxUE; spf=pass (imf30.hostedemail.com: domain of yan.y.zhao@intel.com designates 192.198.163.12 as permitted sender) smtp.mailfrom=yan.y.zhao@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709702445; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=WmtmpG1/t8bg99N8TK2XQSd7CxQQ5qlLrjX/g6UxiWc=; b=DOKuDclRvJttgTcfnZP2IJt2RHw5cGVanfm1lakN9cnbab6tHLDvhrqL935o6KkszW0Zs2 3c7+gzdrwkpp3r7zghq6xhlAmNsu8iaEEOR4NhlAvmNkzC5g6y52rDNYuJX7f/pI/H0SSd MMj/AucQDtLZWzqa6S6A5oQl6bSmdHU= ARC-Authentication-Results: i=2; imf30.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=EsEulxUE; spf=pass (imf30.hostedemail.com: domain of yan.y.zhao@intel.com designates 192.198.163.12 as permitted sender) smtp.mailfrom=yan.y.zhao@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1709702445; a=rsa-sha256; cv=fail; b=3TEFGr+HJMaFGfG3A7kWNZyihxoPL6SsIpQ5OD5i+N29i44fgUkOQWYNOmc0mg2501cptX flg6+xrjO3q0ZqjYHjtP6UGgxxRZXAUl+R+Qn41a+93m6zc8yn93iv1v6y8S0vCvnXlKF8 mt/TFaGzuJZfpx5rkAqUcOts4+xpcco= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1709702444; x=1741238444; h=date:from:to:cc:subject:message-id:reply-to:references: in-reply-to:mime-version; bh=cDMoqob9KmuCwuvTFaK4+DJpjwOcR4RNVsgYy+7I/sw=; b=EsEulxUEQhIC+XG4wKJzVurV22KVk+8TxAAMzsLS8UQby8P53qlQnqE4 fLh+bOHV4/YK0FIb40v264jZSGJjFNt9Vkp1Cjfj/FMUygdKm57/dSYw4 ZiAZ8lHsmt8ul6Dcm32NIpeTLQWvAQdB8UaPpjvEJYwCU+n3R0eiMKNGj qwSuZyPiGQ4MLTYqlZHoX7oYuyWCZPLACR49WGYjtwXRWpL9wxwQwZvgx /UV5VAGh+hIY25w2OT8r9EXtJrcJZkJZFSOIJfUavTuZkRwzkfldSCpJW ZMLuC2DOUBM5sJJ45XxdiItAWkM26WFeREOQ8Z2mbkGrs65/Px5qAkT// Q==; X-IronPort-AV: E=McAfee;i="6600,9927,11004"; a="8061891" X-IronPort-AV: E=Sophos;i="6.06,207,1705392000"; d="scan'208";a="8061891" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 21:20:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,207,1705392000"; d="scan'208";a="40626223" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmviesa001.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 05 Mar 2024 21:20:42 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 5 Mar 2024 21:20:41 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 5 Mar 2024 21:20:41 -0800 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.41) 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.2507.35; Tue, 5 Mar 2024 21:20:41 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NIDcODo7WXT8q0SBxft23/iWQLoZCtqoBhk2P497rvE8WDpwNbKPwDkqpqinJLUZniAS8mKdYHPXkmEaudaH9oozXdgqCpjyKNoqvH5UChAcvvk4BzxC+fruIfGAt3MUlhyeYUGALStTlIRinQxv4deF7M1vP4seI+zVRu4g+8jHyx052U1x8M/yX2eGflqUiH9XFhaqmVNuueMOs6+4Ff0wWdGoFj+ILzh/JFFZJxbB6ANuZ/iBdvpGASs45yh7N9GwbNtXjkF3Czk1xeunkuJNFasy9+yh9Lt2DdLMiPlOTlMQyxM5LOpDAjdCIdKvbMFFmE44YYZ9iNsbISmwjA== 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=WmtmpG1/t8bg99N8TK2XQSd7CxQQ5qlLrjX/g6UxiWc=; b=WbbzjPqsy0ek/xPJWGdX0G2Q3FSuUIaPpQbn2RS8Yl8NM5cEyqNzhwEwFHfEcHAZ1GTgRnkQ35YBhGTgOcCij4JUDqwE5jCxIjE4quInvHoRQCLGzROJJT1pR3Zpr/VuKBZFCMtNRFbmrpW61dSH0KO7qY+xjp/DrIKaQNx54XNXzuuFZbivfdZOOKyKtIEhfDiLonDpe+xHUyaNvHnEereAIvrqV30+/2GO1xAgSOcznZFiS/la2gmH/2o66YNPgOhMy6digIm0ixAuPtG4XgJrFUxrcFTLXLEq45DCS2C7eeUbYjk4oYkPp1pB11zWV651MVjm1xxEPUNyg0ciVQ== 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 DS7PR11MB5966.namprd11.prod.outlook.com (2603:10b6:8:71::6) by BL1PR11MB5256.namprd11.prod.outlook.com (2603:10b6:208:30a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.24; Wed, 6 Mar 2024 05:20:39 +0000 Received: from DS7PR11MB5966.namprd11.prod.outlook.com ([fe80::55f1:8d0:2fa1:c7af]) by DS7PR11MB5966.namprd11.prod.outlook.com ([fe80::55f1:8d0:2fa1:c7af%5]) with mapi id 15.20.7362.019; Wed, 6 Mar 2024 05:20:39 +0000 Date: Wed, 6 Mar 2024 12:50:47 +0800 From: Yan Zhao To: Sagi Shahar CC: , Ackerley Tng , Ryan Afranji , Erdem Aktas , "Isaku Yamahata" , Sean Christopherson , Paolo Bonzini , Shuah Khan , "Peter Gonda" , Haibo Xu , Chao Peng , Vishal Annapurve , Roger Wang , Vipin Sharma , , , , , Subject: Re: [RFC PATCH v5 21/29] KVM: selftests: TDX: Add TDG.VP.INFO test Message-ID: Reply-To: Yan Zhao References: <20231212204647.2170650-1-sagis@google.com> <20231212204647.2170650-22-sagis@google.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20231212204647.2170650-22-sagis@google.com> X-ClientProxiedBy: SI1PR02CA0026.apcprd02.prod.outlook.com (2603:1096:4:1f4::11) To DS7PR11MB5966.namprd11.prod.outlook.com (2603:10b6:8:71::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR11MB5966:EE_|BL1PR11MB5256:EE_ X-MS-Office365-Filtering-Correlation-Id: e26b55e5-15e2-4672-3835-08dc3d9d2936 X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 33WjOPrR1aErE6j1+QQIRgqZG8GeU6KTppYOmPUphGTgm9w07ew5glZAqkvVTLzDJaNz130fxWuCOpMeQvNdgQrFCIvH+zu0+6wTGAJnkWNuHzXmIJxO1Eq0DwYvdGwUc2g64kxCqaBRU7NOFjNei7aXUiOX7MoGieGR6KF8z2QoN/uMnChOQlS5xug1kybp911lYgLPMUyTdiZKeFahmtAFw2jWJQblhiniXRZW7AhHWMvBdmDwx98EnEjs0VjT5nFpHspng9J4BTVfK7GS7ndMt70PBSmChmjBhO6NoZ0PXCDEB+t+ZJ3G4rRfL9VsGL6UnFLqlMhYm5+BE0sLyIT9huqqw/9O1Qh0Rrgd6WmY5YP0rycJyUAEdrMpqg37FjH9rmoAaPS+Kdl9kyj0KeB3QmOzbvoqkijtFQ2YXqFCi8SwB0++5KvJ0BG1FHGV8nQ7oC7mzXwZZLs2ljp6AYDl4fbLKDyqYMqhVwsZjvSfDnU8RnAP3jwublPqEJzr6aXhLHDfLYv1a1qdx7bEZS9/WnGCQQAayt8weWoY5C38Z4TEwFF2vfomoD3HkGMspR38DGG1xEe7SjA6FdBvdQyIEvwu9NVBu7SrbLk1VtY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR11MB5966.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6TyOfnXD5udL0qVOpcuFKOKSgXZljr8im+ZwTZ9U5EbgwB7GpCwdDyc+n3da?= =?us-ascii?Q?nLe2QTlmvJ47y28qwc8D4Ye7LRDBhhvKqPsigHHsorrMZnfYVXolyQSg6zMO?= =?us-ascii?Q?5BcVF4jjj6mXZlTo48azSKSu4BNj1Ers+u5aRDShgAKFsAzoRoolSpneSiSF?= =?us-ascii?Q?g60ZTxzOHld3/JdqzRePgbgjmdQQROITnQxb4GI/ijck/20iugXpzfTUVEsG?= =?us-ascii?Q?m8okNIUQ1W52HUKUaqC1ObdCwk1BtFYLljVKpR6cLpuY95SRn6wHFcV06dY+?= =?us-ascii?Q?l3dgZY/BgHMDVckSIp46fjXGHMo2qTxS/aNFkEqCc79dCw6SP62W83W+hLzd?= =?us-ascii?Q?Z9JvgJ1TjIUBdjUKma1gVzhx5okcoJp24rzZw4Ko0lDUYfC9zHBJAkXZWkp0?= =?us-ascii?Q?lo71we9g82geyozuCK6KLvhNskASXY7csWAhVvMcFZux0M20ZWLySN98Vm5k?= =?us-ascii?Q?MWGD/h2TcC/pvng84w27DrDZXOF+SvgNPE+uTqLgE8sh8C5g/bYJrhaXjwCM?= =?us-ascii?Q?87xu9lpN1wabM4VB7paGka5orEYU7A3seKfJIrSv+KR92ZUiTIjnpnxJJhTA?= =?us-ascii?Q?uYKWTHyp5BwqITbG2yXt8jPhNVMXS+3+c42RKsBNemSUBIgNujYkCHpnayFB?= =?us-ascii?Q?424U4hU3JVY6f/cwiEeqN6SeJsbL3oWohS4qmlzMB+a9SjCZVcSULA57Ro1y?= =?us-ascii?Q?r1JhQzHCO695qQq0R35Uw9dYH7WXLlKkIECce48okUQuU3DVshLOskLbVFGq?= =?us-ascii?Q?DHydLDq0BAA5g4RFPKP+imgMDdzhEYZlwRNlfwojENWb7disW8uXS/LnDSpU?= =?us-ascii?Q?FIdLKd9Q1kMkXPyPDhX6xC0mA4vIvEhOd7mf7Pxsm545EC0APZLURdFfr//5?= =?us-ascii?Q?9PdvOon4K2dAQlV+guK/HvoniUwy3uqaeGxGHTc6dHRYGQnKU4hxgMjjUj+G?= =?us-ascii?Q?6Y9aPRjO975Px2Mpkv8Z4E0X3NdGJqcoFAaaU0Z12ya+uIUoxobefzL8U5At?= =?us-ascii?Q?SUlu4RC7mQPQRTHleWo2wfw2av63llyaK1y/oJxrxaiQZNRSNK8xlvYa2WdZ?= =?us-ascii?Q?qurJ4+KHHOjCTsfn0BlFzMr2d1ZP7Zg+D56rqgefH++q7WFGMBx0caCQTV6q?= =?us-ascii?Q?vM2HJFImhBZjKUdej185ciUzkLVe+hTy06EyfeENy8XgJzhriZ6zvP3vEWCR?= =?us-ascii?Q?MFb8TpYDViBb/1A/QQCaaWvYJCTRjUWqz2tQFFGOnygkWA7rZ+nWL/zUEHCd?= =?us-ascii?Q?Dq8WKellczRVgNaDNml4Hdi9H5Q3z5crkkNsLu2O+YxFabATXzbmNJ24RDCh?= =?us-ascii?Q?f81syTaNxXzm0MNDAvmZTodzxETj9ZXwgtVvIQ6kL6K3GMlm1U4OULkFUagd?= =?us-ascii?Q?nn4NwQRn9g/OmnWu0IJshBO4PINQVfILKOdunXlLj+XybGltIN3pLdMGXyb9?= =?us-ascii?Q?r64RmdhHfpDEyWejgT+ohj6QrqCKuWUbUKSuDvCRoiESGPEeXv4Ks9dMWyyN?= =?us-ascii?Q?6frLOqmL/BPEXW170vYtYnAifgPOIQAYrVTmxSAiTeb5O/AJK6idgGRVpDLp?= =?us-ascii?Q?f1e7bms/QE7WFqDg7b6C1Ibk9OQgwj/8YTGCoIz0?= X-MS-Exchange-CrossTenant-Network-Message-Id: e26b55e5-15e2-4672-3835-08dc3d9d2936 X-MS-Exchange-CrossTenant-AuthSource: DS7PR11MB5966.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2024 05:20:39.1456 (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: Hwf2LKoJSSDuxylax/a57PhLqAu02Cqm5kE7NcSN/8RMjXTTddgSQpw4d1qym+LbJTSx1WY0AzMto+efr6AUEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5256 X-OriginatorOrg: intel.com X-Rspamd-Queue-Id: 8A36B8000B X-Rspam-User: X-Stat-Signature: my8ngaiuyfg9zw5gzt18cn9bhsw1aamt X-Rspamd-Server: rspam01 X-HE-Tag: 1709702444-426228 X-HE-Meta: U2FsdGVkX1+t45BrpAyviJfphXt+8hRHt5rgCbwJw0B1c9WPllmGvtsv1ZTKIpHmOD2bQhJt6mTp/vZjO3DxEzReAyEemrRNAqIEXV48DHkGtha5KlhHJ8JquZ1LXE1rtZyoowFtR8Nkg6hr3bVzY5TRzS9NiYG8zS1f3u+TOW4/nzQOFDsEjfY3IF7OxLLBdQdnwFPzx7m4iQaI/whQtuk9Q1ESq3PWmHJxsjv1KnZYibyajOtsHSEvUXa7IstOA8z1iUUG/WfyFoGwOpX/EXFBAtWkRSrPe5H5oQAQ1nd4vFIV8WLFbpxvM1i00gRVukneYF8PuYXfFbns39itnhQWx8YKqqQKY5dhYTjFbWdcCm2vaRCWWDdXUKh+0YvnIv6i8N7fwbHsOMgMPcKp1sAVc95rIkqeRUh5S0fKQF1dXOF/d7sn8AG2j/QDALk/8xizgcnu1fWG3uClNG8+6AiOwb8P7P5wZ3+PHZx3xgvvMoFdOGrVrpGPIRAiVbXtOKtnkWSqf0a6i1xFqNpnDHZRGktVsJAqBVxDU/OPo0K4QPvdGAH7JdEiaFlzQ2uBwjXFgtOL7FEDFw89ng6yCmQnm9aC227aNU/8pGdm/miGr5DQpeNRUEiFLVel4/iwxbBvx+vokxZjmwzuNWBMKT7HoWb5ZTVqbaOoJZhG3JP5CGb3+Jxm1W1/QYRG4TklWeNs5E/pmm1SRDBshlHxVRKsIZdDJsvZ0JtZZFvPm/ZRgd+hLbNfoLrXfKwFqbdsYG9Al9wAwD93ePHVoll9EHOstRgxmbczgrWPAUNxWZpzF4QZgmcabYwMq7e7woFJ1M7rLetU8vjYgyYK+gamYwJyCNYYTh5u6UdlPLLv7jm9sj6oK0g3p7z0A29HG/31I95+GsLs/Y4ylWshrdoPsETFDKo0p/5i6AcarS+F6MMuu70WbU1i9F7x8gZZSp6/9dRV9MMtMgYlzeyJnx/ Czsn8Cqb HHErlE+2PPkzcjaBB6eJKlyZAle9rOrs02ovlta2E01LRxiF6eunx1dqhfr0iAcXl55VaAfZVQfCd7+l5GTcT6I+CkCwDB/T53tICLlwAcvSQy6s80AT6lXW2jzh4hU3eWd8kEww9OhrYrwCsPxO/ERCrSLFWNyzIRcCY7Oc3z+TCgl+qyANgVm7RA77Erew/XDtUMyfix76bn14cfeVzLWQXLJKhg7aE3VcLjc3H+h9Hc1l/72tcoLqsEc6kGSb1L/XXog0fMtCsG/u+ejWmyuvyu1N32Qkk5UOs5HTM7dU1pfINCgQCV2mAg46PGERc2HjFLXEyxViyqqvhY0u5W9n4hPGawzd9aIw3vKmkOaHQR0BZ2pBhFFKvCVgBxt5V2ZQQgZRwT2b13U5gODiAeQFo+WFF+Z/p7fYVvOW4bVtJASky09Oe1ZGL1g== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: > +/* > + * TDG.VP.INFO call from the guest. Verify the right values are returned > + */ > +void verify_tdcall_vp_info(void) > +{ > + const int num_vcpus = 2; > + struct kvm_vcpu *vcpus[num_vcpus]; > + struct kvm_vm *vm; > + > + uint64_t rcx, rdx, r8, r9, r10, r11; > + uint32_t ret_num_vcpus, ret_max_vcpus; > + uint64_t attributes; > + uint32_t i; > + const struct kvm_cpuid_entry2 *cpuid_entry; > + int max_pa = -1; > + > + vm = td_create(); > + > +#define TDX_TDPARAM_ATTR_SEPT_VE_DISABLE_BIT (1UL << 28) > +#define TDX_TDPARAM_ATTR_PKS_BIT (1UL << 30) > + /* Setting attributes parameter used by TDH.MNG.INIT to 0x50000000 */ > + attributes = TDX_TDPARAM_ATTR_SEPT_VE_DISABLE_BIT | > + TDX_TDPARAM_ATTR_PKS_BIT; > + > + td_initialize(vm, VM_MEM_SRC_ANONYMOUS, attributes); > + > + for (i = 0; i < num_vcpus; i++) > + vcpus[i] = td_vcpu_add(vm, i, guest_tdcall_vp_info); > + > + td_finalize(vm); > + > + printf("Verifying TDG.VP.INFO call:\n"); > + > + /* Get KVM CPUIDs for reference */ > + cpuid_entry = get_cpuid_entry(kvm_get_supported_cpuid(), 0x80000008, 0); > + TEST_ASSERT(cpuid_entry, "CPUID entry missing\n"); > + max_pa = cpuid_entry->eax & 0xff; > + > + for (i = 0; i < num_vcpus; i++) { > + struct kvm_vcpu *vcpu = vcpus[i]; > + > + /* Wait for guest to report rcx value */ > + td_vcpu_run(vcpu); > + TDX_TEST_CHECK_GUEST_FAILURE(vcpu); > + rcx = tdx_test_read_64bit_report_from_guest(vcpu); > + > + /* Wait for guest to report rdx value */ > + td_vcpu_run(vcpu); > + TDX_TEST_CHECK_GUEST_FAILURE(vcpu); > + rdx = tdx_test_read_64bit_report_from_guest(vcpu); > + > + /* Wait for guest to report r8 value */ > + td_vcpu_run(vcpu); > + TDX_TEST_CHECK_GUEST_FAILURE(vcpu); > + r8 = tdx_test_read_64bit_report_from_guest(vcpu); > + > + /* Wait for guest to report r9 value */ > + td_vcpu_run(vcpu); > + TDX_TEST_CHECK_GUEST_FAILURE(vcpu); > + r9 = tdx_test_read_64bit_report_from_guest(vcpu); > + > + /* Wait for guest to report r10 value */ > + td_vcpu_run(vcpu); > + TDX_TEST_CHECK_GUEST_FAILURE(vcpu); > + r10 = tdx_test_read_64bit_report_from_guest(vcpu); > + > + /* Wait for guest to report r11 value */ > + td_vcpu_run(vcpu); > + TDX_TEST_CHECK_GUEST_FAILURE(vcpu); > + r11 = tdx_test_read_64bit_report_from_guest(vcpu); > + > + ret_num_vcpus = r8 & 0xFFFFFFFF; > + ret_max_vcpus = (r8 >> 32) & 0xFFFFFFFF; > + > + /* first bits 5:0 of rcx represent the GPAW */ > + TEST_ASSERT_EQ(rcx & 0x3F, max_pa); > + /* next 63:6 bits of rcx is reserved and must be 0 */ > + TEST_ASSERT_EQ(rcx >> 6, 0); > + TEST_ASSERT_EQ(rdx, attributes); > + TEST_ASSERT_EQ(ret_num_vcpus, num_vcpus); > + TEST_ASSERT_EQ(ret_max_vcpus, 512); Better to assert of kvm_check_cap(KVM_CAP_MAX_VCPUS) here . > + /* VCPU_INDEX = i */ > + TEST_ASSERT_EQ(r9, i); > + /* > + * verify reserved bits are 0 > + * r10 bit 0 (SYS_RD) indicates that the TDG.SYS.RD/RDM/RDALL > + * functions are available and can be either 0 or 1. > + */ > + TEST_ASSERT_EQ(r10 & ~1, 0); > + TEST_ASSERT_EQ(r11, 0); > + > + /* Wait for guest to complete execution */ > + td_vcpu_run(vcpu); > + > + TDX_TEST_CHECK_GUEST_FAILURE(vcpu); > + TDX_TEST_ASSERT_SUCCESS(vcpu); > + > + printf("\t ... Guest completed run on VCPU=%u\n", i); > + } > + > + kvm_vm_free(vm); > + printf("\t ... PASSED\n"); > +} > + > int main(int argc, char **argv) > { > setbuf(stdout, NULL); > @@ -1169,6 +1313,7 @@ int main(int argc, char **argv) > run_in_new_process(&verify_mmio_writes); > run_in_new_process(&verify_td_cpuid_tdcall); > run_in_new_process(&verify_host_reading_private_mem); > + run_in_new_process(&verify_tdcall_vp_info); > > return 0; > } > -- > 2.43.0.472.g3155946c3a-goog > >