From patchwork Tue Apr 8 09:32:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikunj A Dadhania X-Patchwork-Id: 14042549 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2062.outbound.protection.outlook.com [40.107.237.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 82DC1265CC8 for ; Tue, 8 Apr 2025 09:32:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744104767; cv=fail; b=IXfRH4ONMPPNHdAe0n6QXYY6TOBin5Fis1iGoyn/SZ70e2Pb+uZITSAC0111/gVpo2HXCtBbOUa2ZoGs/DzP66O3iBXfbXYGQsjciD59H6ekfJjbdCj7eqTPE0hDLl2NpLr/pO8U+mw9QhKtT76Z+9xfzC6TBXE9EnSiJAA7wbI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744104767; c=relaxed/simple; bh=2FomvMLMKs+/WtZnjYoF1gAsFLdtaFLK/XOv/valnvw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lufzbOyW5c+JVyXvRmkQ7N/oWNTeC1xGyDtGQHZZ9hnksYqOAfNZ1Aj3Ocddfp2NuL85lk/iH2+CGdXls6tUsUBclVOupwJv8PtQQ/R/vlTYygmouXbflKtpbblqEHvVdAnd6YNqfytqL3P1IsWHcj/VjqJQVocALAsPj23A4B8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=4ryjhHtS; arc=fail smtp.client-ip=40.107.237.62 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="4ryjhHtS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jvTCdkNJooDAW80JxhebWH9edcxBAf7wiYgFlR6o2qrczJbevJ68PMWV2JZqlDQiMBgrBVZKR08Amit8ej2ZW6zDxkRh67IOzhr6YDRxMIhSHPBwkS+G4zNamQz8mKMsvMxs32y7ecMJUJYESQwo2yTAGbfYQDeoied20nUXyH/ysReXW8DmDKLf3BeUUefkZvw2UgQ4WFZFv2IKtuX5O2StHcLmc4i6FPT1j95abg+H047lk8Sg9t7pt0yAKzvACOY5QlVPcsb4z/Gt/ph/tD2eOYvCP6vYdQ2n3zUtQXhGPcirRrlIeFKlwNyIlwsb8IC5LEG/tjDu+uIt3jZQNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=+TBApxq1THnEy8OmubMXCMitXGifIv63WPsj0rUnnN0=; b=PKwbT8U0v0HoOQu1mz6FoDkunZnvYKW69NtoRCAL9iZCvhOvqhfIQUnDi+v8ssIktSh0jLw6uiaGHeqdd40w6qlCTW4qOFfVdOhlvZbqtggOVfeRO/aiG+8LNHwBHZG/OrnZBhzXPihOZiCjGnryIPb2XaGhmxYV9B9nw4N5S0KvnDmbnSC6wG8RSOeMP5JP3Oo59k4JbF2xBIxJex5muqqRPvcY90mjsBuLtHgdLvOtmVwDs9PPHLWzzon+fhh/0U7ruaMSbDqBOfR78W5YAXGdu/3U5cdg3UJ6VYb4gBO1pxasaCfdmHuNn5xZyl55EW4EHOMCY0NUvWwCYkZw+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+TBApxq1THnEy8OmubMXCMitXGifIv63WPsj0rUnnN0=; b=4ryjhHtSUphdLbvST10fILkcRx1nnLQ8fEm+a4p7xc6azx6KrgHf7cMY1hU43vCTJuvi+Q70t+6I7nB4ma3Q9wqjR7M+DB/I1BgsO9+ANNH2rDS1F0PfnI22onnkfVmtwkBj57NU++x93+HSX5diVk5EFCLcvBXgABDiy7ecq14= Received: from SJ0PR03CA0099.namprd03.prod.outlook.com (2603:10b6:a03:333::14) by MN0PR12MB5953.namprd12.prod.outlook.com (2603:10b6:208:37c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr 2025 09:32:39 +0000 Received: from MWH0EPF000971E2.namprd02.prod.outlook.com (2603:10b6:a03:333:cafe::fb) by SJ0PR03CA0099.outlook.office365.com (2603:10b6:a03:333::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Tue, 8 Apr 2025 09:32:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MWH0EPF000971E2.mail.protection.outlook.com (10.167.243.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 09:32:38 +0000 Received: from gomati.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 8 Apr 2025 04:32:34 -0500 From: Nikunj A Dadhania To: , , CC: , , , , , Subject: [PATCH v6 1/4] x86/cpufeatures: Add SNP Secure TSC Date: Tue, 8 Apr 2025 15:02:10 +0530 Message-ID: <20250408093213.57962-2-nikunj@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250408093213.57962-1-nikunj@amd.com> References: <20250408093213.57962-1-nikunj@amd.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000971E2:EE_|MN0PR12MB5953:EE_ X-MS-Office365-Filtering-Correlation-Id: 6532ae70-c80e-4966-25ec-08dd76804d54 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: KtG3zFt3hHpDbKJP0SeULtY/DD0VNhnkE+RWHHVflLFibg8BeonRocG6J+sHhzU3TcE6ycByQoy1gmq6wjdNLKlnmF9sD4YRkVAb9YtUj+HzB92vgOAGGlGDH9qFnyD3kTLzRFGcqxAl5gKUwjr5i0jbVeDxnC6RecZPPs6tRWNKEb2Sur/zPxiMxkn0TjBOszdJ2ONAZak1JMJkknw58wBy+UdpP2uBlosJj5JFywwIlvnD5gCvbjjW/hsMkyzk9P5QRFVT4YJNF0zIsXrA3Tof0595+6Qsu+nZTuIGy4xTLK5jk1++r3WpwFiK360Nb929oyf3uEKZiW8FOkB2fMDdnkL/MpzxUdk/n1mUrnSDHvfO1Z4tZe7fEVSfjH5P3ySneKfFb2SGP2yX3lHrziu2NGXD7VKH6HKqjyk/HOUw4KEM7SVENp7mYnKiqqxmFya0X2q7M+KOFKQcQylMQspWoSfyN3VMcbLHNWmdjc/dj/W0u9B6PgZl32v96No1Vr/qPsv2ukegdQMh1U7ejIkecxCkjfGZU/vJHC7u3BpZ8cxQek7LUE+GxNufGgMqc1B+5fKujkJa5ueRhUqYoxaKoC4+gflxIakr8gP6wWqpluy15uMRFu35SlJRAbMRqPUsG+L0DWHXNtu4RokcRWCDRes0iAFSevtYiww7MNodjdxcLkRo3w8sSF3oOZJeZhCdALZ4SxDKGQbaUIggkDx6pMAt56d02zB6nCl39MraprVlMsqCUxZtn+O9BUg0M/xB+1hwrPmwUer+ZhlZ04532RN1+iyNvOm4DQb7ip2Nw9GyT+2phDlcnQn2bDHDGXZqA+EHTgqVEZovCM3iWvpY1fdqa4fdx/iGyeCdhvv7t/ZC3GgDqMudnm1X8Xn7Pd9FKK1jSBSHcOANk+bryMquaaHZ7d7x160B4G0NMmF5xvTjOm4Nv2nnvOa2nAU+zyJIJ12MHfcMFvC5/9VPkZ8kcuCy8mgXzHdD3JGCnM6vomUKpqZR9IABX6Pq+XAyFE9bPpWrsgsdCOgX4yMtVmiPJ0Va3Rao2C2ZONpsYuqVphEaaR27uj1yZNDCNurd+rzCylXVfVtREWKjzjE2lJ0zLovSnI3FwJ0QtJYWW473cX5MpAZiyNq4TLhTSuXQOjsnU4H12nLFv8O0f9wJsQUn53YMRcwoZ4tKRTyfkUmd6L8jpdVb95vLT/XYEJSgPh4Q7LS3ow+8CpAmVut6hcBRsPYA08QybdFlDg/Uc8gAjW6ycdU5pxNHCCBpLfy3tfKdicZCoO+5fH4XRupnRGGYurMAr7Ln1dUR831mCYVzWYhlgd6NPXaerLzPM30mRZCW9YFGLnT7wT9OHtFnWMYuS7KV2ZzO59KhKIDDW6IOOPav0RYFQ4XiiQ5XLW2sfydWxUkoWZiq274hPU62BFWW/oYylvAeWB/oOBQ/0ZamKcRqKCzI10xAnHJSCLC7N55yigKNY6lUwMJjQhg9nTA07vzPT1itdYsaqS62oW0= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 09:32:38.0324 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6532ae70-c80e-4966-25ec-08dd76804d54 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000971E2.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5953 The Secure TSC feature for SEV-SNP allows guests to securely use the RDTSC and RDTSCP instructions, ensuring that the parameters used cannot be altered by the hypervisor once the guest is launched. For more details, refer to the AMD64 APM Vol 2, Section "Secure TSC". Acked-by: Borislav Petkov (AMD) Reviewed-by: Tom Lendacky Tested-by: Vaishali Thakkar Signed-off-by: Nikunj A Dadhania --- arch/x86/include/asm/cpufeatures.h | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h index 8f8aaf94dc00..68a4d6b4cc11 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -449,6 +449,7 @@ #define X86_FEATURE_VM_PAGE_FLUSH (19*32+ 2) /* VM Page Flush MSR is supported */ #define X86_FEATURE_SEV_ES (19*32+ 3) /* "sev_es" Secure Encrypted Virtualization - Encrypted State */ #define X86_FEATURE_SEV_SNP (19*32+ 4) /* "sev_snp" Secure Encrypted Virtualization - Secure Nested Paging */ +#define X86_FEATURE_SNP_SECURE_TSC (19*32+ 8) /* SEV-SNP Secure TSC */ #define X86_FEATURE_V_TSC_AUX (19*32+ 9) /* Virtual TSC_AUX */ #define X86_FEATURE_SME_COHERENT (19*32+10) /* hardware-enforced cache coherency */ #define X86_FEATURE_DEBUG_SWAP (19*32+14) /* "debug_swap" SEV-ES full debug state swap support */ From patchwork Tue Apr 8 09:32:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikunj A Dadhania X-Patchwork-Id: 14042550 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2056.outbound.protection.outlook.com [40.107.243.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8321E26773D for ; Tue, 8 Apr 2025 09:32:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744104767; cv=fail; b=k6bteWh92rMTtPOkDz/ALneSyfklc2gMh8Zsrm9UxlH4rYBRC8GreJV47Q5LVgd4iEgjbfzn0Ck/p05f8Dsgqoua0khE/H286g56wtvr87Hl47u8p8ApOeD2beNqvK57quaGX0cBM0p1CQW9neuwDVlXxerMiESlG+JCOZ1OdPM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744104767; c=relaxed/simple; bh=+1kIjpo32mxNBWfG/Vh+1z45oUbcTNpQuUGnwbgWhEE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=iOGPAMqBLMc4QEz7EaT4IXt/zd6tB4i4J9Kh65rEiOyrKHgtAJG3Tz04DEh48NpZ7aLbwh1o/hlvqVfbVSeQ/YmxpVQ/SIJtROS6YYwBUm0X9ld9+jxx9RT0h+a8+Zcm4zGVYQYMwA71Jw/Q+XWTbNK7/E8RPT3svK468F+qky0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=DHdV+h0v; arc=fail smtp.client-ip=40.107.243.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="DHdV+h0v" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oAT1O8GtMOAu/oh9fQ1kr9K6b3i9O6VPazwyryiUdcxTeJSEkhmmw6qYxXzl4SziGYBBqEVac00C3+WzRLx3AelWpQ1pHvOIBo9IIsYw7QAMwalSo9D7PsJa/ls1vY6fwKlM66N71KfbV83VcUXvdDa7c9DTA3GVplo2Jbg/U0TdhKZkkY0hvzivXnHZvD7659Y5CNqkLOUz7fDYqH3W1oj8p4zV72OMTth+d66/bmMF/T0ThZ+J4rAQS0IolyP4UtxIh49SQWekI+Jyste2gAjBSloGhX/NHgxy3FUD+553erebLgUhjMj1eC+hMp0frg593q75xGlgpN+5MWfadg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=ddkdwJehwtdN89XF+lcmjDOqCDs+zDrqbNWjytkDcNQ=; b=R7Cm+7aK6Mu2hY32BZvb3BPyWReQlsjNwuceHulORBj6uaGBQHXcYl5YWUwmj1cmbFITkfVqmKrStdXHHrJbOpF+3e6AueIAS3WHUN6s8/nXCG+1lcJjL2rhG61a8QgmOhQGEanIQh+AgzR6BCByE0zG5rKuVVc4fYDFtjVUHQtiuYLLZqN3EiPYLAyNIGfm2ggTXzRtPVXJ0Un65twWHj6oPPdZspJdJQhMq0ia/5HHPEJlgHJqarNQ2X7DE6K7sR422yL2rcj7sZsLzLhTGfBTGJ08jFpMjv5qTONZg4DrB0PW2MX5myiYHpkOkPZ6+b7heeN6FOn5fIwyS+972A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ddkdwJehwtdN89XF+lcmjDOqCDs+zDrqbNWjytkDcNQ=; b=DHdV+h0vVztscLKQXorZoSkbjkNjeW82kehEJXTqCXCBMbYKQQeF8fSJmhIt6uPZCUT4KZEEMvKafAPT5yxajuccc0rU4i6jGUJZ2jh+hKFTxABfrGLA8Kqe0I9+d51XzV+cTyBQplPcNMKxZjDsTYQ4CwLC4IgV5zyoStzHVbQ= Received: from SJ0PR05CA0145.namprd05.prod.outlook.com (2603:10b6:a03:33d::30) by CH2PR12MB4326.namprd12.prod.outlook.com (2603:10b6:610:af::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Tue, 8 Apr 2025 09:32:41 +0000 Received: from MWH0EPF000971E8.namprd02.prod.outlook.com (2603:10b6:a03:33d:cafe::b2) by SJ0PR05CA0145.outlook.office365.com (2603:10b6:a03:33d::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.10 via Frontend Transport; Tue, 8 Apr 2025 09:32:41 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MWH0EPF000971E8.mail.protection.outlook.com (10.167.243.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 09:32:40 +0000 Received: from gomati.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 8 Apr 2025 04:32:37 -0500 From: Nikunj A Dadhania To: , , CC: , , , , , Subject: [PATCH v6 2/4] KVM: SVM: Add missing member in SNP_LAUNCH_START command structure Date: Tue, 8 Apr 2025 15:02:11 +0530 Message-ID: <20250408093213.57962-3-nikunj@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250408093213.57962-1-nikunj@amd.com> References: <20250408093213.57962-1-nikunj@amd.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000971E8:EE_|CH2PR12MB4326:EE_ X-MS-Office365-Filtering-Correlation-Id: 32ae83bc-c221-4eab-7cf5-08dd76804f15 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: YPVPX+SL7/jdDI29q2dPxRBdYfQHnpqtiQPljU6czBUMd9m/pZjgsgszK8AfzxrztpDVJRw3HFXxd2qkUm6WYURzZC9KzyeM7L2VAOJ4BE5iZFA0sWQev2hBTYmmjdkgBhBp/uv+yxVId57T5D9sctEUkWXlAv3PBG0KUdsH5jS1OyyNckCXC+USA+aHdHVHQ01pz3cmwplUe4klgXfBChV/GPta00wObt3ewGg4p/F0Jhh5m2UyPvwIjruZaCH/M1xyW7SoJU15OOD+SK4mzcRn11gchGrSA6wr/S3xbaadQ9zgn7kmGBCUj/Pf8GZFo2ky/7bBoSxszu6ppqODAB9eD/x75Gyx7aAC0pWGycB0hdlTPWZ0g0O43nB8PzA2lD+vrRg/Nc8mog/U5qJoYCuubXFu4W0vWfzBbzUc5Um8yBWk1QqoAxDLiDGFVFeHKPAncbiAyosz4230n7pJ4vkhotn/Vu/dZV5xJ7zZubqvDK83b4r8z21nymWSgMJbumguDJYqn/GbNwIpOQZXqKOyB6rYSV/znymS+CHYpYy02X0/fR2hmdacDynFmHFHa2mSnYhiQ4oWu13zEdalHdQhfc4YI+d8drN6kMQZMXUO4iWRl5nkX4BQR4l0+9EehRzUU+46XCUqAnYvpHCpSifpBYZtVX2cPCc77D9mmfh6S/0sI7fxl0mqKQZiTg9byMKmDi7nnz3Umso9tBX/ES/drThAdqpSVo+A2CGL9tx7ZYo5+WoG9S9A0xUJcm50EiY4mkPnVbh0CRSVs8unMg+8JZVHoGOenmmXzjTilHyrfTC08WhWiwPXMpdVcrs0JgaiPlaRSjw/oPYi8xvlkRfrM0fBM/N+bIqy3ZeJcomMWKB+CnaVGXk8fIAg35zcdbvrRdPNLlcRyB7buYlI38/L9fwWJcOkxtr1jlhIBR8OTvzgP25IIihnjkSnheCExGu22fDnv1Frx8z/8Ye3vwKOewAgEuMgU6v9vN1+fkOBxjwbu4Vw8ltIvT3mmNJZ7T0OrtFESOcp3n89VqjSf9lBTGcPDC11sPp4XURghpLRhw/MbffSH4dK8cyP2tp3SJe1Vyidf4JlIiwo8MYIvNyjWCyfDw6H2ZSyUSouGMLSKuaDqZXfYLk9Kt6Cj/MQl3oTVJGQWM8B3XTXFRJQzVnyd2e0yTY/xDdcm1S7vmW3vkzD9paQA56+IG45atazi74XO7yCybK1hSZTW7xe9cMrvkmNUexnzdBGPRJNXq4KgsEbfxca8WrC9t1XKriBtzVM85O/VhZtjLchxHErjsP8/HJ8W4Md2PqNLwYfzHTwUXOXFfrEbCjIg0kM3ALBydPX3lJNJFbY9xZzzjqfgQ4Laa/CtQLhBjuAKdaPKb9fFz6//zp57Or7sGvSg7vf6xjaEr+pXcw3PBIiOYb/Hv8FFttjP2394zGDMxytQD3LIj2hFurjD2NiaIl9VIVTDLkIbNLZ5JXRQrEdroctiCoabtuRP8BmmqedpI/Q3ZU= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 09:32:40.9772 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 32ae83bc-c221-4eab-7cf5-08dd76804f15 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000971E8.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4326 The sev_data_snp_launch_start structure should include a 4-byte desired_tsc_khz field before the gosvw field, which was missed in the initial implementation. As a result, the structure is 4 bytes shorter than expected by the firmware, causing the gosvw field to start 4 bytes early. Fix this by adding the missing 4-byte member for the desired TSC frequency. Fixes: 3a45dc2b419e ("crypto: ccp: Define the SEV-SNP commands") Cc: stable@vger.kernel.org Suggested-by: Tom Lendacky Reviewed-by: Tom Lendacky Tested-by: Vaishali Thakkar Signed-off-by: Nikunj A Dadhania --- include/linux/psp-sev.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/linux/psp-sev.h b/include/linux/psp-sev.h index f3cad182d4ef..1f3620aaa4e7 100644 --- a/include/linux/psp-sev.h +++ b/include/linux/psp-sev.h @@ -594,6 +594,7 @@ struct sev_data_snp_addr { * @imi_en: launch flow is launching an IMI (Incoming Migration Image) for the * purpose of guest-assisted migration. * @rsvd: reserved + * @desired_tsc_khz: hypervisor desired mean TSC freq in kHz of the guest * @gosvw: guest OS-visible workarounds, as defined by hypervisor */ struct sev_data_snp_launch_start { @@ -603,6 +604,7 @@ struct sev_data_snp_launch_start { u32 ma_en:1; /* In */ u32 imi_en:1; /* In */ u32 rsvd:30; + u32 desired_tsc_khz; /* In */ u8 gosvw[16]; /* In */ } __packed; From patchwork Tue Apr 8 09:32:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikunj A Dadhania X-Patchwork-Id: 14042551 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2042.outbound.protection.outlook.com [40.107.237.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2C8F26773C for ; Tue, 8 Apr 2025 09:32:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744104769; cv=fail; b=ubpj+QZg7pqhjWRugMW6gCVX3icidTxlpyuRSb4yOkvYR97LGS6xjxLfuInSnCffn5NaS/w4pZoOujt/wPRBCrilGR3ZHdbz6rgQEFPwQZNKlqCfSrs1mLI71xPW+ISZHoDjaa/obirtuIKV4K3A0YlizJ8Wbek9O6RK5SKvFjQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744104769; c=relaxed/simple; bh=ivO57DsrV4PlXxT4GtBS1ELfk7FGsxT1JVBdm2lug/s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ntPcbT52XzGwwpv78xp7uQYG+txVeOuabvJHBOAU1osvNcv3zYFBYELjZ7e/A+d45ftOqwF0JtIKaw7I41bRq2Z3JGfs52dLiW8Z3YmvmS9k4bh8GBfqHS2iGRRoQEH0vkbuCcIVS+4/JbopOMH+5Na58vU/Rqfp+Xi2ijDllNA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=nFoJ8+x9; arc=fail smtp.client-ip=40.107.237.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="nFoJ8+x9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=crdaE/10KT5CppLPbJB4IGJ9E7bm+e2k9FJRDwNvr1RHOimW/rfq3+DPCa+LUAsKN2qa+7mqL/jNr/2Vzz7+VDth6a8rnte5ToFkxcwNC0UPh0gfvXG+G4RfDlCREjJwrjRwPFb3S3aXecmZq/DZbsdvn6XNLV4y58G3s2e7fdd+YYwixA/zszrPKu4Rv3CPSNgLJyNpwI8GefbDMngncrHj6CIsfB+IUhlUi7uUybfYDHS6Dw5plXSP9hoItbIt+1RslpggVRpmyEpy3tRNoLkO958WwBSOLKYRQSzwTCI/M7teRxWm5OgY7fA6lEn/i5XJC2q9KgL0BcbxjojBQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=B6KP3Eq310VoFURFu6Os7zLd2LrmorcF/dLSgiDjGNs=; b=DN1nVMe2cmnxecAcnvYqqx8MfZ+wUBXJFtUVKFxDMpcZiQ6cQHL2IddmUL5s5swoe7fC3hIy03zRXLuVU59D5YyNA7WMRzl7qksq/vJ6CFA8+ffmWw4FYzvPTwmZXhK7QbtnQI5lRbFT46epRK8KAoTVB1dax0k4tkkx4av30qHIIwQq/9VZ87YJK3JyrQmu53leA6SszfWjxyAnwjK6vqOKp7DOerOiovTDEywmifjd+/fdI/eSD4ZDXkBoaP7gX5wB/MpFwulKdYI5AzrOSfLIs9tVmNuQuYtawD1IVPEF/jD6wYwHwtQbsPXfUV5tNqmmNDWNUBL48AAl9xQgBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B6KP3Eq310VoFURFu6Os7zLd2LrmorcF/dLSgiDjGNs=; b=nFoJ8+x9yzgBYA26BtzrsDyWvq3/Z+Q1ZW4oNkH/7gbGEFdoV63gIOXRttfaCPjT8tc/HUZ3Wkf1ubMMUYwwkdgxs74eorvBLpjtn9N/rmPfB1ckwYnxvCBg0m3UiX6o1qWG0u5V5Hp6etba0KtWEvsQnKjzaPwsLy9ZJVl8VPA= Received: from SJ0PR03CA0096.namprd03.prod.outlook.com (2603:10b6:a03:333::11) by PH7PR12MB8053.namprd12.prod.outlook.com (2603:10b6:510:279::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.27; Tue, 8 Apr 2025 09:32:44 +0000 Received: from MWH0EPF000971E2.namprd02.prod.outlook.com (2603:10b6:a03:333:cafe::ca) by SJ0PR03CA0096.outlook.office365.com (2603:10b6:a03:333::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.33 via Frontend Transport; Tue, 8 Apr 2025 09:32:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MWH0EPF000971E2.mail.protection.outlook.com (10.167.243.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 09:32:44 +0000 Received: from gomati.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 8 Apr 2025 04:32:40 -0500 From: Nikunj A Dadhania To: , , CC: , , , , , Subject: [PATCH v6 3/4] KVM: SVM: Add GUEST_TSC_FREQ MSR for Secure TSC enabled guests Date: Tue, 8 Apr 2025 15:02:12 +0530 Message-ID: <20250408093213.57962-4-nikunj@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250408093213.57962-1-nikunj@amd.com> References: <20250408093213.57962-1-nikunj@amd.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000971E2:EE_|PH7PR12MB8053:EE_ X-MS-Office365-Filtering-Correlation-Id: bc3c8862-fd49-48eb-fda2-08dd768050f5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024; X-Microsoft-Antispam-Message-Info: JxoM4swtyBr5MDkh61ZgwJFf8n0OiNM3y+HHntoSdJxFri02vr1BuL2KI5TbjVyxB3wZLYLQgg5Bf14Fz9S1KCa0/O1z7BAaFUT0tj/8bnmvvH3Q41KOnNaymRPomQC5SyoKf0zjl82kcNlMSxSOO/xN5dq8o4lSP9B41YbhZoQevcPjY0HdaYReUUMhw/QPnBSYp7dNIjAbT+iwj2TEfJzLllYgltSX4lfsrdSPG0ovsOSBzAmydDBn/7MVhY1kFuyIMv8Bp+TIyIGIT0wrmqMK01/oBHMzY5UaFhbg3Jnogf8oCL2Mrh2uObjCfcKiCnoRewucJicpBn+s0mKRlFCQ1z2rKyjhPh0ItmdifXdrqW0UZrHtpXAuEVinr/tEM52P4R7kRwBgGeYkr2yC96hY7LWfjeeci9hwFNnAthjdp1cZIXBHy1c9+q3Zsz/dZYgMbu1bsj6W7PwyetUyjBU7IQvBtUFzNlAXFSbABZkRF/fErmXvwl2vrYRmkoV4dOJzH8UZojGIow7AFVHU8YBXSr5ehZscC+942tj0Q/lAavZYHiCVU6if2cmn0H5G5kQWWr+iWuqrJB9jZtd1Px4nh1jFRWjGlBFswwtLlY1HOGEqA3cUDHvTrgnAtcnCNSghj/IdbxOJUaZiQFQJM9dMSufW6rVMcKtmsOx51/AvKnlxPHiDHLDyaqD2UfirmXerKw6KU+lHzDj33W/LQloMGvtn7yRz8sgQMU9quiPKBTgOgevRWED7s9uifMuOHW5/dLGcUmRhVtjMdaOh7S03Vq8XacAg8+nz0J9PQGUdACosUHlGtTauAXVtAca20H56HoeQyNyAFa8x4McLAyQNznKz1oL2TRbvG8Xoi+nJYmyX7kHcu9L2Qr3C+AuYT4iZ0WSsbSbmjuZquIaNOOvAMZjB8Vzkh6Xce7E9eqGo92/dmYKt7s4BnF8NIJsinuZDul4PcDAgUr4qWg+0FUIUFQ2LL+4gQ6anylPVLAytKwIcp7Gf0q0Rv8jFjM8g221kuW0u7FW5zyMhnCeko77Yo4WNQUBcMpQSTJ/XiRQjhWBfP2KlWVr41YyawGbly6hOSmS/XmvGscB4bJ4mxhQVEAwF9TDIyCz6jrR9nigQFWupVUw4DiWVsGjFZx5Gr5x9qJQ0U1xVJBpr6pvdVYeCGJTll8zSrPQiSypEEQogtQ5FVnXaF6Os2CLVbihSJwHD238K45XzsdvkFw1YfSjk0/2euTn14zaatY2s2rEX22I5LqbSnRqV3tslSp0zn7i1KuybyDlsRme190T27z9QsYEwwfR0Yaquu1UvEewvIyOuusLQz29h6ycfg7Be9Yif7G0UQNNYgNwDN3aqcA9gUVL+Bk9SVOtbiAzWE/fFm0N0pt940W8O9tPhLPLplNspziDwgbNhsZiRHkFIDUZQ+AnTmBNQzM5/H8tueMsTjJLUTmoC+pRFAqHns8rQMI5P05nVXkIwKSEr3hzIp5E1g1s1DG3m2FylqbWyEiM= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 09:32:44.1105 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bc3c8862-fd49-48eb-fda2-08dd768050f5 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000971E2.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8053 Introduce the read-only MSR GUEST_TSC_FREQ (0xc0010134) that returns guest's effective frequency in MHZ when Secure TSC is enabled for SNP guests. Disable interception of this MSR when Secure TSC is enabled. Note that GUEST_TSC_FREQ MSR is accessible only to the guest and not from the hypervisor context. Reviewed-by: Tom Lendacky Tested-by: Vaishali Thakkar Signed-off-by: Nikunj A Dadhania --- arch/x86/include/asm/svm.h | 1 + arch/x86/kvm/svm/sev.c | 3 +++ arch/x86/kvm/svm/svm.c | 1 + arch/x86/kvm/svm/svm.h | 11 ++++++++++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 9b7fa99ae951..6ab66b80e751 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -290,6 +290,7 @@ static_assert((X2AVIC_MAX_PHYSICAL_ID & AVIC_PHYSICAL_MAX_INDEX_MASK) == X2AVIC_ #define SVM_SEV_FEAT_RESTRICTED_INJECTION BIT(3) #define SVM_SEV_FEAT_ALTERNATE_INJECTION BIT(4) #define SVM_SEV_FEAT_DEBUG_SWAP BIT(5) +#define SVM_SEV_FEAT_SECURE_TSC BIT(9) struct vmcb_seg { u16 selector; diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 0bc708ee2788..50263b473f95 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -4504,6 +4504,9 @@ static void sev_es_init_vmcb(struct vcpu_svm *svm) /* Clear intercepts on selected MSRs */ set_msr_interception(vcpu, svm->msrpm, MSR_EFER, 1, 1); set_msr_interception(vcpu, svm->msrpm, MSR_IA32_CR_PAT, 1, 1); + + if (snp_secure_tsc_enabled(vcpu->kvm)) + set_msr_interception(vcpu, svm->msrpm, MSR_AMD64_GUEST_TSC_FREQ, 1, 1); } void sev_init_vmcb(struct vcpu_svm *svm) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 8abeab91d329..e65721db1f81 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -143,6 +143,7 @@ static const struct svm_direct_access_msrs { { .index = X2APIC_MSR(APIC_TMICT), .always = false }, { .index = X2APIC_MSR(APIC_TMCCT), .always = false }, { .index = X2APIC_MSR(APIC_TDCR), .always = false }, + { .index = MSR_AMD64_GUEST_TSC_FREQ, .always = false }, { .index = MSR_INVALID, .always = false }, }; diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h index d4490eaed55d..711e21b7a3d0 100644 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@ -44,7 +44,7 @@ static inline struct page *__sme_pa_to_page(unsigned long pa) #define IOPM_SIZE PAGE_SIZE * 3 #define MSRPM_SIZE PAGE_SIZE * 2 -#define MAX_DIRECT_ACCESS_MSRS 48 +#define MAX_DIRECT_ACCESS_MSRS 49 #define MSRPM_OFFSETS 32 extern u32 msrpm_offsets[MSRPM_OFFSETS] __read_mostly; extern bool npt_enabled; @@ -377,10 +377,19 @@ static __always_inline bool sev_snp_guest(struct kvm *kvm) return (sev->vmsa_features & SVM_SEV_FEAT_SNP_ACTIVE) && !WARN_ON_ONCE(!sev_es_guest(kvm)); } + +static inline bool snp_secure_tsc_enabled(struct kvm *kvm) +{ + struct kvm_sev_info *sev = to_kvm_sev_info(kvm); + + return (sev->vmsa_features & SVM_SEV_FEAT_SECURE_TSC) && + !WARN_ON_ONCE(!sev_snp_guest(kvm)); +} #else #define sev_guest(kvm) false #define sev_es_guest(kvm) false #define sev_snp_guest(kvm) false +#define snp_secure_tsc_enabled(kvm) false #endif static inline bool ghcb_gpa_is_registered(struct vcpu_svm *svm, u64 val) From patchwork Tue Apr 8 09:32:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikunj A Dadhania X-Patchwork-Id: 14042552 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2049.outbound.protection.outlook.com [40.107.220.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DCAB2267F4B for ; Tue, 8 Apr 2025 09:32:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744104772; cv=fail; b=jxrGqH8PQhrUBi6cCXcRNi86Stbl1BscaCfnzlNNDhRvV0RN05YkmezAHd6mYT1e7kRElTW9Hdel/BC4p0dOXq17SNcjf8hBQmjKy/FU99DcPbTthfwfnal5BZFfrW/yiJM5f/t7JjRoCFRStlkdoEGfM4ZplNrnEPQw+QYkOag= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744104772; c=relaxed/simple; bh=n5w47GgmBbngnTpjir5hQ+ipNcUOxJs95jyewxMi9+Y=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fOxsVzbhDsA6cVXV7ELJayXb6ijhGKVBOyJW/ivPsl/Y8iUq/g4hhJ95ealcP9wWw7wjbwlnrmfgPFJe5FiZSv2PZB1IzRLA809ALiMF2INiP8zZu9u7JyC8qmqWNdokaLLpIPqULC8CVmLUvTBg1PfOq9uodhZ4NGKCPEf8t64= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=kKbqgUGB; arc=fail smtp.client-ip=40.107.220.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="kKbqgUGB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QUsCOVj9wnmXynjws5PieM4ZaP0kS+2nAwLOuAs+J1ZAczjbwEQeLu+6FqDFnx/nUmIfKhoQylgScIUQYC0EULg++8xJzFo0ktxAwyeoRdpARSKy1lAm2nR0Ek72VcwG+1KFb6r0CKma14qd/CWREanwtvnuFpIcwZDdecly7BY6kqnHTxFXX95/QHi2mtC5VM+6uXQq6573+7NQB5V8olJy4bvRKHzmzNpWlOPsRvRw7azpmr7eFI/mxhm54OBDH4ftSeJjr4SUuF2ss+4dzJZMg3eeyTStk+iWAQ8iv0o20OG47l+kkUNpcR7GnDhk4zgZ6hN7WFZNdSNrrtPpiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=PQoYqCMR0e6KbanwkiaorabSqoLGFC+PCm6oYsdcq10=; b=UR3D/bTo5F4tdRr78V1UCytC7oaeCj+HdRUKUvoL95+D4xeldjUpBNzSJNxSHBhW5wVEcfyWcrYkucqzKRR+7LLXtHcdoO8Nz5mLMx/7RbZD2iMEGft+jxgxg0pP3R8SkR+3ZMO9f0ZvT3GiMypmAlcanLmYDAgBNsFh1oJYg76uSnaAp/6r7WNOhi/fqEGGwPoKbyrwn5DibDTIas8bmD+L+SQbfKBjeFL9CwZzrNsLmjRDqhiCEff4eDBAyajRgutu3dScb4DH1/n2ZLB5JoFZszb4PRsHMj0vfuLhi6bLmE8c6tzs8H11TQ6VkdrQJEzMlLI+0BbF0aRWW2IQgA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PQoYqCMR0e6KbanwkiaorabSqoLGFC+PCm6oYsdcq10=; b=kKbqgUGBzTurxlia8dPVaW9su3HtTNYpSkuw4pO3ciKW1ffCO9VeAH8SjJtm3RnYMLy/kAQFz0zI/ntoVEM1/ed+dfaPfSha0LjymCBouI2XmpIOxHY5BDr6xYeXBUhPWPTvnKKlZa3KvQWdhlnCNIHXHzD/cZH9W3CXh2qAmAo= Received: from MW2PR16CA0057.namprd16.prod.outlook.com (2603:10b6:907:1::34) by IA0PPF64A94D5DF.namprd12.prod.outlook.com (2603:10b6:20f:fc04::bd0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.20; Tue, 8 Apr 2025 09:32:47 +0000 Received: from MWH0EPF000971E5.namprd02.prod.outlook.com (2603:10b6:907:1:cafe::cd) by MW2PR16CA0057.outlook.office365.com (2603:10b6:907:1::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.33 via Frontend Transport; Tue, 8 Apr 2025 09:32:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MWH0EPF000971E5.mail.protection.outlook.com (10.167.243.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 09:32:47 +0000 Received: from gomati.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 8 Apr 2025 04:32:43 -0500 From: Nikunj A Dadhania To: , , CC: , , , , , Subject: [PATCH v6 4/4] KVM: SVM: Enable Secure TSC for SNP guests Date: Tue, 8 Apr 2025 15:02:13 +0530 Message-ID: <20250408093213.57962-5-nikunj@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250408093213.57962-1-nikunj@amd.com> References: <20250408093213.57962-1-nikunj@amd.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000971E5:EE_|IA0PPF64A94D5DF:EE_ X-MS-Office365-Filtering-Correlation-Id: 5417d65e-944e-4cdc-6a1f-08dd768052b1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: 2BmSk12m1ilpl1RMFNHHIhrt+1yBB4DTieRnKdeQ6nubyAHY40oHkdSY9tVX+YkH3/OhP3lr6FF1hzoka8Mio4zi5exHtmDKPIITX1OGkh9ZcNhcZjAlma7S7mXFrYLFZR6ps3veEx7r84rE37n0GbyLHQToTZ2WLjcpuMLwO+5bvBuCbcVJ+v5nEWicD4ntzC3eMHNmvBEJy6fnOqMe/USYQbjJUbCGLA8cjLTyTdbpVRv/mRe+4egcj1LpxgX/+x6xkl/HOhl+L8SG1NnNbq8XS7/Dj5gxvznT5+243wQFhN9SaxLd8gutS0WOBMdvlCoF/6RdH6P2N4fhcm/AAQ/sQYuE05be8xT8N669g9cu9tJEDS62Zj1SixwAtL6lKdqQaNg0G9MIrQMIx5shp7Ey7np4meEBVkcMfTLg/t6+tdQ1eB2bUYksmoyjtBOJ8EHwhRWPBCFojVEDOgdZN9eyvsr/xVXt850ohlDjcvfitwGDRTSyL6f9hr1eRSiiNqBoBzBHBcYqlsR+4gNv/uRPMTGdVvh4n25RMCKvqqG4PKn96fPY+gtaNPUqVVGftGGkx5ZwK4D7EbqKE4yJCAbZYg4Z06J6/VVGSUO8Tl52krrZ+i84MFnFgjYxuKKkIBam/91r7TfdUC3f9/GRteKRx8cxT5smYSD8DY9jw1qoaa01a+wCpLyU04eLkB1TMPfzK4oplqzVHKSNLkoO5JZQFsKutwsR9Cl3oZaLQaUQeirUjL3vcYNadFgF/+3TM215Bxj56tDs3QIc4qla4myTxyxAOIK3DDh7mtZ7se/jOfKWilh6KqcyyhMaMiisjIbB65nZUSVFx3Kie4VDlk/WKxHsv2KsIX2r1ZNaE5nZ8I3L/0gL64xz9T2q/j7OhFfvWDgrxnDTpg6IPjouDn7TqdNZ2XPHZ8zw6uPUshQWZX3aGaoAQAJ+BSyZMI4DIGZDmvevQppVEle9ygg1KfiWCk+qbZMRaIzFnC1T3DC8oFfrsfEthfFlA8wMmnN4dfeZ4rXMl+Lj+9uvnktxrd63Y1VDWo6FrtDZhjYJOhdPJnOnkiOA9aY9eeu4bk1SQpcRKfn81e2Puo0bcWBt32MJyekz1A2Dsx5EMcLnEc8WMD2o/HeaS+rRrWswqrCPilX+W5gIW2ufDVCyU5gz8LjFHx83Hvnz/bR0dzpTtYRJG/GjUT6jh7ftOhYc6BFALjQy8k2boyvVTO3KDqAcMNQSilYW3nZBn+gcDiTl0H+cAhHOR9qkk0/3MAGXWHb7MXCboFzDLWdto+MWqN25UeNhc3HTU6AHgkSKqBPQAfi6lsOAOPzW/MHsaTcxsh9kaVI/gYnHcW1/WpmjwLBUSu663aNUPnjtt0jPWt7eD5j4xRoxS6Jra+KMPS+6ESW0oWVQ62Ew/NkZ0lOYW0HP/nD2cXoy4mlui1Pl6lNUvAzP3FDps8m6Jkbq+uIXRL2cnqI0oVAYCDChdA4rSQO8D5RAjefsNti2V5S+vVs7pB8= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 09:32:47.0322 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5417d65e-944e-4cdc-6a1f-08dd768052b1 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000971E5.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF64A94D5DF From: Ketan Chaturvedi Add support for Secure TSC, allowing userspace to configure the Secure TSC feature for SNP guests. Use the SNP specification's desired TSC frequency parameter during the SNP_LAUNCH_START command to set the mean TSC frequency in KHz for Secure TSC enabled guests. As the frequency needs to be set in the SNP_LAUNCH_START command, userspace should set the frequency using the KVM_CAP_SET_TSC_KHZ VM ioctl instead of the VCPU ioctl. The desired_tsc_khz defaults to kvm->arch.default_tsc_khz. Signed-off-by: Ketan Chaturvedi Co-developed-by: Nikunj A Dadhania Tested-by: Vaishali Thakkar Reviewed-by: Tom Lendacky Signed-off-by: Nikunj A Dadhania --- arch/x86/include/uapi/asm/kvm.h | 3 ++- arch/x86/kvm/svm/sev.c | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h index 460306b35a4b..075af0dcee25 100644 --- a/arch/x86/include/uapi/asm/kvm.h +++ b/arch/x86/include/uapi/asm/kvm.h @@ -839,7 +839,8 @@ struct kvm_sev_snp_launch_start { __u64 policy; __u8 gosvw[16]; __u16 flags; - __u8 pad0[6]; + __u8 pad0[2]; + __u32 desired_tsc_khz; __u64 pad1[4]; }; diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 50263b473f95..bcb262ff42bb 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -2205,6 +2205,14 @@ static int snp_launch_start(struct kvm *kvm, struct kvm_sev_cmd *argp) start.gctx_paddr = __psp_pa(sev->snp_context); start.policy = params.policy; + + if (snp_secure_tsc_enabled(kvm)) { + if (!kvm->arch.default_tsc_khz) + return -EINVAL; + + start.desired_tsc_khz = kvm->arch.default_tsc_khz; + } + memcpy(start.gosvw, params.gosvw, sizeof(params.gosvw)); rc = __sev_issue_cmd(argp->sev_fd, SEV_CMD_SNP_LAUNCH_START, &start, &argp->error); if (rc) { @@ -2445,7 +2453,9 @@ static int snp_launch_update_vmsa(struct kvm *kvm, struct kvm_sev_cmd *argp) return ret; } - svm->vcpu.arch.guest_state_protected = true; + vcpu->arch.guest_state_protected = true; + vcpu->arch.guest_tsc_protected = snp_secure_tsc_enabled(kvm); + /* * SEV-ES (and thus SNP) guest mandates LBR Virtualization to * be _always_ ON. Enable it only after setting @@ -3059,6 +3069,9 @@ void __init sev_hardware_setup(void) sev_supported_vmsa_features = 0; if (sev_es_debug_swap_enabled) sev_supported_vmsa_features |= SVM_SEV_FEAT_DEBUG_SWAP; + + if (sev_snp_enabled && cpu_feature_enabled(X86_FEATURE_SNP_SECURE_TSC)) + sev_supported_vmsa_features |= SVM_SEV_FEAT_SECURE_TSC; } void sev_hardware_unsetup(void)