From nobody Sun Feb 8 02:41:36 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010063.outbound.protection.outlook.com [52.101.46.63]) (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 0CE602E6CC0; Thu, 29 Jan 2026 06:37:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668665; cv=fail; b=fhix0Z47oyM1dkGFBmOckAhXVLcWsxr6IHT4mDJm9QdYisOcLEW8/u2hBTFlRJB32GoRB4UGtuFsKITr3zs6e/2J/3T+QMIIHUhMA6ZK4t798zB1vvllBjSnzVmcAX4CLVI6rZWWgRvIR0h2wLCH7Gir7YOYSXo8ou/yekTgssc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668665; c=relaxed/simple; bh=f6xCj9BUada2H5U3ZH+PiIWjdZ/ywRpSMFLrJGbzSv0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZrUbkGRUjE/ckXHcpxy8Vo4neJlKiw6HG/wBbzW0n/aqGHUfBLhEiKb3RxUXxQw/dfou2BmD0hINISnbiPU2rITah4a/bizd1PZoL+csRhD85b2EojnfBtZ/va9ywfyU2G3q3aVeS1QHH+aHz/ag+fPOK+iMbVwljEWd/Iy+zJE= 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=Dpc0bYwj; arc=fail smtp.client-ip=52.101.46.63 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="Dpc0bYwj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Twlf5W7fwu3FlE/Tf5HdTNRWO3M30Y8+b6Dqc29SQRWYWd/SfvLXDL4yByJ0gSP86AC2UarZl+DQ1x+UFuwv6qlc/6PdOBBBctBPI0C00aeQceahNTXg9B4/yyKcSBoixdG39SU+mJQD2kWwJAGCvt87SoCkv9ZDc6m/dDAYYIh/93pgrBSSGjIS7PdqXD2D2XRgys0CpZUxEiPofXPwzFqux9WooeggaeEuBLPj4dk1gIcvRIVsuRrZCaR4py0u+9zGzDVAvgAhCj0SY+k34bb6XjAzVmUAiNzY+wRmKNUmTDlHxG0ElORGVFSMlZwLPdIERN+pKjqp77sHGhjegg== 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=vJGu1Ag9pdgB9vosUGAIPstl2H5/S6CAoNI0oM6yPbo=; b=rDEoiZk2UqFnG5g3FQju9qFPNC+gPhDTWSJu8+HUE3GyKLD5h+lkzSwxmzcihc0jkjrmD2BXC+5tojuUlSqJCVXHOHsl8c7u3GptLFPtkHrVuu4lxOMwGyEYKb/oNnxJdXszIs1huHh+kQVqX0glstMcsJupQhv/w7npr1DZ2q1GmQXxxJ/JeMG3psKvvlW1GqZOSiHTTSW5ycWbJ5dlGgfRI8uYHf5bjXdr2EY4HGaF5wMFCGM8VDZCcu+kRwEE/quXnSv0iH+9A3PtAK1YO4pFLsyx/qUR/RDtZG1O1U+cVSJRvpKJeoH2s80vb1GbE9DNOka/p6ApmQtxRM68bA== 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=vJGu1Ag9pdgB9vosUGAIPstl2H5/S6CAoNI0oM6yPbo=; b=Dpc0bYwj2sDYuPhHrJ8w8Tg3dyFVXciU+tUqWEGNF9MuJ0bVqJhrrwpK2Y6v4gubUMLkTUBGd/sTF9DZUE5h2CdeSISfuABwIaizTeIJVHUCryW+qVQZnkqdYm+kKwdoMuynEx8KywwAphwhCKCxBgKugtItIckym8OYihrKF0Y= Received: from BN9PR03CA0577.namprd03.prod.outlook.com (2603:10b6:408:10d::12) by LV9PR12MB9782.namprd12.prod.outlook.com (2603:10b6:408:2f2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.8; Thu, 29 Jan 2026 06:37:40 +0000 Received: from BN2PEPF00004FC0.namprd04.prod.outlook.com (2603:10b6:408:10d:cafe::c7) by BN9PR03CA0577.outlook.office365.com (2603:10b6:408:10d::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.8 via Frontend Transport; Thu, 29 Jan 2026 06:37:34 +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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF00004FC0.mail.protection.outlook.com (10.167.243.186) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.3 via Frontend Transport; Thu, 29 Jan 2026 06:37:40 +0000 Received: from purico-abeahost.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 29 Jan 2026 00:37:34 -0600 From: Shivansh Dhiman To: , , , CC: , , , , , , , , Subject: [PATCH 1/7] KVM: SVM: Initialize FRED VMCB fields Date: Thu, 29 Jan 2026 06:36:47 +0000 Message-ID: <20260129063653.3553076-2-shivansh.dhiman@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260129063653.3553076-1-shivansh.dhiman@amd.com> References: <20260129063653.3553076-1-shivansh.dhiman@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF00004FC0:EE_|LV9PR12MB9782:EE_ X-MS-Office365-Filtering-Correlation-Id: 7bb00716-48ff-4603-cdb9-08de5f00e671 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?lra9LwmpfmO620oVtv0bQLzBbyKmtq9JWzpzZI16omDe8YED/B8i8tIUGEm0?= =?us-ascii?Q?B3JiH3Lhh7jTtuYobwrm27jOeMWrwU/xiXkZRJ2/kK5lma5fyNS2bzLMjKWS?= =?us-ascii?Q?vXjVmuIQA0donYeKkPOed2d4y1jmHlTt+fxWbbe2qaghAKnBiqek0KZcfhhk?= =?us-ascii?Q?HPgD6a6wuAMNgvKHsbWfsPJlokhKXilVuYLGApygaj5FX4e5G6Daw9gFOzWk?= =?us-ascii?Q?diH2vIvXYtEhzfWz+X2+h5NPaLmVBCAYtp4i9tSAxqHG4l/fs7Q2vM68t+oW?= =?us-ascii?Q?mIUbnaz0b+1ZOwd9CuyoRXJtli/onfHEhqRxmvYnQdp7VtaOo1UddCVcdOvy?= =?us-ascii?Q?qG4fkWyTVD1TDBDCsYgqfu3Qoqt21WASVDMAi10FpbOL+huW1QVoU+BewGh8?= =?us-ascii?Q?lqUhkPxBonDb5BC2zLJ7iDzHyT5YqejbocHo3ucGCGGKox8yBaxy+Hf/gBPq?= =?us-ascii?Q?eU5Viz/XKPZP7OUVnSTHANNbSxUTcfaOJ/GB2CHqBjpF10KR7G/c0nyXrXg2?= =?us-ascii?Q?ce50NIbX6MUDkIj3azFYp5sDFN5ypFJ1Z1iJBLsCh29YWrnBwOUYWFuWHyzW?= =?us-ascii?Q?HEBjvjiiNjCbK8fifW0Dz/acWlZwRctpGWWpFx7eRwonirWMfb0BUyTGU9q0?= =?us-ascii?Q?9fYYGUV5KEqvjUUQSPZP8adnxaK0xFlBq+t47DRfIIcnFOZgalxm32LI8bYs?= =?us-ascii?Q?LQt0iIm+gOkGzYQGEhevyG0ZheSeu06Yz09xbxiTAokGDQvmyBDRMepEnRNF?= =?us-ascii?Q?D4FfL1njNqXWg5AU8vG30k7Bk/5ZTCpUGEzFqOS0G3i1ZcLvLv9uKcHGibFG?= =?us-ascii?Q?Vo1IguNokiOE6VNtEN2L/Z9XvgfZGfaiqhtyXMYZvz27UcuhVzCZDZ2oYsRu?= =?us-ascii?Q?fIb4sSArbuHYG+exeYf1KfqjIZaUmcAS9Gn5qIxR5YNhfzgEs6L1fR3EZqHc?= =?us-ascii?Q?zz1h5Uj0HLRzv/A+37dXkBEkzTMkgsgpz6GgGuZTC/9lBtjLaFQ7uenX9OtO?= =?us-ascii?Q?GPqeioY6doxvMAkbvYXDvadpIPfuh8sJW1z0IutjzMyCE4uVv3NCiPshY/G9?= =?us-ascii?Q?e9GQoC6ldeKOl7gBqtq41n1ooSJHpIwaOs+o7hcsAOb1tXjtSsXqZ6D0GT+x?= =?us-ascii?Q?Vl8fPWFapfsZ7Vf68uZFJyC77T9qyrJyfLSqJ9MlmNKp8AcWFaNsOqLlewi2?= =?us-ascii?Q?RgJO11L/1ZTw5pptHU64uVNpBaz3f9r7trGXtuZcgW0N3sxfiG51LpJNNB3U?= =?us-ascii?Q?1i87fJUcUUDy9TsVC8c7B1gt2pldfVIUXz58ms0ffDHfyrNUDr8ZJ4dNyZBr?= =?us-ascii?Q?lPvhR2Ork3IeLILRe47YiibKjahoHInK5oU8wnjtpu3Su192bHvDcpzFsms+?= =?us-ascii?Q?7EYZXsjckO0M8dC6f4dPvCGU3Q7qlpssvCKhZTVfG+tjxkTuWaEq1bBh5+S5?= =?us-ascii?Q?nOLFv9YllJ96iHKWno+OKUe+ftVaQ1yf0tgmBJxoQg77sQL6LoH0jdlF7xZZ?= =?us-ascii?Q?+Mn5jT7UETnL+9zjWdPsdLmdFtCzwq9FphsAWYzcPlvPDDrABKcOgHuX6tXP?= =?us-ascii?Q?hSWFWV2OnGewcQ5EMdYo+tlnbLXnecRDJtkeqB5DxH1nA0H/q0KkSrB8YU4U?= =?us-ascii?Q?TLPLefZ/7sUKMuLCsomXbtWXP9PdWKLDYeiyn0aXq9BM//io1ftFa+DTPLe7?= =?us-ascii?Q?mHR2wg=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 06:37:40.3352 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7bb00716-48ff-4603-cdb9-08de5f00e671 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF00004FC0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9782 Content-Type: text/plain; charset="utf-8" From: Neeraj Upadhyay The upcoming AMD FRED (Flexible Return and Event Delivery) feature introduces several new fields to the VMCB save area. These fields include FRED-specific stack pointers (fred_rsp[0-3], fred_ssp[1-3]), stack level tracking (fred_stklvls), and configuration (fred_config). Ensure that a vCPU starts with a clean and valid FRED state on capable hardware. Also update the size of save areas of VMCB. Signed-off-by: Neeraj Upadhyay Co-developed-by: Shivansh Dhiman Signed-off-by: Shivansh Dhiman Reviewed-by: Nikunj A Dadhania --- arch/x86/include/asm/svm.h | 33 ++++++++++++++++++++++++++++++--- arch/x86/kvm/svm/svm.c | 10 ++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 17f6c3fedeee..a42ed39aa8fb 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -165,7 +165,10 @@ struct __attribute__ ((__packed__)) vmcb_control_area { u8 reserved_9[22]; u64 allowed_sev_features; /* Offset 0x138 */ u64 guest_sev_features; /* Offset 0x140 */ - u8 reserved_10[664]; + u8 reserved_10[40]; + u64 exit_int_data; /* Offset 0x170 */ + u64 event_inj_data; + u8 reserved_11[608]; /* * Offset 0x3e0, 32 bytes reserved * for use by hypervisor/software. @@ -360,6 +363,18 @@ struct vmcb_save_area { u64 last_excp_to; u8 reserved_0x298[72]; u64 spec_ctrl; /* Guest version of SPEC_CTRL at 0x2E0 */ + u8 reserved_0x2e8[448]; + u64 guest_exit_int_data; /* GUEST_EXITINTDATA 0x4A8 */ + u64 guest_event_inj_data; + u64 fred_rsp0; + u64 fred_rsp1; + u64 fred_rsp2; + u64 fred_rsp3; + u64 fred_stklvls; + u64 fred_ssp1; + u64 fred_ssp2; + u64 fred_ssp3; + u64 fred_config; } __packed; =20 /* Save area definition for SEV-ES and SEV-SNP guests */ @@ -472,6 +487,18 @@ struct sev_es_save_area { u8 fpreg_x87[80]; u8 fpreg_xmm[256]; u8 fpreg_ymm[256]; + u8 reserved_0x670[568]; + u64 guest_exit_int_data; /* GUEST_EXITINTDATA 0x8A8 */ + u64 guest_event_inj_data; + u64 fred_rsp0; + u64 fred_rsp1; + u64 fred_rsp2; + u64 fred_rsp3; + u64 fred_stklvls; + u64 fred_ssp1; + u64 fred_ssp2; + u64 fred_ssp3; + u64 fred_config; } __packed; =20 struct ghcb_save_area { @@ -542,9 +569,9 @@ struct vmcb { }; } __packed; =20 -#define EXPECTED_VMCB_SAVE_AREA_SIZE 744 +#define EXPECTED_VMCB_SAVE_AREA_SIZE 1280 #define EXPECTED_GHCB_SAVE_AREA_SIZE 1032 -#define EXPECTED_SEV_ES_SAVE_AREA_SIZE 1648 +#define EXPECTED_SEV_ES_SAVE_AREA_SIZE 2304 #define EXPECTED_VMCB_CONTROL_AREA_SIZE 1024 #define EXPECTED_GHCB_SIZE PAGE_SIZE =20 diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index f4ccb3e66635..5cec971a1f5a 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -1110,6 +1110,16 @@ static void init_vmcb(struct kvm_vcpu *vcpu, bool in= it_event) save->idtr.base =3D 0; save->idtr.limit =3D 0xffff; =20 + save->fred_rsp0 =3D 0; + save->fred_rsp1 =3D 0; + save->fred_rsp2 =3D 0; + save->fred_rsp3 =3D 0; + save->fred_stklvls =3D 0; + save->fred_ssp1 =3D 0; + save->fred_ssp2 =3D 0; + save->fred_ssp3 =3D 0; + save->fred_config =3D 0; + init_sys_seg(&save->ldtr, SEG_TYPE_LDT); init_sys_seg(&save->tr, SEG_TYPE_BUSY_TSS16); =20 --=20 2.43.0 From nobody Sun Feb 8 02:41:36 2026 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013061.outbound.protection.outlook.com [40.93.201.61]) (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 2ED271E1DE9; Thu, 29 Jan 2026 06:38:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668699; cv=fail; b=gQUNQogthBN7DB9kzCmLABzhrLYwHg2sM5/RQychQqtF5zS0I/wxNabDkltHg1GUUhzReAHF2q4qlEkW400YXvxqCUckuMoAy9LUKngfZlrFNDb41No3VHyD+Ad/e7uaCwjp2+dN3vSlO+EB7Zteu0lNFgSAIy8EkpYKLWe1UNw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668699; c=relaxed/simple; bh=IaEmFIXFCQpENsA3Qj+qos/+7PLWZrZ5frojW0JQHV8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CuFviSMc9I6QHvRau7rPcFOSfbEh4jhvA+ko53jst/xKbeYkrPhmeO2DmCgo7dNmlTWrQ/T7XN2KS0qOzj8QwVDFgrnH6SNRtQMwbJrd8o1HHE4IWhYeRtP5I+wqPU9qhzNmJVTO7S14zrJG+kpw9xShYD/SXECXaPZROdJ+Lzk= 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=jwNq9kqE; arc=fail smtp.client-ip=40.93.201.61 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="jwNq9kqE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=o6yuSLt15+t4yWKn/2Nhm68f/KBQvA86risRjbGkxmQ7ICgp6T5PEJqT06gizpCxbgNwMpXWcYEXlw0BkfM43xv1QDJE6jHWitfOcckXgdcN3v3Q/q96jyWMJn7A5Jtl41kEWls5lHvj1tl1fMBVFUvrtdPjviYQsiRPINhyq+bb1Bsfo7HW3zfA4xqsSlO90Wwge2oC44TckTeS/caSVL0kP0CncQZ+uJbGaDBbM30ZLMHGtPxuIve/XUtSfaEc46zW3XA7+xXoV6TvABSuPBTGpFZbCRvsmByC3FzbuIVi/Paj/X3jl3wgFH6nXwx0shSSkwe7pG+KxVoUmam0rA== 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=xcy35tWQGczlKeHXhwXuzkWNoAILDCyX3iQOLbUzims=; b=S3cH/y5/GXNiTLhUAN9kBV7v5o95Tt+DUqIPpEVcXvoApmlC1AH/igxmCUs4T0MPL/vvTXvKfsNv2Ne9E4ijstPCEbkDqqXaE8r+CJ/V3XrRURcA14TgZTEccQnBuCbvBZI76KObhmNq7TYUn1bByhv5blBEZC99TpMZhUp1sQLdjnddKwGdYYLiowMArb9AjZA0pQ4XITbiYicOCo2fx8KYIqkxolttsoeV549bPo7VcuekK/LFW6CQmfZJRzmoRef6t7YHvUSAVG7xUKcIC7qTj8WO1ARphzsERkV1eCkBPkU17eyleKJm+XKb41gPBwANBfv2xFL/6nm18I3M6g== 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=xcy35tWQGczlKeHXhwXuzkWNoAILDCyX3iQOLbUzims=; b=jwNq9kqE8edVJIx4bHd6daZfmJViOQRf1+U7Nx5kr2sZMkARm6rsBBCe+pOx4kMZCgLYwuZ5otXqYTeRLjZOMg+wNC7lzacsTzYeEbB5yJ62oUVXZDWOCBLsFP7RoLZVeeX2fB2qrzZgVPVksi+co39+Od6sToSLr7m/BcgJ5Bw= Received: from BL1PR13CA0080.namprd13.prod.outlook.com (2603:10b6:208:2b8::25) by BN5PR12MB9463.namprd12.prod.outlook.com (2603:10b6:408:2a9::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Thu, 29 Jan 2026 06:38:12 +0000 Received: from BN2PEPF00004FC1.namprd04.prod.outlook.com (2603:10b6:208:2b8:cafe::8e) by BL1PR13CA0080.outlook.office365.com (2603:10b6:208:2b8::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.2 via Frontend Transport; Thu, 29 Jan 2026 06:38:03 +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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF00004FC1.mail.protection.outlook.com (10.167.243.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.3 via Frontend Transport; Thu, 29 Jan 2026 06:38:12 +0000 Received: from purico-abeahost.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 29 Jan 2026 00:38:08 -0600 From: Shivansh Dhiman To: , , , CC: , , , , , , , , Subject: [PATCH 2/7] KVM: SVM: Disable interception of FRED MSRs for FRED supported guests Date: Thu, 29 Jan 2026 06:36:48 +0000 Message-ID: <20260129063653.3553076-3-shivansh.dhiman@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260129063653.3553076-1-shivansh.dhiman@amd.com> References: <20260129063653.3553076-1-shivansh.dhiman@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF00004FC1:EE_|BN5PR12MB9463:EE_ X-MS-Office365-Filtering-Correlation-Id: d86ad019-ad29-4b9c-02f5-08de5f00f97b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?WGXmgsz7aGlFV3s0RGKw6cg8T1EjSjLM0oXIhW7ieTkbfeamKx/YPAedyp1z?= =?us-ascii?Q?AouMk2N3ZpZGN/2QUd/Qbgs23I3ove6vAiLnnakI2tYl706ADCG/Qwbtk5VJ?= =?us-ascii?Q?HPLH+Gewebxxfywk+kAQxRCkHhppJyT6gNqikbhSwEQWOm3yC/Y0SxQDCjlL?= =?us-ascii?Q?HPxLcAywjLavwGfVi0v3lo2AofdoQ55EXPx7QiGLnInkBbSrflwqarYyKYvc?= =?us-ascii?Q?6EP1M2+3JnqtGDlAhBM+Lo6UPqejggN2/ruIitb9Nwxkfv+nCi/EmK2BK39O?= =?us-ascii?Q?WrFaGqSz1CrVw+trtw4eqcaPjYyHP89HXmYMX+Zi6BkP18ZCIqMVyGyG8qCl?= =?us-ascii?Q?wugs65dmBfFQHKwf54oOmP2ncPbC5+jt6B50+QPsqj+WjhjcHGFiVQd9i6Qu?= =?us-ascii?Q?oRvs3I1FvojKZWnWsEOTfPocg9GJNqvkklWWWTN2j94muYheSsOQjwrVMQ0n?= =?us-ascii?Q?Rp8X6jPEta9Qs4J9+hCjBFHPwTqsZGv5WUfplo/bZxHPUatW+tRJCM9I8Ppu?= =?us-ascii?Q?gj5KAtOoifVWMW5fdPw/t+Kcz9jhO/s/AyHg+pWVUrD2Om+FV3JULt5AIe0p?= =?us-ascii?Q?Peor1jIbRwgqvKtmk2iw6Hng0GO6rk3zSQX4v34nMAef4BAFmmo6MvNeEf6F?= =?us-ascii?Q?DYOhCUXk2AsFDhPYtZp0tQ/JbsbCKb+d8I3Nm13YeCFIztiycYU/NQoTPF5p?= =?us-ascii?Q?2/nDYWamviSe3zgM+uWVWcSAHknEnUnoSzjw7NIjXG67OzpCmGUj9EdZF9E3?= =?us-ascii?Q?QdrlwzrDLG2R0rzWvZ8SQbar9Xk+18CAMvWLYYg8Pgro0Qhz7aVun8XGYRjv?= =?us-ascii?Q?e0FHksCu914TSesUvPo9C1/Ro+tt1dnLkRFzptO6O1Mjan/mJW7iSsjkBVwF?= =?us-ascii?Q?T+ZsJyp9OP9FLSTuOKUDAKYfhBfRk0pUHNHVCaUQbY2BifiKYjCu3HuHjhoy?= =?us-ascii?Q?F6z5a78ynHS4rQFMi6RfugXSh7enn5om3rycwZIspqxPwQ4e44urq98UdctI?= =?us-ascii?Q?fRomh2awMK5RlSmxzhM/BQOEuef1bTxODss7tMI8DecSL1E+yfqUjd/rrEcJ?= =?us-ascii?Q?oQIFI9lvJdlxcWc5noG5EAleeW9iP4Dgwvf16jhUb/b+IOmlFdQMUfRCFD45?= =?us-ascii?Q?r/GJ+HM4LVU4huKW9hTELpsriBDKoEY+eGX9qbZ37OJ1YOgRlL3Np75WLGhA?= =?us-ascii?Q?Zt5g5GjFNphEf1apBDwOff4r5kyiZxJEgFqhWBWH7PvJ2s0GNMXKbetwqFXg?= =?us-ascii?Q?IASJb6rdxwadOsl5ZClfwq3v2+FoQMsVpEHKJ53rYrXH/u6aojqG5ZLi4C68?= =?us-ascii?Q?SpaAB8LVQNOI6m3PakrV/09OQqNvBgggRhx6TGwewxNheew75o8ig0FXpAXZ?= =?us-ascii?Q?62p5OpTaDQwBwcrxak4oDrjmgGqrfRb+igs2YkKkBfUjvxgD/dEMYOL2iIEE?= =?us-ascii?Q?NLwP0YQICKgL0zHfN0m5m4yGLBjRJNlMzKmgrIuT5I9KI9LzQ+cZgbuB2TUH?= =?us-ascii?Q?F/BPfGJGnhD/BwvbyGMcc0zaDwIAdcYKxqZ0i1Y+PAhKWGuMoSIG4chN16rx?= =?us-ascii?Q?uBand6Gpaq1HlkrVlomJ5jp74udWLCx5X4ZG1XyJ0bm9m+sk00/D6pdbXMRD?= =?us-ascii?Q?+55bKotsH+yvBa/1r7Ifo348Dc1G0YnKDhmRvmp991Wvb10CY+RkH0VgE/7o?= =?us-ascii?Q?5W1xMA=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 06:38:12.2635 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d86ad019-ad29-4b9c-02f5-08de5f00f97b 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF00004FC1.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9463 Content-Type: text/plain; charset="utf-8" From: Neeraj Upadhyay The FRED (Flexible Return and Event Delivery) feature introduces a new set of MSRs for managing its state, such as MSR_IA32_FRED_CONFIG and the various stack pointer MSRs. For a guest that has FRED enabled via its CPUID bits, the guest OS expects to be able to directly read and write these MSRs. Intercepting these accesses would cause unnecessary VM-Exits and performance overhead. In addition, the state of the MSRs at any point should always correspond to the context (host or guest) which is running. Otherwise, the event delivery could refer to wrong MSR values. Signed-off-by: Neeraj Upadhyay Co-developed-by: Shivansh Dhiman Signed-off-by: Shivansh Dhiman --- arch/x86/include/asm/svm.h | 1 + arch/x86/kvm/svm/svm.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index a42ed39aa8fb..c2f3e03e1f4b 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -224,6 +224,7 @@ struct __attribute__ ((__packed__)) vmcb_control_area { =20 #define LBR_CTL_ENABLE_MASK BIT_ULL(0) #define VIRTUAL_VMLOAD_VMSAVE_ENABLE_MASK BIT_ULL(1) +#define FRED_VIRT_ENABLE_MASK BIT_ULL(4) =20 #define SVM_INTERRUPT_SHADOW_MASK BIT_ULL(0) #define SVM_GUEST_INTERRUPT_MASK BIT_ULL(1) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 5cec971a1f5a..05e44e804aba 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -727,6 +727,22 @@ void svm_vcpu_free_msrpm(void *msrpm) __free_pages(virt_to_page(msrpm), get_order(MSRPM_SIZE)); } =20 +static void svm_recalc_fred_msr_intercepts(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm =3D to_svm(vcpu); + bool fred_enabled =3D svm->vmcb->control.virt_ext & FRED_VIRT_ENABLE_MASK; + + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_RSP0, MSR_TYPE_RW, !fred_en= abled); + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_RSP1, MSR_TYPE_RW, !fred_en= abled); + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_RSP2, MSR_TYPE_RW, !fred_en= abled); + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_RSP3, MSR_TYPE_RW, !fred_en= abled); + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_STKLVLS, MSR_TYPE_RW, !fred= _enabled); + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_SSP1, MSR_TYPE_RW, !fred_en= abled); + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_SSP2, MSR_TYPE_RW, !fred_en= abled); + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_SSP3, MSR_TYPE_RW, !fred_en= abled); + svm_set_intercept_for_msr(vcpu, MSR_IA32_FRED_CONFIG, MSR_TYPE_RW, !fred_= enabled); +} + static void svm_recalc_msr_intercepts(struct kvm_vcpu *vcpu) { struct vcpu_svm *svm =3D to_svm(vcpu); @@ -795,6 +811,8 @@ static void svm_recalc_msr_intercepts(struct kvm_vcpu *= vcpu) if (sev_es_guest(vcpu->kvm)) sev_es_recalc_msr_intercepts(vcpu); =20 + svm_recalc_fred_msr_intercepts(vcpu); + /* * x2APIC intercepts are modified on-demand and cannot be filtered by * userspace. --=20 2.43.0 From nobody Sun Feb 8 02:41:36 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011040.outbound.protection.outlook.com [40.93.194.40]) (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 606331E1DE9; Thu, 29 Jan 2026 06:38:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668720; cv=fail; b=h031Awx70dt9ZCcShSNUeyxKbYpAhHxEYLzvw5nP6ErHR4TrIgm4TihNlqCJ5x4K/Bht0utMkBfxfDAGoRO/VW+3c08O2FqH2rtw7kPxLU7cy/Ij89e/Kpcuoqp/kLQm0YWDesEQYn3PfIh9rCut8kx25xbEz29sI9bKjzxzYMI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668720; c=relaxed/simple; bh=OkzhD5JDDarZ2YSvKNGbufpW8BhhrhpDiKAepWO098c=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GurwkJt7p8rQ5iMOdVwNDo7ibs5QZa6URrfS/OgDsr9uesF1FXwN22/2VCataTdHy2ldkhZvbwQCIJEClVY0cCLtF0DAnw0rKzNv6JTvGhh4U0lDxsNoujbBk30YG2R+hC13+alWBRxI3INubkaq4OwWkUNhPgbN9iCb7nK59So= 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=xBO9X3at; arc=fail smtp.client-ip=40.93.194.40 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="xBO9X3at" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ewPchDXlDQJ9XCj99pKu7ttNXKqr6UGkgCA7r2cq9t8nuVdCccuvAbvRlUJXKJhwtxJH2TdJeX8E2qjMY0wlNxicSutKQFfGJnAj+txAGjn0yTRhr0mhwMY+XnxU3V3r3Esjhmquwz8ApayADV93R1SeYQaPw6a8QNLOiJ8j8gFx3uCR4KJfyv+hAR8OoZKbfcGAO23h3rOabRL1YmXZwpCbDYf2MUCNHUC8AfxTgvoodfrolAEkjKWF5Bi70xAXUzBCtVR0utgLcxWJedtO1qBZvwyWqJg9pGkUghpyCLEgUpNd3rOhk0me7wrtcMR7FTXkFzKT1mF6DvyIwC8WrA== 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=mxSXzsC0R3uweS+FE73oCjYrVXOO4GS93dgq2LPwicw=; b=BaN8P876nRDNEylRnSgKBGj7LoW0d3yep9gvr5dMlXyXVpGNJywxBZ6xd6Mica/ua9EH6t8sNz6HmzJnkql4rvL+YCkRwyjeANyu2Sy/PxYGLUcT37quZgVz1yzAO4emeu2ftCi0iSGNfFnyu19gVGYeNkJSWKGvmP/HI++OR98W8EBwejHll4LXE+THRN1YRa2V+TS4CUyM2crZ/H+vefNn52nHOWEFscTTttGRZJ8cx2wPr8c56d8mcxRP5/Bfd4PPOFnsDcy9lRxTO0YFJ7pbNB+/O/2w94FdAfSHLi2J/TD9l5FgBGeYouNJV5iQVCu4P7vUkv3S0ySqt/lpZw== 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=mxSXzsC0R3uweS+FE73oCjYrVXOO4GS93dgq2LPwicw=; b=xBO9X3at4BhYFObz7BJPchdPssymfSpjyMroJMk1eG3v+W5bvtsSFNs/culuTVOWMqp7MLhDpV1jdtpwfdNiTr7EDQwnxi5kn8iyQMQ7u9QL+vnn6EDWQAmaPGd0yg1pVkQ+S6CCmonyKVvkOIS9OLtzVVyRiG7dSBtKDFNIFeA= Received: from BL6PEPF0001640F.NAMP222.PROD.OUTLOOK.COM (2603:10b6:22e:400:0:1004:0:16) by SA1PR12MB6971.namprd12.prod.outlook.com (2603:10b6:806:24e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Thu, 29 Jan 2026 06:38:35 +0000 Received: from BN2PEPF00004FBB.namprd04.prod.outlook.com (2a01:111:f403:c803::7) by BL6PEPF0001640F.outlook.office365.com (2603:1036:903:4::a) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9542.16 via Frontend Transport; Thu, 29 Jan 2026 06:38:34 +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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF00004FBB.mail.protection.outlook.com (10.167.243.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.3 via Frontend Transport; Thu, 29 Jan 2026 06:38:34 +0000 Received: from purico-abeahost.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 29 Jan 2026 00:38:31 -0600 From: Shivansh Dhiman To: , , , CC: , , , , , , , , Subject: [PATCH 3/7] KVM: SVM: Save restore FRED_RSP0 for FRED supported guests Date: Thu, 29 Jan 2026 06:36:49 +0000 Message-ID: <20260129063653.3553076-4-shivansh.dhiman@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260129063653.3553076-1-shivansh.dhiman@amd.com> References: <20260129063653.3553076-1-shivansh.dhiman@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBB:EE_|SA1PR12MB6971:EE_ X-MS-Office365-Filtering-Correlation-Id: f3d3b2d1-b661-47bc-01e6-08de5f0106f2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|7416014|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZMwvlzmT7OMztO0uwvR/c4X5BiLpFMVgHToftdYlhLM9on1dgqTK9dpNl0Vw?= =?us-ascii?Q?xnP0/vYHkIRRcXl/OEe194cebws68xOYN0YmlJKCHewb/hYqedgheID/LTZF?= =?us-ascii?Q?d3looWYQsGnOB74zMrlAVZ1Xs9zAcDEh/CY5bIAF7DaK75SFEWveBYfSNsS1?= =?us-ascii?Q?6HCx80uIj0CDPC0IUZ1PCXnod+oufE+2VXgtEp0ko08UiWOGc08w3fvWmPM5?= =?us-ascii?Q?JvLF02A90ZzNdfdnIz77a9BhMFxK/TqZeqDhWHlpg1IPpUYAvDG6T/EmpZsI?= =?us-ascii?Q?ejc07XHa16Mw7pJqUcD3hQWZLVHzaSDb7ad4AOPrl/7iVpqkX2TlgcEIhTDx?= =?us-ascii?Q?svd876CAvdydvK36sLtls8kYkfdcXiAELYS2DuuR/W+TeddwTwJT6Dxd1KRq?= =?us-ascii?Q?imxEJkliFOkSkTNAfV/1DnxNmwAM/PUbpq+WOrdf6MDMxPMw51HiGwO0A8hr?= =?us-ascii?Q?KJhf8nPoLPvZboi4/XlnUC9lH4BZ4euaH43rsZdNe4fDgqSSp/A5y0ZQ0s7u?= =?us-ascii?Q?pnoJzee9RQo6shfDIKpTXMeQjTzNy3OURJORlYLNFUXzqlNiPkJyu8uIDyw2?= =?us-ascii?Q?fqHNpexgS9KBrwlfDB8q0EyljBbYYB8WqWQzTf15/Gr7AKkKblpWurdWD2Nj?= =?us-ascii?Q?CltT/EwB16v6L0edW70g+aNHZDNPzBrq65+fkmAeiiZcTwL551Fwyq8wei8B?= =?us-ascii?Q?RIBRlqCzn+ZYC4GfwJme7Bc+WiPiGHskBFOnt+QlbeHkIcu7OzhYexGpvOJ2?= =?us-ascii?Q?++VyYGUr80RfA9sJ0bZlzzpgefANnSI35InsD9lGFlBlY4fEG9RcMLsXpmqQ?= =?us-ascii?Q?9ttqE8pX6OaeM9FHp9F34eleEDfjR8RKkV6Vnw7/mX2qF+D0mvZAv0pmiG6d?= =?us-ascii?Q?CqzAGLpuXjjwJtVEsDoAg/v92ElrsYipSJ4CUC0/6RmlN23FSpI2Eni7xWwt?= =?us-ascii?Q?s2StzVGqwh7ItWX1hm67JtAxdL2r/HmkFec/vHjdbN/huUqm1/z30RaEEbP1?= =?us-ascii?Q?udmEedZ5fxAksFAsBTUbTmWKePgPtBrWfDqW0yuSJhGbHUj6z0TLIBD1Zj0I?= =?us-ascii?Q?ytjg2zC11VmBWXziWKV+OKKg27w7f2bDuhYK8/hYLSh9yyANQ1D4ouPqrxDW?= =?us-ascii?Q?gwquGm5maaEPM8jrddrnDdyYUwioqdgAKe2CMr5/j715ktUnjzzh5tFi5cu1?= =?us-ascii?Q?iqvt65WhlDVG8y2wVi2bZDPpp1SgozeqPpeIFbt7J1wfCzC42EQZHZldd24o?= =?us-ascii?Q?GrW5Q9n+a3jyTQnEEq4ngs8x9O6Wc8ofVvopYcnwVwE/Ch/xaDkRfMesLgD2?= =?us-ascii?Q?43B3CAJlhc9WsxdGqs0SImtb3zfCAUexSBVhz9y/gzadr2XD5Zb3ZlemlaJA?= =?us-ascii?Q?G0SLFez0ICRx/S2wmg67z/H5RZdyxh7Rm9Ncb2Ygt7Hd82nmblpPWj+e9MEH?= =?us-ascii?Q?B6YBW9vY+hhQUl+L+YZau5m3WeT8fCqGDLTOCZAg/TDP5PLLCnhnDpI6DNfw?= =?us-ascii?Q?FXjrrfLIvJVDDw7jwn2cBG+DnzlG/GtJ2EDTWe0b/5Hqk46rRcV2VabkMl0+?= =?us-ascii?Q?DGMxJyWutJ2Uh6DNIO23ppCXEgkTbmf3WSrqJHa62mEhJRIFW83+j6u+PjpY?= =?us-ascii?Q?grB+M0P42DCXdwLp2RnOcWdmgVsCL/TVHsyYi1fJd+fR?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(7416014)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 06:38:34.8009 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f3d3b2d1-b661-47bc-01e6-08de5f0106f2 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF00004FBB.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6971 Content-Type: text/plain; charset="utf-8" From: Neeraj Upadhyay Hardware does not save/restore FRED_RSP0 for Non-SEV-ES guests. Save/restore it early in svm_vcpu_enter_exit() so that the correct physical CPU state is updated. Synchronize the current value of MSR_IA32_FRED_RSP0 in hardware to the kern= el's local cache. Note that the desired host's RSP0 will be set when the CPU exi= ts to userspace for servicing vCPU tasks. Signed-off-by: Neeraj Upadhyay Co-developed-by: Shivansh Dhiman Signed-off-by: Shivansh Dhiman --- arch/x86/kvm/svm/svm.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 05e44e804aba..ddd8941af6f0 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -4192,6 +4192,15 @@ static noinstr void svm_vcpu_enter_exit(struct kvm_v= cpu *vcpu, bool spec_ctrl_in { struct svm_cpu_data *sd =3D per_cpu_ptr(&svm_data, vcpu->cpu); struct vcpu_svm *svm =3D to_svm(vcpu); + bool update_fred_rsp0; + + /* + * Hardware does not save/restore FRED_RSP0 for Non-SEV-ES guests. + */ + update_fred_rsp0 =3D !sev_es_guest(vcpu->kvm) && guest_cpu_cap_has(vcpu, = X86_FEATURE_FRED); + + if (update_fred_rsp0) + wrmsrq(MSR_IA32_FRED_RSP0, svm->vmcb->save.fred_rsp0); =20 guest_state_enter_irqoff(); =20 @@ -4218,6 +4227,15 @@ static noinstr void svm_vcpu_enter_exit(struct kvm_v= cpu *vcpu, bool spec_ctrl_in raw_local_irq_disable(); =20 guest_state_exit_irqoff(); + + if (update_fred_rsp0) { + rdmsrq(MSR_IA32_FRED_RSP0, svm->vmcb->save.fred_rsp0); + /* + * Sync hardware MSR value to per-CPU cache. This helps in restoring + * Host RSP0 when exiting to userspace in fred_update_rsp0(). + */ + fred_sync_rsp0(svm->vmcb->save.fred_rsp0); + } } =20 static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu, u64 run_f= lags) --=20 2.43.0 From nobody Sun Feb 8 02:41:36 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011056.outbound.protection.outlook.com [52.101.62.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 D8A871E1DE9; Thu, 29 Jan 2026 06:39:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668743; cv=fail; b=spgGXMLtJVRosh6gZUkUqUGLOf9XWUmbl/IaSluAESMTyPXlmj/kfgkB/N1PTI5f87hgvc2DeEVsiUSPXQWQq+1Vnkk/dlMBo7fOyNN+pPt2hQuw7D+CHOySEpXB3ze8ylfEcXyfQrSzSg0cCYqGqzHWnm3ue6A39uSAnHufNSk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668743; c=relaxed/simple; bh=PQfpP5GpnOUrFJVaeAY0/3KcYl8uMYItzp/V+uzQuEE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YRr3LuoZs7Nphy7pGLeCErvmSONmvjHvibZ2WjgNUSpmqH9ErfBSs1AzhhknUMRAK8nzgLmDNJujsIjuHcl+rFjy5hwCmik/LHH+/vb53XWuCYQ2k6F+PmGICYJLUt9PE8fhDWm94V+DVKjJn/IQv5rkCfQtlsdTAgmWrhr3T80= 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=RQJkRYOU; arc=fail smtp.client-ip=52.101.62.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="RQJkRYOU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XKxn6UelrLLb9/bYOAJM8w63818ShBxVOFunEXQ5S4UacwuqPKLSqUmB+sSL/heAZYMLLLGkppYggsjoR+qAXvsZMB7a2ExHQPAIIAagQtyEpYaC4zl4s3GS/al//Vxs5O7Ykt4pYaIF3x7cgiJ8Qbq4A/xZpwzqe/wpc1UqP4c4RDvVIZ2BnbPN9GLxUZ3F53CxBoUEyIkc7+XGdv8XT6qEwuDfpNJcvyoESAely9VSMlmq64/uHa3vG4+eJkbl5/vLrKai0RfjdC0KoE77QQ/vH090IkjWSA28k4MXlu39cYONPJsOu1+pdJplRcCeSat/GoPafD8oCu9Gf22Mqg== 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=K8MAZ6MeOk2QJ1RgVx0muaLSsWCEMxkEF23lL4zVoL8=; b=uVbDmF3WlLQEwK+BFRkqFIRJpabhA/Y1NVHpDToF4kEMI2x/MVNRwcHGeMSS2g4Novk2ekNAJ97tJrd7fGLlpYFPvVxhGs+y+T+E0bgDKqFQF5wLEbAcNBr9TgGQtixhUSoy56gFBeUp6HPrDl5f5uGLopGXjV7KE6hKcXgTnNYlDNQK85MQP+tSSdt8kSIuF/dBOaYvovZx5WWp/Xf1pVNWAJGUfBX/wZfHJ92ByHXDcFgTCIfhFoC9cFEDN2DN2RMhXR1ilfY8vEmtDmN6bwMPQGwMQDGWbG0JvrjSN9Hc8SBWmMvbOyRzYJ9rlHk8N1yTdb7nl0Rj/eAasyFX2g== 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=K8MAZ6MeOk2QJ1RgVx0muaLSsWCEMxkEF23lL4zVoL8=; b=RQJkRYOU/tIZG6imFUbEPGKBsNNAYLkEMwzm6CaWYs8j62HtgY+Ogke2fnogmdKDCbyGREqhdH4xXsP3qfkUMHZeWGVXMTEnOBWN7JmB8VC8plVMIWbOC24TtSo6UxEAFD3s+BjBZ0nX44fGzq1d4AnjCKyB/FBkHbWGGDn/Xm0= Received: from MN2PR18CA0023.namprd18.prod.outlook.com (2603:10b6:208:23c::28) by DM4PR12MB6134.namprd12.prod.outlook.com (2603:10b6:8:ad::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.8; Thu, 29 Jan 2026 06:38:56 +0000 Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com (2603:10b6:208:23c:cafe::2e) by MN2PR18CA0023.outlook.office365.com (2603:10b6:208:23c::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.10 via Frontend Transport; Thu, 29 Jan 2026 06:38:53 +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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF00004FBA.mail.protection.outlook.com (10.167.243.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.3 via Frontend Transport; Thu, 29 Jan 2026 06:38:56 +0000 Received: from purico-abeahost.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 29 Jan 2026 00:38:53 -0600 From: Shivansh Dhiman To: , , , CC: , , , , , , , , Subject: [PATCH 4/7] KVM: SVM: Populate FRED event data on event injection Date: Thu, 29 Jan 2026 06:36:50 +0000 Message-ID: <20260129063653.3553076-5-shivansh.dhiman@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260129063653.3553076-1-shivansh.dhiman@amd.com> References: <20260129063653.3553076-1-shivansh.dhiman@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBA:EE_|DM4PR12MB6134:EE_ X-MS-Office365-Filtering-Correlation-Id: d1924770-c9c8-464a-bb4e-08de5f0113e5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?QCWHZQm57SszDpLUNc7FNYuA6lY1v6wCwUqEn8a5yGOeIFYG2XceTgPIiQn8?= =?us-ascii?Q?a74waNogcrTrnmcb7tPQd5bkQJ1Q4vMWoE3Z7rURSrKo8tNahSxZcsBH752C?= =?us-ascii?Q?q4M87Hb7YPVgXMzvzODtYiNrSEVCxiDjs4qiAi2eUaqdKUTVBO3YXe2cdb8y?= =?us-ascii?Q?EVrf/YtIWoMyBEr7EXCiJRhy0NrNt26sHmeFJ3UDlBvLid0H+ZRG/RhWkitI?= =?us-ascii?Q?uESk2vcuevWDUH/2wtaD//2zdC1Mc2sshrxAFD7huoQLo80DTUWoa731O19t?= =?us-ascii?Q?xxs2Ddk4m0eT0ySRxXo3LvwyUrUqA3aZb4lLmUrwDTeDiy7DRhsxG1SISepM?= =?us-ascii?Q?5wxwk46rTH0ZOykksDMmS7R9z3OS/Nmp87eGqP6TcnbGiT2GrG+g6lmhKxI+?= =?us-ascii?Q?V5LU3J1DngvbrLM3zbMj1jodw8O06LJTwI5DpG4eprjveS4r5bTQFOvStZw7?= =?us-ascii?Q?+OrNsgHWNQetEnnHz7xUix9jeGmfSmdheoxCzSpLNdE5hlyXhfidWpZ4knG7?= =?us-ascii?Q?QVUx1TBU9zXh2kvGeAmfhywo+4qIMiVT/JgOU+vYfg7qpARR6YtR9blO6YzC?= =?us-ascii?Q?+Wv2lOCj6hvAx0ssDwXhrSDjCDMLQ6gWRpTnKRAByFpRwsCjsk/hVVDtvg6Q?= =?us-ascii?Q?NUhTE6QvpotloV15UrXcnWUD6MEoMUz3LjM9O9gVNPSUHjyKHsZ1nWVUVHdq?= =?us-ascii?Q?asGvEHJJYyRgtpJHGv7UvNFhvMLxxTUUNLkwVJZN6qKo+PlP0jYZ2LR/URM8?= =?us-ascii?Q?Y2tI4myVhPSO0VSsbAp3vQ8Ws16vXgHrWXqTcA4l1X2pTARuq3Rih2riDsGk?= =?us-ascii?Q?+Okej65xc3VekT6geHjXpkCv8I8+17ZCU1JIWw4OREsPaMkBL6fXaaeTAovQ?= =?us-ascii?Q?cBfzHw9x6ABKQhArb4g4A0dMhosbj7PCnpJ1xY6sJ7ED7wzdzb6g+rCzcJQB?= =?us-ascii?Q?VMTfkPC9YbuT7Gdk8f1EA729qWlAD8Tp/2Z+yCkwBQVkx2ql4yFZIEUMDygx?= =?us-ascii?Q?05Mx+bZm4m1RN2rMnISy3os8Vm4yMai4owpq3LPuH1o6wEA3oiIz14thny9b?= =?us-ascii?Q?rWVmhze/tn5Pn8vsL2dBcCIYAE5biShj+iD37NrgbLdOjQ64R7/brPwgmzjM?= =?us-ascii?Q?NOV3G85B6LsKZy6e2m/M6ium2GSTn5+fDhMFn/plyjbBP4QBDc9b7vh1BCzg?= =?us-ascii?Q?WEXawlIHMZ7Bdo3+1A6agZ+0cZeiebvvsT0EfVwekL5OkmFn/S0HdpxFR5la?= =?us-ascii?Q?q7cP6ZP6XQD+RXA+GaRsrAsoZP6ihR+ScwT94KF5PyHJCFC1ii56BVEaUULe?= =?us-ascii?Q?XgysZCa4vfpTsnheKCXvGS4EPUIxuZ4qzuZVEuvdM50prROVQn55BqQ64pqN?= =?us-ascii?Q?E0BB5tiPVTfUcTQVcbl/Uk4AuzQPF4hRxKNUuBMDcyoxn8eZBDulKKuIc2Bl?= =?us-ascii?Q?rQj5s2xE65JxE/RSWc07uKE0lvRwUVGvYF2vMgZJw/ceVOSKrW6b6JtX028i?= =?us-ascii?Q?RK91NMjJ/dPsa5phT1uLAKj2zMfrc/dQoHOo5Z0v54/NJwMX5NOzCWS5joLk?= =?us-ascii?Q?xGcb+f5SXb4C2BrhBm/EDBVi85+9QdsN2LrUcyyjTY4FVsb43kcBUjAfCYuo?= =?us-ascii?Q?7aK+BFHSbg8TYx/KtceyuVCeQ0D3EYssPMDkRsbEoYwsUhMGqTOZiZrioEUt?= =?us-ascii?Q?kILWEQ=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 06:38:56.5486 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d1924770-c9c8-464a-bb4e-08de5f0113e5 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF00004FBA.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6134 Content-Type: text/plain; charset="utf-8" From: Neeraj Upadhyay Set injected-event data (in EVENTINJDATA) when injecting an event, use EXITINTDATA for populating the injected-event data during reinjection. Unlike IDT using some extra CPU register as part of an event context, e.g., %cr2 for #PF, FRED saves a complete event context in its stack frame, e.g., FRED saves the faulting linear address of a #PF into the event data field defined in its stack frame. Populate the EVENTINJDATA during event injection. The event data will be pushed into a FRED stack frame for VM entries that inject an event using FRED event delivery. Signed-off-by: Neeraj Upadhyay Co-developed-by: Shivansh Dhiman Signed-off-by: Shivansh Dhiman --- arch/x86/kvm/svm/svm.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index ddd8941af6f0..693b46d715b4 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -374,6 +374,10 @@ static void svm_inject_exception(struct kvm_vcpu *vcpu) | SVM_EVTINJ_VALID | (ex->has_error_code ? SVM_EVTINJ_VALID_ERR : 0) | SVM_EVTINJ_TYPE_EXEPT; + + if (is_fred_enabled(vcpu)) + svm->vmcb->control.event_inj_data =3D ex->event_data; + svm->vmcb->control.event_inj_err =3D ex->error_code; } =20 @@ -4066,7 +4070,7 @@ static void svm_complete_soft_interrupt(struct kvm_vc= pu *vcpu, u8 vector, kvm_rip_write(vcpu, svm->soft_int_old_rip); } =20 -static void svm_complete_interrupts(struct kvm_vcpu *vcpu) +static void svm_complete_interrupts(struct kvm_vcpu *vcpu, bool reinject_o= n_vmexit) { struct vcpu_svm *svm =3D to_svm(vcpu); u8 vector; @@ -4111,6 +4115,7 @@ static void svm_complete_interrupts(struct kvm_vcpu *= vcpu) break; case SVM_EXITINTINFO_TYPE_EXEPT: { u32 error_code =3D 0; + u64 event_data =3D 0; =20 /* * Never re-inject a #VC exception. @@ -4121,9 +4126,18 @@ static void svm_complete_interrupts(struct kvm_vcpu = *vcpu) if (exitintinfo & SVM_EXITINTINFO_VALID_ERR) error_code =3D svm->vmcb->control.exit_int_info_err; =20 + /* + * FRED requires an additional field to pass injected-event + * data to the guest. + */ + if (is_fred_enabled(vcpu) && (vector =3D=3D PF_VECTOR || vector =3D=3D D= B_VECTOR)) + event_data =3D reinject_on_vmexit ? + svm->vmcb->control.exit_int_data : + svm->vmcb->control.event_inj_data; + kvm_requeue_exception(vcpu, vector, exitintinfo & SVM_EXITINTINFO_VALID_ERR, - error_code, false, 0); + error_code, false, event_data); break; } case SVM_EXITINTINFO_TYPE_INTR: @@ -4146,7 +4160,7 @@ static void svm_cancel_injection(struct kvm_vcpu *vcp= u) control->exit_int_info =3D control->event_inj; control->exit_int_info_err =3D control->event_inj_err; control->event_inj =3D 0; - svm_complete_interrupts(vcpu); + svm_complete_interrupts(vcpu, false); } =20 static int svm_vcpu_pre_run(struct kvm_vcpu *vcpu) @@ -4382,7 +4396,7 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_= vcpu *vcpu, u64 run_flags) =20 trace_kvm_exit(vcpu, KVM_ISA_SVM); =20 - svm_complete_interrupts(vcpu); + svm_complete_interrupts(vcpu, true); =20 return svm_exit_handlers_fastpath(vcpu); } --=20 2.43.0 From nobody Sun Feb 8 02:41:36 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010032.outbound.protection.outlook.com [52.101.46.32]) (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 970E8371059; Thu, 29 Jan 2026 06:39:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668772; cv=fail; b=G/7XOUPCeETMspd6xacsOKMrCyPSWD1VVRschpB4jUjz+utL5YJJztfgMcRecIPM1OI7mJzgfJUnr/XPo1z0oXxKsSbfG3KjsiQkRk3Pswbv1OV9IZHu0m9bNMgplwRwbqik7HxNHq5PSVRHJy201dkecFllQZmvEyrDt2v1z/U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668772; c=relaxed/simple; bh=9uZdKg9RoB70fjG6xoKqdC+adYyGgTUCTyXgI1EdwJ0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=SNOJTsvrp5DZ1Oz5RyHup+t1Rwj596ZaAVNb1WSdMZ3OiD5t+Bzk7+rfMJmNyNmp1VVPsQy6ozt33+FP26hocxjcrq8LhA+MNVpWGg58IaMIMktxnmWIeMNnmvK9EjSFdZQbgvAtxvIOhJrF0kWmh7AUYUq0T8CCmJlub7lZTIA= 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=xHGUFHRB; arc=fail smtp.client-ip=52.101.46.32 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="xHGUFHRB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ATCnBb9pHq0oPrpLpV0A5+NAr0KYN70cEjaaLMnEefAItUmbggdMYJR3unojbopCV3D/dZhtrJRVKxwmLFZBpqdgY8KwdgWgbgwztoQygM/JppxUc66a87OVU7rFm3njIpqPQK9ps7QIg+Bk/y6ECFDBqqlecTnJukivXHS3Oeo1l9uN1/kR26j+FZWJcfj8ItgEyMCJepLinUzJ64s9IoIuwep+01qK/lA7pWWPc72hEq9StJOiuy9eAtb8TWMr0wDCjw30NVIbpeJ6dzdIJm0vqdtEhcMRSrXigK3Ew+XgsvcPbpv8LLCxYqtRWZDLil1B/uE9E+Xe29RfB3kCHQ== 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=gQ71td7i0raJZi8jVwoUHLNbNz68xc/XoatlrpeFngU=; b=JGsaIaOKwg7CtXlDT4Tg0x/QrPRyycoFdJrr16MShSVcFeqxyRQ9K0BrC4/PiPyypToBpQGj4Q499XD54Vr2rofNAIezLUk9w4YlipsyEf/ckuWVu1iNmhY8+loDBqkSH3imEs3hMsmb6sN4yz0N2CORsnKHGTUHBTPHEgy8d4BsYJOuBBctzPahJCAHr2F/NUkmslE295nQ72TFMyWtGTeCgUDEmQiPALVJH7kJ0F1QFjq1f6rJVecLoVgR/KabynPxsEIs69d8LombHsmohYAG2goEZTHiqSVbvE8cr35eFz41QXyH5QEr6/w/NeRh1Hwkl02TqZgIE3KrDJuIrw== 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=gQ71td7i0raJZi8jVwoUHLNbNz68xc/XoatlrpeFngU=; b=xHGUFHRBiopa5TiFbrPOILu+5FVWP0muBhaK+7NlfsEjvZgPYJ7RxtzRHSMVb2kW8djNO0pOoSeNbkLZQ5Jhw9c2UcpjIWmx8XqEOiw3fCtVxcMSpsrAOnywUF+VSplv9DjG82VHGrlBvduUu9zEGUwwPp4en/iCXA5+Wx0cTm8= Received: from BL6PEPF00016415.NAMP222.PROD.OUTLOOK.COM (2603:10b6:22e:400:0:1004:0:d) by DM4PR12MB7549.namprd12.prod.outlook.com (2603:10b6:8:10f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Thu, 29 Jan 2026 06:39:27 +0000 Received: from BN2PEPF00004FBB.namprd04.prod.outlook.com (2a01:111:f403:c803::7) by BL6PEPF00016415.outlook.office365.com (2603:1036:903:4::a) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9542.16 via Frontend Transport; Thu, 29 Jan 2026 06:39:27 +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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF00004FBB.mail.protection.outlook.com (10.167.243.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.3 via Frontend Transport; Thu, 29 Jan 2026 06:39:27 +0000 Received: from purico-abeahost.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 29 Jan 2026 00:39:23 -0600 From: Shivansh Dhiman To: , , , CC: , , , , , , , , Subject: [PATCH 5/7] KVM: SVM: Support FRED nested exception injection Date: Thu, 29 Jan 2026 06:36:51 +0000 Message-ID: <20260129063653.3553076-6-shivansh.dhiman@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260129063653.3553076-1-shivansh.dhiman@amd.com> References: <20260129063653.3553076-1-shivansh.dhiman@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBB:EE_|DM4PR12MB7549:EE_ X-MS-Office365-Filtering-Correlation-Id: 48bf01c2-ed49-4d8c-bb00-08de5f012649 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|376014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?FbQTYwYJhJAVjG6I80ri4GSU4ihYgdzhZtl6BIKNRQ/Lz3PbqM0/goL4RYU/?= =?us-ascii?Q?0lwiRMDUAgJbi+79Re4QfFZbeOAX02DBNqwhn3pV8TPtQJax2r0BKTzRq9TM?= =?us-ascii?Q?uKveJP9gDyUnjnUu2V7zJAvvEgD9qAU2k725ZAKzuYHwN/Lg/YTpE6/wxaZd?= =?us-ascii?Q?9PXmZYWDP5RmoHelLMm1DNXseUphB5AbWyTzVBtQxaP1nBY1y6h23ZVqTvIs?= =?us-ascii?Q?qhym/IEls+futcNrlhXEI9Yz7sOBp+PgMkhvkTUMqOFqeW95b2Avher14dt+?= =?us-ascii?Q?n9bNIOp3LNKtGLSLxJ09j/ucvlm0du06GxWQxz9YV41fVnZRduSRDAxH4nMs?= =?us-ascii?Q?y+3NwBMl+voWSdMTPkZ9/XLYaoZKUQVoTfhCA/ntWT91mn6rn2Bmc/VUFswo?= =?us-ascii?Q?E0QOSi+bO9X+iGLy2Dxa97j8JI5SQq9+DpE+Wse3TCg0h6YLIIfZ/t+lPmUP?= =?us-ascii?Q?p0c3LboHFamemZqL7oUlGePsz/BVxv+BZUpQW6MmEFTZIWUiJXkYHTmnSm3c?= =?us-ascii?Q?e9uScy9IkVAO8CPQ42CEqNlXDjvlPgOXsa1In96/KJug0E56YHUQy3nPiJfz?= =?us-ascii?Q?Vs2ry/GO9VOirVuuelwU5Y+y9kMIKeQESXAwF3RGD2ssnOWA1rIyBWhJZoi5?= =?us-ascii?Q?11UfhFYVkFg1ByeGwDaFQ4gs8fOy9y+aCdH9G7/waA9ZlsifFU36EHTqRP5h?= =?us-ascii?Q?fIJ7u/kndb1X47AQB3+Tu0+8Z01YByLF4ASwGnLaeJqVWPXPwdeVpNuPXkwV?= =?us-ascii?Q?mU0G0PPB/mMF3SFjBgRZFnFCxjTnLVf4x7Bhml/4XCYBCz3RZFHv8PgxHemG?= =?us-ascii?Q?GIPGYO46CDm4viSjsGZSLMAv/K970qIswYqxxxz1sWW3kR+W9EOlEc2aObAD?= =?us-ascii?Q?yZrrEm4PWoKjTo2a9pFTCiMYMDY/X4KOJkDjbuDHxRkFYYcPMgfWVGOkCg21?= =?us-ascii?Q?hE1sII3lizxUJOytuiIJL4sM0zqG3t2F0iVDJfJgzKIBKAcX/JPzJZ4XNyJ4?= =?us-ascii?Q?516PILHUL5qJyWOxNivIgx5A5OFXcdM5WwrUU4BvDIFLbZOcZKbLGhG1Lq0u?= =?us-ascii?Q?az447vz44JevdDg5OkAsimFunD/+A6WZd4mcO4vxZngkjE9fyRVCKOUc+I92?= =?us-ascii?Q?Be/4S7fDZwXLeBPuye9oCsEWG5n1yS6Jr3QcdyCpyr23K+t444jxcUVRtoKN?= =?us-ascii?Q?afjVn1mtJOjtCyaL6uoxZstExtyVPOCGNWAsNCmAbOfUSFUjtRHNAalsEWTC?= =?us-ascii?Q?Ps73fT+28K4KIRC1MbA6v0YXsuuFitTQRzza7MMex1GqdrnpJ8lWTKDN0ihL?= =?us-ascii?Q?le34zkk+CPTmBKl4gasLJOKY0XBIATj8uN+rJ4eVnRl/2foCBK48wvvKOau9?= =?us-ascii?Q?Qo545z5o9GDeRL8jB5epsQJmeMl2zJdKtjLktkTAxp5j1kDu2OdeysXadXAu?= =?us-ascii?Q?MHGnizKcX3tbKBD2izUgTxdqKzLoy+xvHcatEbqBKKtVapIuvfZ9dDg9nlSG?= =?us-ascii?Q?Nvs6JgNkJ9XZ2dqCtq7KxSSyuGC193eXUVHpWDDtfBskSLBBwlkFKn3yTRW2?= =?us-ascii?Q?U+MbpMoGIyjpIpHCLwEsuner2dtPOh5yYn+ecpy9oDxwDKyt5uZklVxfBmRG?= =?us-ascii?Q?rZ3AtPvJVN/9dxRQtGdX+BgLiJa7Ori73iV7YERbjyGBV5QqZWsPimW0Z2R/?= =?us-ascii?Q?L/bGQQ=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 06:39:27.4303 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 48bf01c2-ed49-4d8c-bb00-08de5f012649 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF00004FBB.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7549 Content-Type: text/plain; charset="utf-8" From: Neeraj Upadhyay Set the SVM nested exception bit in EVENT_INJECTION_CTL when injecting a nested exception using FRED event delivery to ensure: 1) A nested exception is injected on a correct stack level. 2) The nested bit defined in FRED stack frame is set. The event stack level used by FRED event delivery depends on whether the event was a nested exception encountered during delivery of an earlier event, because a nested exception is "regarded" as happening on ring 0. E.g., when #PF is configured to use stack level 1 in IA32_FRED_STKLVLS MSR: - nested #PF will be delivered on the stack pointed by FRED_RSP1 MSR when encountered in ring 3 and ring 0. - normal #PF will be delivered on the stack pointed by FRED_RSP0 MSR when encountered in ring 3. The SVM nested-exception support ensures a correct event stack level is chosen when a VM entry injects a nested exception. Signed-off-by: Neeraj Upadhyay Co-developed-by: Shivansh Dhiman Signed-off-by: Shivansh Dhiman Reviewed-by: Nikunj A Dadhania --- arch/x86/include/asm/svm.h | 1 + arch/x86/kvm/svm/svm.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index c2f3e03e1f4b..f4a9781c1d6c 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -657,6 +657,7 @@ static inline void __unused_size_checks(void) =20 #define SVM_EVTINJ_VALID (1 << 31) #define SVM_EVTINJ_VALID_ERR (1 << 11) +#define SVM_EVTINJ_NESTED_EXCEPTION (1 << 13) =20 #define SVM_EXITINTINFO_VEC_MASK SVM_EVTINJ_VEC_MASK #define SVM_EXITINTINFO_TYPE_MASK SVM_EVTINJ_TYPE_MASK diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 693b46d715b4..374589784206 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -363,6 +363,7 @@ static void svm_inject_exception(struct kvm_vcpu *vcpu) { struct kvm_queued_exception *ex =3D &vcpu->arch.exception; struct vcpu_svm *svm =3D to_svm(vcpu); + bool nested =3D is_fred_enabled(vcpu) && ex->nested; =20 kvm_deliver_exception_payload(vcpu, ex); =20 @@ -373,6 +374,7 @@ static void svm_inject_exception(struct kvm_vcpu *vcpu) svm->vmcb->control.event_inj =3D ex->vector | SVM_EVTINJ_VALID | (ex->has_error_code ? SVM_EVTINJ_VALID_ERR : 0) + | (nested ? SVM_EVTINJ_NESTED_EXCEPTION : 0) | SVM_EVTINJ_TYPE_EXEPT; =20 if (is_fred_enabled(vcpu)) @@ -4137,7 +4139,8 @@ static void svm_complete_interrupts(struct kvm_vcpu *= vcpu, bool reinject_on_vmex =20 kvm_requeue_exception(vcpu, vector, exitintinfo & SVM_EXITINTINFO_VALID_ERR, - error_code, false, event_data); + error_code, exitintinfo & SVM_EVTINJ_NESTED_EXCEPTION, + event_data); break; } case SVM_EXITINTINFO_TYPE_INTR: --=20 2.43.0 From nobody Sun Feb 8 02:41:36 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011058.outbound.protection.outlook.com [40.93.194.58]) (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 EE5871E1DE9; Thu, 29 Jan 2026 06:39:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668794; cv=fail; b=tmOdsXPbWBPrY/AEp28w7FI2xgvhhqNIEVS/0oIEpuILWTnhWG8eTTF+HTN2nmbCrP+hPZrdCVAOjt7s63dpfYMs05M65xd7GSb1bRvvEPTpV8IsDDlc4BqUMvWNfdRMZ/1bf21fTyAXl6/rO3Vw8NetT3dVwucR8B/B0OIJwNY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668794; c=relaxed/simple; bh=TROuxJJZ7v8eOcelpU+5RCRer7bQznteFwqboHm9T4c=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jVlAhW3JYMAMyeLR6jU/iKf/yhKMISfRtkGLELMAE/IINOgc/vVBa1TqiDTyFO1Hz5fDBnMp6Ydj/W4ZthWf7GvlwvmGW+dCQFjtxhUTnRhEh6kE+sEsP+VTjcMarTj0xkCk/y3jMxS4Z1V+Msahygx+VsoyYLiUQGC9rAx5RM8= 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=QucO+FC8; arc=fail smtp.client-ip=40.93.194.58 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="QucO+FC8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V0m0rUYOaFubAafXHIbDUKa7Ysk5B74LrhauSKYrL0fHeT9ZVT61ZFfxIPEgTByRMb3w8ey/J1qj+Yq3cBzw4fezkB7Pxtc/1Rp1Rz72gxWIG4KKmeJMPzcz5F+6Tz+/5cKdqETVICyss20/iMWq2wvWuUroxS+f8bH3Nh/BximPSZJa/RsSFATjO9eOQ4CrVr5XChDGnV0gsPFAYoofSHz1KJhMHTxzUEGYlza95d+IjS8fSBorCUesZAhWurcBSOYuGqj27I2coVT7CKnRdIRUZ/HEb/dslcj3hRMTqUVbsxI1IW8gt070tJaex0D5UW35RLWh5MjebkKngMMgDg== 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=BD+wWEjFxEkiPjMdivG1mjVq64fBQWPhFGgmFqMxgMY=; b=CjbSpNWeFH8hoR6zrUqnSh85/S8ndLdc2ChwnhteuLNu6lfTXdpRpV60XmGgh1J2W5gbGQOX+zQbcv/BnSybF6AyoN45YgTYp1DnAuzd2T+ZPeiYGethB0Ad+BaYXiU2RugG7UxEB0Ftry5nkX1/mciTwsglYwfl4KbDwS6lEMRoh604TvvVikOM3C0BvoPBkYWbJlah0f8O749WVfsz0+XunxjM+tlI2HRZKBfLGZSdo1d+TdvxOLIS0HWceSZPDR+eSgUhSJI9SmJzb91nQd2D66XSW7pBK14Cs07ZnutzrVnV/HkbrU+dLrk/yLM+5T/szfkUCxPKWlgVeR26CA== 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=BD+wWEjFxEkiPjMdivG1mjVq64fBQWPhFGgmFqMxgMY=; b=QucO+FC8aH1T/VCb81Qk6ZD/cXNS3xfBuswgxnPa0JMfMK4G0io+VyM2DEbiQiXb+dlE39eLvSGope43A6RkVg9l69leq4epeQoCUGgajkACt9Rg6x15QOKaj/mMJmoPPgGMIqvwizKmof49KaUbmiRuRVqHKZ9dne9muSdaBT4= Received: from MN2PR13CA0021.namprd13.prod.outlook.com (2603:10b6:208:160::34) by LV9PR12MB9758.namprd12.prod.outlook.com (2603:10b6:408:2bd::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.15; Thu, 29 Jan 2026 06:39:49 +0000 Received: from BN2PEPF00004FBB.namprd04.prod.outlook.com (2603:10b6:208:160:cafe::4) by MN2PR13CA0021.outlook.office365.com (2603:10b6:208:160::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.2 via Frontend Transport; Thu, 29 Jan 2026 06:39:49 +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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF00004FBB.mail.protection.outlook.com (10.167.243.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.3 via Frontend Transport; Thu, 29 Jan 2026 06:39:49 +0000 Received: from purico-abeahost.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 29 Jan 2026 00:39:45 -0600 From: Shivansh Dhiman To: , , , CC: , , , , , , , , Subject: [PATCH 6/7] KVM: SVM: Dump FRED context in dump_vmcb() Date: Thu, 29 Jan 2026 06:36:52 +0000 Message-ID: <20260129063653.3553076-7-shivansh.dhiman@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260129063653.3553076-1-shivansh.dhiman@amd.com> References: <20260129063653.3553076-1-shivansh.dhiman@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBB:EE_|LV9PR12MB9758:EE_ X-MS-Office365-Filtering-Correlation-Id: 1ece5ad4-f901-45dd-af5f-08de5f013376 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?60TeQxpXWqhLUa/FLuMwbQWNOcAV8VkGJqiAThAy+DlJ1PS76+XEJvYD8VMx?= =?us-ascii?Q?4+Pe5JGcCkcVjRH142N4ILtJKaqFGHckVdMN4fq8W1RgWBfwFjUjkZp6D2GX?= =?us-ascii?Q?dQ/qzDjhGnenoGBBoQlLvS6oWK3RoGJRIaiR8nlckYkCza+kminM9HJyyMr6?= =?us-ascii?Q?mYr89BYTE59ngQJ34JReEiYPMwKT9H3XEvGrF4JIjPGxp94FsAUAP69hHrQR?= =?us-ascii?Q?wajcQIMr2ob/boCckJxNB3JM4Zm+Pa43OE7P79cOAY6fJy14t8iATq7IwqBB?= =?us-ascii?Q?1G+sPoneNjF3DvQFSobwqRCu4ZVJj8gS3+o5MF4dGQKzW435OJp5i28jdIP4?= =?us-ascii?Q?u5VFozMVz1IPVlqtHFugqxI4/3jyzz45dEEkxw1Lh+ZWOhiKpcdW7xUI0S6t?= =?us-ascii?Q?1EkvyJKOiRVGiiqG07d5bSWEGZuYGq2tCnd4K9TnTG8h8K/wvhYAIIkaA9r6?= =?us-ascii?Q?pXxTTbvI+IoVXkhRacQcpWN4yMs7XKHi2mQg0/1sWp656YX4th6Ad4xAMdN9?= =?us-ascii?Q?olwmGdF7/jd/ZqefJqMPX8zuXW2EfBX/g/73c8lpg0ycErgps8haOmn2yLED?= =?us-ascii?Q?bLiIx7gQwOxl8nB3SljEcQzGoO/tX5b5hkB9m7SdPKlHpmHyiKT6DUCd7W7+?= =?us-ascii?Q?jfGPvD93eAMRnlKNYANX0rKcEoODMfYfmnYAcYt+sZA9+aZCN1X3zzW/1ZS9?= =?us-ascii?Q?B8PxjASrSwL6gGWTI4YGSMOGlLfXRZyoE5AU10RELcTbUL/wQebOtNppPtol?= =?us-ascii?Q?2LVyYgjVhwF/luCc5GW/8b2CSgZsNlATOx8C0dp8mL9CUlDkFCDuyogVg0hQ?= =?us-ascii?Q?fIT1Sp/fn991+tGT508W5DwV2k+PvC5dHUv21hQfiZNpDUirwPR/2dAUwsOd?= =?us-ascii?Q?KNmH7d2xWYcSjcgy3ldyFbeaYe+pcHGxb2ODRXExer6C4USsu7zrWjk5iPXM?= =?us-ascii?Q?sX/0zVtmhnqNA/vK7WSabzMguSbSWUr0FOmxmpeHp63LtZ7GBZokmbYf12Q6?= =?us-ascii?Q?sAlSfkorFhU16vmyTfMaYkMNA+nwwN9JV3RiuxoC/2TdEv0RMr4panp+58Nx?= =?us-ascii?Q?WhOho+dPTBhoGsB1izj9NU2M7acIeQ0MOs6RHL/sG17lkzvMkDlph3B4tWw7?= =?us-ascii?Q?k+/BSGMXAOSvctC55gD6m5O43Eg8w1Tl4uJzZ8NcZPCktSGz7pm9ka3DUVn0?= =?us-ascii?Q?hTtDWV/xOWztji4BCP6gd+jxac+c8512e5R0E3UosZpwsVNLvM9+2yZoI5Q/?= =?us-ascii?Q?oS/QiO1g8SLyLds0ftfxTmBl5Tk5MuV2hSSuCCdTKsjLTY/ZBL7H9BH87UrF?= =?us-ascii?Q?WxzRAJTZBXxnBlOh8FyhkMryDKGURL5J8Lx6iSWjiAgVKNQ3rWhnrsZjtM87?= =?us-ascii?Q?ah0dYjUPPIdCkppunK/05Nf8FZf9Fmt7lE/0YC7r7miWur2Qaov5AdGOuiPw?= =?us-ascii?Q?ereIeVqHnufxq5onOj8DC4+1m49ZTeGthhAhtRS7W4J9KFnQ5yumybBsCOtu?= =?us-ascii?Q?+qykYb9+PbjVpLK03jsXS5AlIBPfcSzxMTMAPo/YbyaYOrvLuiYOjBEP1JwD?= =?us-ascii?Q?2ifNTIchwjQfpR6kxumpJtcXimLBSCwruaCvufDIy0m7nnngDGYFKFPhwuiL?= =?us-ascii?Q?kn2KknCLD2NxR3PBIReZ0vsu9dZHj8vH+5vgLx6hbBpfqNxsys43ct4bAwN5?= =?us-ascii?Q?qpDmOA=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 06:39:49.5177 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1ece5ad4-f901-45dd-af5f-08de5f013376 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF00004FBB.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9758 Content-Type: text/plain; charset="utf-8" Add fields related to FRED to dump_vmcb() to dump FRED context. Signed-off-by: Shivansh Dhiman --- arch/x86/kvm/svm/svm.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 374589784206..954df4eae90e 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -3319,6 +3319,8 @@ static void dump_vmcb(struct kvm_vcpu *vcpu) pr_err("%-20s%016llx\n", "vmsa_pa:", control->vmsa_pa); pr_err("%-20s%016llx\n", "allowed_sev_features:", control->allowed_sev_fe= atures); pr_err("%-20s%016llx\n", "guest_sev_features:", control->guest_sev_featur= es); + pr_err("%-20s%016llx\n", "exit_int_data:", control->exit_int_data); + pr_err("%-20s%016llx\n", "event_inj_data:", control->event_inj_data); =20 if (sev_es_guest(vcpu->kvm)) { save =3D sev_decrypt_vmsa(vcpu); @@ -3434,6 +3436,25 @@ static void dump_vmcb(struct kvm_vcpu *vcpu) "r14:", vmsa->r14, "r15:", vmsa->r15); pr_err("%-15s %016llx %-13s %016llx\n", "xcr0:", vmsa->xcr0, "xss:", vmsa->xss); + + pr_err("%-27s %d %-18s%016llx\n", + "is_fred_enabled:", is_fred_enabled(vcpu), + "guest_evntinjdata:", vmsa->guest_event_inj_data); + pr_err("%-12s %016llx %-18s%016llx\n", + "fred_config:", vmsa->fred_config, + "guest_exitintdata:", vmsa->guest_exit_int_data); + pr_err("%-15s %016llx %-13s %016llx\n", + "fred_rsp0:", vmsa->fred_rsp0, + "fred_rsp1:", vmsa->fred_rsp1); + pr_err("%-15s %016llx %-13s %016llx\n", + "fred_rsp2:", vmsa->fred_rsp2, + "fred_rsp3:", vmsa->fred_rsp3); + pr_err("%-15s %016llx %-13s %016llx\n", + "fred_stklvls:", vmsa->fred_stklvls, + "fred_ssp1:", vmsa->fred_ssp1); + pr_err("%-15s %016llx %-13s %016llx\n", + "fred_ssp2:", vmsa->fred_ssp2, + "fred_ssp3:", vmsa->fred_ssp3); } else { pr_err("%-15s %016llx %-13s %016lx\n", "rax:", save->rax, "rbx:", @@ -3461,6 +3482,24 @@ static void dump_vmcb(struct kvm_vcpu *vcpu) "r14:", vcpu->arch.regs[VCPU_REGS_R14], "r15:", vcpu->arch.regs[VCPU_REGS_R15]); #endif + pr_err("%-26s %d %-18s %016llx\n", + "is_fred_enabled:", is_fred_enabled(vcpu), + "guest_evntinjdata:", save->guest_event_inj_data); + pr_err("%-12s%016llx %-18s%016llx\n", + "fred_config:", save->fred_config, + "guest_exitintdata:", save->guest_exit_int_data); + pr_err("%-15s %016llx %-13s %016llx\n", + "fred_rsp0:", save->fred_rsp0, + "fred_rsp1:", save->fred_rsp1); + pr_err("%-15s %016llx %-13s %016llx\n", + "fred_rsp2:", save->fred_rsp2, + "fred_rsp3:", save->fred_rsp3); + pr_err("%-15s %016llx %-13s %016llx\n", + "fred_stklvls:", save->fred_stklvls, + "fred_ssp1:", save->fred_ssp1); + pr_err("%-15s %016llx %-13s %016llx\n", + "fred_ssp2:", save->fred_ssp2, + "fred_ssp3:", save->fred_ssp3); } =20 no_vmsa: --=20 2.43.0 From nobody Sun Feb 8 02:41:36 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010021.outbound.protection.outlook.com [52.101.56.21]) (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 1E9921E1DE9; Thu, 29 Jan 2026 06:40:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.21 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668818; cv=fail; b=cGwtlTOrDUU3bCI9j4Y4BFRqX3d5rL1prgEfX1tTn6n+6nEsdPugP9w8w0AbVaOCCQnncXrg85PccFqOmwfp+zxYh6PPk23Qe7kgnmsWcKDWQXmFno/7NU+Xukyq7Q0PI8jolnvq+ETyUS5+yaafqSUGadv5RPLzxYo7ecLfbG0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769668818; c=relaxed/simple; bh=JWtE8rVAJ/yhAn7gfw7edbQ9i5Q8Qscb+YELX8m2Uhg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=I24dT+2GM0TXQrH48vWSLkRPFIf96PlUJKB9yextriOhNaONJ1ctMfDdF70zZfGy5i/+6PYLxNk3K/G+dV0U2dkqx8OqOBlewmwJO97Go7kM8QwKYktzRjzecFEN/TWcXotaTuzfbudjliD6oRZ99gPbfAgel7h2Zb8vml+unWU= 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=iEquznED; arc=fail smtp.client-ip=52.101.56.21 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="iEquznED" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N4npbx3kwxLJbWQpGw6ebcQvFAG0vxPgVG+4JBwmgNY4MRwUlYaiuyBBQCpA4jUl2pwZzCC5Yf3NvGDrsiXoVRZTDB8UKetxBL7Byscm8W+eE0wHC5ra7GY3DVbE3QHP4RvxYGfFRYOiLU6eMN5f87Z/rtHKldwXeYa/EyM/axLfwgbT3wa5X+fi2vp4+EM1hg82ioJKtsiNugDbrXbtOKkdbURyu/NZ0XdYwLieXaSyS3cgA8fgtf7VDHVJLHYN+vAox/hhXPTM/ZvN+0elQEgxlHoxJyLf8vRbmr3rECQ2TNEmYBn3c/HpY+Ch7JKW/ttZQqMjbAZzhi6Dq5oZeg== 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=OXF3UnGMl1T2MmJmgdTGPvw+lvfgzC3NNGw70tpa3tc=; b=KHx+82AMm89avWsWWcEku48OUdSViW4DjrbjT5uhBxSJmWtOZbimjl/IRDZYddO3JgdmMrxwUApIBSDTZPe+jCdcShITP56IP+ku9n+khuw938msRuNomzEU4eyUNzdpmIg3sMjiQMMu0xOlHULCtFwoyYghx3Hd0I9KVGswgAuVTpsp3tEEboQkNN7DnxBTia90QmC7gdtwt9aOuANBpXRYZkDpsDHW7h2k1lPJeC4oDJ19uc70AnsZKZvhMOosyERCJU//A3j9st0Rmzg+r/plmhoFgXQcOYwex97XhzJMq76azi+VwHNrP6XubgQausw3KxgvBCUITSJ/GkZqsw== 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=OXF3UnGMl1T2MmJmgdTGPvw+lvfgzC3NNGw70tpa3tc=; b=iEquznEDOfOX10H6gAU48eOp0uxSqtCKGj/cLrZLop26TVIwz6MbcHPocgsieWazM/Plu33+6ohClfoK81CAquAwfvTcBd0ZFzJKl0Bk0cFgT1tgcSja4N+JKJpK169Hem8rXAnLVDhHMFuOS2QJXSt8ijekITPl1ymzqSX5mtY= Received: from BN9PR03CA0862.namprd03.prod.outlook.com (2603:10b6:408:13d::27) by IA1PR12MB6460.namprd12.prod.outlook.com (2603:10b6:208:3a8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Thu, 29 Jan 2026 06:40:12 +0000 Received: from BN2PEPF00004FBC.namprd04.prod.outlook.com (2603:10b6:408:13d:cafe::e6) by BN9PR03CA0862.outlook.office365.com (2603:10b6:408:13d::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9542.16 via Frontend Transport; Thu, 29 Jan 2026 06:40:12 +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=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF00004FBC.mail.protection.outlook.com (10.167.243.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.3 via Frontend Transport; Thu, 29 Jan 2026 06:40:12 +0000 Received: from purico-abeahost.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 29 Jan 2026 00:40:07 -0600 From: Shivansh Dhiman To: , , , CC: , , , , , , , , Subject: [PATCH 7/7] KVM: SVM: Enable save/restore of FRED MSRs Date: Thu, 29 Jan 2026 06:36:53 +0000 Message-ID: <20260129063653.3553076-8-shivansh.dhiman@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260129063653.3553076-1-shivansh.dhiman@amd.com> References: <20260129063653.3553076-1-shivansh.dhiman@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBC:EE_|IA1PR12MB6460:EE_ X-MS-Office365-Filtering-Correlation-Id: e8b363a0-202c-48a5-7baf-08de5f01411d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?3dfOyibLHPB6zdNpUjUq4DazAM3xRRKsBRFi7vLpajtOMRPN6q4N1MvBr+UN?= =?us-ascii?Q?Pha1fuA7gq+9EPfk/xvnjeNWpYNYjSWz3XX8ErEbxGnxFJ3zlQIUpEmVSYHp?= =?us-ascii?Q?1oN1H4RQAYP5XJsAaWlpDvBmLU+BrsOxoBplTYfN9Ib1P6NTKkIu7SIo0hLX?= =?us-ascii?Q?oKWDhHqywAPjr6N//kwNNmGnucEGOGvQJ8SwL6iUK3yKlyqiTD7RYcOfVPHd?= =?us-ascii?Q?YlWTqFYJaRPXUtlZitmQPPoUZYpeTV/Ml7YRYfte0ykvQzv5DQFOIeiQOnX5?= =?us-ascii?Q?me/U8XUfdSpmecXvDeyEsGkTlR34K7w3gBy9AwTc9IYKs4j1vHJlABE59Pvr?= =?us-ascii?Q?sx5fVKA+a+cFAQRTb8r7gYIaTDxjrkro5G3aoXgwsUYw+J5feRhX4iZ+Cx6/?= =?us-ascii?Q?uLCPfkxa9kFIaxJIpz8WANMkMzXfrCbIwuS/P0KYtBHjrJn5kjg9q4mPLsU0?= =?us-ascii?Q?25hPL+qVhoBpD3BWxBV8bZlA/7YWjwzBBrF7JuDpTtLu3Jw2Zmmiw6mZ8QEN?= =?us-ascii?Q?KTdD/qf+tt2JWY9Q8DSkkg8ja4Hep2zG956FFRec5mL68qgdBGMIZsANi4rQ?= =?us-ascii?Q?V44bbeK3+AeYnWlsFFUjMM2EeaLE8/99HM1GYiv5FvycVsNwNpOZLIJzbO6A?= =?us-ascii?Q?tMxZAoHT107t+GRFRdhjzIRAhCBKW34dZnq4uIsLB/97tp0ViBUFbLljhRix?= =?us-ascii?Q?TD45o8z5j4geDcA53JSKXnpjG2FOiXlDFxfHGs5+C8SV6083TLOmMQ8SIvxS?= =?us-ascii?Q?TeE9568JVkUuYmN7Dc2Z+ft0cYCn8NplmAaVq9uiFY/4yu1JGI37HpCADuZf?= =?us-ascii?Q?xcPq3hDkD9E8kfbCoAKM876MinC5RmqzXJGfLLRvGD5ud41M5CjCn5ARPzuj?= =?us-ascii?Q?9VsidMDAsNVJggijW+pvMcWO7uV5Xgj70QpRpIF8iwTIo9ZFHqWWgn3houLr?= =?us-ascii?Q?TxZn3Z/WqlPnWxIARCW6I1apB3JTVlmm/cIGY8I8+CjIcz/UgcHG8pdDSbeA?= =?us-ascii?Q?bV2oTHLp92bJXKs3cl5Mn5iocUqSSgoJRUY8TYjGmOJIjPqa0QLCN+TwAEuR?= =?us-ascii?Q?CISZsw18yuAsgqN0XQGE8js5OTSdm6Ft5nj7hdT8/76WtG2vkInRRGM+/l1W?= =?us-ascii?Q?jvKGfIJJTxNwTmYrSZ91xSjKZDL04x54epSBJA8kvY9gLEuBJwPI49EHWe8f?= =?us-ascii?Q?7ohTxgVuxl2LGyuL1pEuCeOrGmUO+CGcKgrYDj2CkBLNsYqpew/zcJyBCcKj?= =?us-ascii?Q?fR2l6Xm3x9MXiYs3bK48ircosy/u6eAeZ/p3uqH0XwDjFPaEnpCrrtCWSurs?= =?us-ascii?Q?9MxFwOhvoJp/jOiAg0N3s1y6eTbJHx48be+jUB9qDqSnjCV1xCydBbzGuEcj?= =?us-ascii?Q?ImEjIxoooP8HCOGyKXAg2sBLUfBcXirVPMpgIkMC0CWCILRPvNiWClujlkE6?= =?us-ascii?Q?FrJm/y/rb/i7uByf2GjjQyUQi52Uyln2QEtmhC5gHdKfSKxlywQUM9vOjopV?= =?us-ascii?Q?mc/QumjPTi79Uy7G92NuCTwn0zTWja5Rk23iJMg9FJkrtkc+v/OmgMmPnCk0?= =?us-ascii?Q?QsI7zyAxFjxvQYTGxIUqx8uLznXV5VqjiYHRYDbYeXLMThTMyW70jBgUHnI5?= =?us-ascii?Q?puikghaLwAirfP7tbHL61FWxGAQcb7TiwYxn3mTw1Wlj?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 06:40:12.4174 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e8b363a0-202c-48a5-7baf-08de5f01411d 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF00004FBC.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6460 Content-Type: text/plain; charset="utf-8" Set the FRED_VIRT_ENABLE bit (bit 4) in the VIRT_EXT field of VMCB to enable FRED Virtualization for the guest. This enables automatic save/restore of FRED MSRs. Also toggle this bit when setting CPUIDs, to support booting of secure guests. Signed-off-by: Shivansh Dhiman --- arch/x86/kvm/svm/svm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 954df4eae90e..24579c149937 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -1144,6 +1144,9 @@ static void init_vmcb(struct kvm_vcpu *vcpu, bool ini= t_event) save->fred_ssp3 =3D 0; save->fred_config =3D 0; =20 + if (guest_cpu_cap_has(vcpu, X86_FEATURE_FRED)) + svm->vmcb->control.virt_ext |=3D FRED_VIRT_ENABLE_MASK; + init_sys_seg(&save->ldtr, SEG_TYPE_LDT); init_sys_seg(&save->tr, SEG_TYPE_BUSY_TSS16); =20 @@ -4529,6 +4532,9 @@ static void svm_vcpu_after_set_cpuid(struct kvm_vcpu = *vcpu) if (guest_cpuid_is_intel_compatible(vcpu)) guest_cpu_cap_clear(vcpu, X86_FEATURE_V_VMSAVE_VMLOAD); =20 + if (guest_cpu_cap_has(vcpu, X86_FEATURE_FRED)) + svm->vmcb->control.virt_ext |=3D FRED_VIRT_ENABLE_MASK; + if (sev_guest(vcpu->kvm)) sev_vcpu_after_set_cpuid(svm); } --=20 2.43.0