From nobody Tue Apr 7 22:04:15 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1773239280; cv=pass; d=zohomail.com; s=zohoarc; b=fJBjvm9pVc7xCR/rBMYDe9NgWIse6EvkedGd95WGdJiuEgsQjR4YtP7YXQ7nLsLiDGBE/zf7DZjTwc0AitXosngMMLUMcoSGPgc4214yJSSTKQ9HLrC8uwv4eitbtrWSA7LmfQWFcaVpL6Gm01l7/UFFeHA8ejTzCNIOtQRg9Bg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773239280; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=q+p7cae+ArZ+PDM9loA7Pfn9Yv4gwr3gdHU7guinMic=; b=IIkVAbdgVk2b6wROeKnaJ3CQ7UVGUIw3Kf10XO0LjfarO1YMTPMEu42o9GPUeJKtrQhSBFb20I3o4Ku93no2d5OZKVzNj9WI78+C7qwhQ+x9nfWMM+ZlAg9PQ1joLL9U7mXkpvIAeNP/57OZquyiTCYJ4cD7Zo9pb/NR7k1sIzA= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1773239280182549.5075352498594; Wed, 11 Mar 2026 07:28:00 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1251172.1548423 (Exim 4.92) (envelope-from ) id 1w0KXB-000073-W1; Wed, 11 Mar 2026 14:27:37 +0000 Received: by outflank-mailman (output) from mailman id 1251172.1548423; Wed, 11 Mar 2026 14:27:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w0KXB-00006w-Sp; Wed, 11 Mar 2026 14:27:37 +0000 Received: by outflank-mailman (input) for mailman id 1251172; Wed, 11 Mar 2026 14:27:37 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w0KXA-00087A-Vd for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:27:36 +0000 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazlp170100005.outbound.protection.outlook.com [2a01:111:f403:c112::5]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 7163c7cc-1d56-11f1-b164-2bf370ae4941; Wed, 11 Mar 2026 15:27:36 +0100 (CET) Received: from SN7PR18CA0001.namprd18.prod.outlook.com (2603:10b6:806:f3::15) by MN2PR12MB4109.namprd12.prod.outlook.com (2603:10b6:208:1d9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Wed, 11 Mar 2026 14:27:27 +0000 Received: from SA2PEPF0000150B.namprd04.prod.outlook.com (2603:10b6:806:f3:cafe::a4) by SN7PR18CA0001.outlook.office365.com (2603:10b6:806:f3::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Wed, 11 Mar 2026 14:26:54 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SA2PEPF0000150B.mail.protection.outlook.com (10.167.242.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:27:26 +0000 Received: from xcbagarciav01.xilinx.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; Wed, 11 Mar 2026 09:27:24 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 7163c7cc-1d56-11f1-b164-2bf370ae4941 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DDgl4UencWUze2cMf+q9tdLeEE284uV5j0+TBDbOCRbbOIZTrKCotMTdGkAD/Ys7Yo5Z8ZHBHvJ0vcZiodNUzQ8fd0wgK1Zu0P8z4hgrmGVUxJZluQF6RGsjWbY6/HvaY+1/Nm54tsejcM66EXn9QH75zDdulMOLjZnrI6a0wATSPWILHk7XogjD7cdM+0d77ENvii1CGoqCLBjfwH7yUYz9XTIQBqLlZPzHr0eDyil5AOZ0XQjzK4isjF6/Hvgo9Lml070rLhO9fN9DEJZTkkPj9x1a5BI3iiex3BQj7v/HpHbOxXfdUA+jBEMfgpVAzlJlUP1ZUjgsbumCTU+u5A== 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=q+p7cae+ArZ+PDM9loA7Pfn9Yv4gwr3gdHU7guinMic=; b=AxoXF82wcKEQVLP9sB/SambvAJz8oL9Ji9UVAmPzG+gQV3FiAnf6pw6JGxNiEOOwlqpD0+AtD/3jT8bEJ4oqMhCKCY1/KT41Cwsy5HOuru/yRZO+44reBEG34MJo0s0cxQRW7QJkyH+Dtd76MbX3zoYX1PLVL36MuUYOMD0+BANd9MBIctiBBbiTHW9CG/qe42HIAGhvZC723fvxO8L4hQFfQ3bceGs+ftyQeEsPyqmtrVzowQIMpqvg+3jac2OnLNx8MEpos6ggddo1CwsRDYoqLbv4lu5wadvadPTDV0DtGKD3zjLw+LYvwS/BLrjob8S58NWEnaQNW549XLjZpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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=q+p7cae+ArZ+PDM9loA7Pfn9Yv4gwr3gdHU7guinMic=; b=I+U0KKTpjTNbKaCpXwA3wlWmpIthhA0EUXt93d+eU5lHiJtOfAJT/hmC9gGbIEyJk5d8FZ1sZXNDKN/l1tviNCuEnKxT/Irr6fyrpSgDIHA4Pgvra1MzfwxPub7XaGRkmj1NL4ccerbUVWJGG+2TU6fga8zVepbISOX++iJ8kW8= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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 From: Alejandro Vallejo To: CC: Alejandro Vallejo , Oleksii Kurochko , Community Manager , Jan Beulich , "Andrew Cooper" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Anthony PERARD Subject: [PATCH v4 1/4] x86: Reject CPU policies with vendors other than the host's Date: Wed, 11 Mar 2026 15:27:04 +0100 Message-ID: <20260311142711.16754-2-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260311142711.16754-1-alejandro.garciavallejo@amd.com> References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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: SA2PEPF0000150B:EE_|MN2PR12MB4109:EE_ X-MS-Office365-Filtering-Correlation-Id: f880a7ec-97e3-4ee1-41e0-08de7f7a5163 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|13003099007|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: wJApQdifNk8zsKCNq/h+1aA2HVsUrjjM2V+L2Eh6tQD9LKqkKf70Y1Pjb/e8aZpWqQOqQlS5Jn+wmtr+poilXQO+l/Ob5/M22pdilaeF2oNAyzFeHUGrxtI3qTzbBza1F8afANsz5CERmxfBEXVucb2Z2ihllyHF41a4RZA4GKJXQePC3PxwnMVv21tjjYIvleIOxDAFCjKZAUuKco2jKO/SCGhDydZ2xkOWBLBupJvYZD9tM7qEwR0O6djUuu5t+L17wWpbIliKc9HzMtFPjSV6pgXjMJitNYd9+Ka6G23ba5nYPMSJuA1J0XBr2xZ546Xn8K5gtGF8aULWIi4D3dqEHKcUBMFrvjVG9PxXg33XPsudAj7ZneVYnZLKND5kvPRhQ4fAETSjnZk25icUm3dj6X5CXZ1fiDLDGpbOX4YkNwlkXUwXB65sC7pHYAgJ9bVuP7bW9HVIdY0KB7au6EwwhxODSh1NFt6y6+NNOM+dH4DzuvNr059g2NzgkEMYYncPH7i1+TySSGe36vl5laja3pkqWjOsfo5wpR7ldKeVFBRwRbuu4qYTpiZYYB3QffSRDfYuINrf/sFJgDxPl5yklVNw5Xc6u26MM4DNf2UNm8wevlE1qqliW85/s0dgc/3MsFWFc0khGArCg16Nr+TePM99jzpgv1PY5XNgKcv4vpY7KYBzC+SZDv4sWPwKcwLLuB53ZC3YhGJjHctZrR8RI1pmnQWYYG8dz2anty8= 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)(1800799024)(376014)(36860700016)(82310400026)(13003099007)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ch4FZZGHTnrcFCr55X6O2I02GZSmIBAXqn3DyA8zmDO67p5uFRpxW4KYwu0LP3OsZuVESekYmq1jxqsTA1QDM7VDOZLjsHKc+gaLrfiWR1CyxxVkiyW7kgywFhFyyF2Y/GAg/Rc2MbykVkGZAr8S/LyqUKLvfZH8FRFJrLryHUvyLAkOFrH+hA5kfFBZJZG5PR+F+wXIRN0pNCL88hSN+7nsF30KJCxp7vikZbxWaeA5sBbp++N3E/buc09Hqz4kfG++9kgV98mZNwMTuVfvmN7C+9+IiIahrHwktXEAXOYxtrcn62s09jq2U+IodrbTY9Y74oU3C7xFXN/rH+Cc4fsXV4SkwRR7WKQHZqbQ3/Difkukp/9U0QALJxUMLbAsbaRQrNKqYQ9mUqcjssfcS2IRwZKlTl4PpAWV1ix7bTmFBQ4KBGgoSu/o8LAdXIPO X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:27:26.0768 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f880a7ec-97e3-4ee1-41e0-08de7f7a5163 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: SA2PEPF0000150B.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4109 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1773239281764154100 Content-Type: text/plain; charset="utf-8" While in principle it's possible to have a vendor virtualising another, this is fairly tricky in practice and comes with the world's supply of security issues. Reject any CPU policy with vendors not matching the host's. Signed-off-by: Alejandro Vallejo Reviewed-by: Jan Beulich --- v4: * Adjusted CHANGELOG --- CHANGELOG.md | 5 +++++ tools/tests/cpu-policy/test-cpu-policy.c | 27 ++++++++++++++++++++++++ xen/arch/x86/lib/cpu-policy/policy.c | 5 ++++- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c191e504aba..90ba5da69e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,11 @@ The format is based on [Keep a Changelog](https://keepac= hangelog.com/en/1.0.0/) - Xenoprofile support. Oprofile themselves removed support for Xen in = 2014 prior to the version 1.0 release, and there has been no development s= ince before then in Xen. + - Domains can no longer run on a system with CPUs of a vendor different= from + the one they were initially launched on. This affects live migrations= and + save/restore workflows across mixed-vendor hosts. Cross-vendor emulat= ion + has always been unreliable, but since 2017 with the advent of specula= tion + security it became unsustainably so. =20 - Removed xenpm tool on non-x86 platforms as it doesn't actually provide anything useful outside of x86. diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-pol= icy/test-cpu-policy.c index 301df2c0028..88a9a26e8f1 100644 --- a/tools/tests/cpu-policy/test-cpu-policy.c +++ b/tools/tests/cpu-policy/test-cpu-policy.c @@ -586,6 +586,19 @@ static void test_is_compatible_success(void) .platform_info.cpuid_faulting =3D true, }, }, + { + .name =3D "Host CPU vendor =3D=3D Guest CPU vendor (both unkno= wn)", + .host =3D { + .basic.vendor_ebx =3D X86_VENDOR_AMD_EBX + 1, + .basic.vendor_ecx =3D X86_VENDOR_AMD_ECX, + .basic.vendor_edx =3D X86_VENDOR_AMD_EDX, + }, + .guest =3D { + .basic.vendor_ebx =3D X86_VENDOR_AMD_EBX + 1, + .basic.vendor_ecx =3D X86_VENDOR_AMD_ECX, + .basic.vendor_edx =3D X86_VENDOR_AMD_EDX, + }, + }, }; struct cpu_policy_errors no_errors =3D INIT_CPU_POLICY_ERRORS; =20 @@ -629,6 +642,20 @@ static void test_is_compatible_failure(void) }, .e =3D { -1, -1, 0xce }, }, + { + .name =3D "Host CPU vendor !=3D Guest CPU vendor (both unknown= )", + .host =3D { + .basic.vendor_ebx =3D X86_VENDOR_AMD_EBX + 1, + .basic.vendor_ecx =3D X86_VENDOR_AMD_ECX, + .basic.vendor_edx =3D X86_VENDOR_AMD_EDX, + }, + .guest =3D { + .basic.vendor_ebx =3D X86_VENDOR_AMD_EBX + 2, + .basic.vendor_ecx =3D X86_VENDOR_AMD_ECX, + .basic.vendor_edx =3D X86_VENDOR_AMD_EDX, + }, + .e =3D { 0, -1, -1 }, + }, }; =20 printf("Testing policy compatibility failure:\n"); diff --git a/xen/arch/x86/lib/cpu-policy/policy.c b/xen/arch/x86/lib/cpu-po= licy/policy.c index f033d22785b..f991b1f3a96 100644 --- a/xen/arch/x86/lib/cpu-policy/policy.c +++ b/xen/arch/x86/lib/cpu-policy/policy.c @@ -15,7 +15,10 @@ int x86_cpu_policies_are_compatible(const struct cpu_pol= icy *host, #define FAIL_MSR(m) \ do { e.msr =3D (m); goto out; } while ( 0 ) =20 - if ( guest->basic.max_leaf > host->basic.max_leaf ) + if ( (guest->basic.vendor_ebx !=3D host->basic.vendor_ebx) || + (guest->basic.vendor_ecx !=3D host->basic.vendor_ecx) || + (guest->basic.vendor_edx !=3D host->basic.vendor_edx) || + (guest->basic.max_leaf > host->basic.max_leaf) ) FAIL_CPUID(0, NA); =20 if ( guest->feat.max_subleaf > host->feat.max_subleaf ) --=20 2.43.0 From nobody Tue Apr 7 22:04:15 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1773239274; cv=pass; d=zohomail.com; s=zohoarc; b=W7isUHCs8p2rKhjKdb0LY9Gkz3HWlO6q1FrYSJg++eC7YKGwzfO27dX91+uq9+BhnPTevQFq0DBYOAGahODPsyWC6QaUjUbqtxsTO17paTkuCz1XfZzoLYC8CotMYjDmJcnwrCZsiCv3SjGbB/vcExsYmhT2Tqs+pSoepSm3J4w= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773239274; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=F9MIEfn09tg7aPNeCKXTNnjlwWiDP/C9u8yiYjGcYfU=; b=gcaGjYMEoTY7/D6P/Z5cm0ovU7b18y2ljUKNoN6zcUaI/jiqyB8mmPE4yv0In62/TZMGVnWfv4SdvIKNKSOApKLp+TEyCGGotMDP1E/wvUmlBpYy3SBjCr+L4laPesfOs6JqTVdnUamQT6Slkko0T+PLpobAaNr+plXs4d88Irk= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1773239274344284.14350810937265; Wed, 11 Mar 2026 07:27:54 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1251171.1548414 (Exim 4.92) (envelope-from ) id 1w0KXA-0008KR-KT; Wed, 11 Mar 2026 14:27:36 +0000 Received: by outflank-mailman (output) from mailman id 1251171.1548414; Wed, 11 Mar 2026 14:27:36 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w0KXA-0008KI-HU; Wed, 11 Mar 2026 14:27:36 +0000 Received: by outflank-mailman (input) for mailman id 1251171; Wed, 11 Mar 2026 14:27:35 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w0KX9-00087A-G6 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:27:35 +0000 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazlp170110003.outbound.protection.outlook.com [2a01:111:f403:c10d::3]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 716ee96f-1d56-11f1-b164-2bf370ae4941; Wed, 11 Mar 2026 15:27:34 +0100 (CET) Received: from SN7PR18CA0008.namprd18.prod.outlook.com (2603:10b6:806:f3::32) by DS0PR12MB6437.namprd12.prod.outlook.com (2603:10b6:8:cb::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar 2026 14:27:28 +0000 Received: from SA2PEPF0000150B.namprd04.prod.outlook.com (2603:10b6:806:f3:cafe::5c) by SN7PR18CA0008.outlook.office365.com (2603:10b6:806:f3::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.27 via Frontend Transport; Wed, 11 Mar 2026 14:27:28 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SA2PEPF0000150B.mail.protection.outlook.com (10.167.242.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:27:27 +0000 Received: from xcbagarciav01.xilinx.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; Wed, 11 Mar 2026 09:27:25 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 716ee96f-1d56-11f1-b164-2bf370ae4941 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wO1VSRZQxNiG3dKFQJ0Y12kyqCUDIT33gpnT4vlm60Y7vYXbbhADDo+bT2eZ8bkv/gmN7JyNppbxW9atrgBtdq1n0CWyhOCc536aEj6SoEpuPisXQWHNzy1+kxg7b30ne1MYL5CVuWN2jBbaqutaY+vzIVfssdzlnfYWII9sq8Oxp3BOFBY1wDeNsHFognJhdAU4Ro9nlJpHe9lD/pbwE/qlepeHvTLAObjN4VeCHY7U4b7Kgy2LqIUOQgQFeCv81ts+ztOMDMDitGoVoIPbiznmdHehkgM/wepIJ2oIPC5W0+M4BjCvWwjDI21/K0fmPWeLl1PxPtHwmNlyf1uwuQ== 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=F9MIEfn09tg7aPNeCKXTNnjlwWiDP/C9u8yiYjGcYfU=; b=R9HpJPRloPHphkMOEeZViEYeadn4WjtHSJaY/oE52TZ77QHnt8uLw2b4/P20XI5A2nZUmV31twVQu+aHiHmClxPUxj0qyeDaARXDdVnKFt4RcccR36nYAdrzd02lnlW3co1SDZcWBTM7jHOMbE4xuw0dBnU1cFHcqbwbZpzcVTE5z8S17TxSi2jB2UZaEBK0/JnRuid5ltWhWu/QtbOSdui7a0++BtwM1SAahkV6JINHINPQ/mrBPng7n8xSl4pbcZX/zNCGQM52QqaXf5ozOmEP2AAbNSiyBxKCHJPPTR6XG7O67S6b2Z/guFu0agXlBsdYhhVGRMWydW7/CocsCw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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=F9MIEfn09tg7aPNeCKXTNnjlwWiDP/C9u8yiYjGcYfU=; b=DjNe1fap8LsWv1BF1m+RImUlVEhtgk1j3EhdWK19h3xQiSWChWVNG8S3TV54tEpvmqhpBXIMVH+zlWUcvnu3pdI3XoJUWM052rQ1GPCRiRgNRXyoWdSKAXPWTmLFN5xBROwPtTpc/BpyPCIpVBnvxIjWTvhJZFByoRBhFiln+Kk= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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 From: Alejandro Vallejo To: CC: Alejandro Vallejo , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Jason Andryuk Subject: [PATCH v4 2/4] x86/hvm: Disable cross-vendor handling in #UD handler Date: Wed, 11 Mar 2026 15:27:05 +0100 Message-ID: <20260311142711.16754-3-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260311142711.16754-1-alejandro.garciavallejo@amd.com> References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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: SA2PEPF0000150B:EE_|DS0PR12MB6437:EE_ X-MS-Office365-Filtering-Correlation-Id: 9e412c67-49c2-480c-4039-08de7f7a5287 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: +BQHOIlJa7UaHE8e4PpkK5BzL/P1XGTVYKqjQq7lCGMD/Vt7qN5FYqsebOyPJaBFBGC6RVDfZYtVUtRTL1HLgwxECsunjO/c38EXmxV2PlvW/zNtCpg/mH36Es5pq9glDWkuuDve07RpefKuBqhDjl/yfuc21JwWhtm8P8pT5hTMygeyOGnDpn91AAYvxTWho9zPTgR7q9b0A18w2n3ci6lI6y8Hcem80Mw1leoHLGGhiDHgg1fW4UgEvyX2OAPePeiN6MhB0hOk7wMj2m9n7KFW7gByWzP2q0jEWP4WJiJeb8ZNYMELlvd/tHgAq3Si9+V60KCR+/dfSDLAbDxt7KMAioesq8eDcKPYHbmeS/cnkewQgIAvnO1laaEjXQvZKyGyD7gphZHirGBUBwO1CxVUC+LYHH3NnM/0NaC1FACfnSS+6qy6ZZNxCaF5siIXw6ybIdAD96jB1bj/Jiva9XFDTQQ8ycsFOBF6lWkimKiWxEeXNz68kQjprQ4HYkKTSeAFFI/qz6nHxDl7X/pFRo0qSelYe2AQnXm1jY2FtksUigKkRxVQXsfHuPwPFBKr+lf5Z0qYNES/dCAjzENB9Zq2GFjQvhvXhgcuAOkNTYQApqXrPfNbZ697lK96d+vD9BSZ7tqUd3pS4CEUsi2e1Z6Vv3nD97lTuR5RRvpeeh/tILsQT5gdRL6WPwBAHxTt2kfr6dvGxECl/aKM7+g56aA+W6kD31pEjp+5UmRvhLa8qcZ6JFQS9QW1gbKcz+dxsWduTFIuVqubWltzP7zWnw== 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)(82310400026)(1800799024)(36860700016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ERXY193S6l0R1QhseYNZ0VDAwgWEBWzBS7NWBL+YKGdycS3mZnGi4iOHgz2JWdYefc3oP9wKRBbY4VLkYGuvrO6v6phnN7dHD8chRKIzIz4TpYIJ+byKKYL+jk91KFHBWEd8NZZLciV8bvtHq8isZlxZLoCOECzTfXBnX3AosSN0cP75rJc/0thBm34sApoFH9kSw37ovJqSssgmmTb3Npul0hh903KHAQPC/QgmWrTRPSoM5Ao8Jij43vGfpn3MuF78XgwtZfh1mNYmY2ruqYsZvvCCF4p7eyicjEXJ42s+bJ34tNPUc/yL4mlHylc4MBB15xjBx9o392DOjAOzAF+ev9zEFkwG0roNv3drMAlpo1vHprNBsFLqdxEmMZAlywlVQgH1djGhjy0VP+hXhRjhVDr1B7PpKg1LKSs2fq53TFC7vMtAfQnu6y4R0vFv X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:27:27.9893 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9e412c67-49c2-480c-4039-08de7f7a5287 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: SA2PEPF0000150B.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6437 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1773239278101154100 Content-Type: text/plain; charset="utf-8" Remove cross-vendor support now that VMs can no longer have a different vendor than the host. While at it, refactor the function to exit early and skip initialising the emulation context when FEP is not enabled. No functional change intended. Signed-off-by: Alejandro Vallejo Reviewed-by: Jan Beulich --- v4: * Reverted refactor of the `walk` variable assignment * Added ASSERT_UNREACHABLE() to the !hvm_fep path. * Moved the `reinject` label to the UNIMPLEMENTED case in the emulator result handler. --- xen/arch/x86/hvm/hvm.c | 73 +++++++++++++++----------------------- xen/arch/x86/hvm/svm/svm.c | 3 +- xen/arch/x86/hvm/vmx/vmx.c | 3 +- 3 files changed, 30 insertions(+), 49 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 4d37a93c57a..4280acfc074 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -3832,67 +3832,50 @@ int hvm_descriptor_access_intercept(uint64_t exit_i= nfo, return X86EMUL_OKAY; } =20 -static bool cf_check is_cross_vendor( - const struct x86_emulate_state *state, const struct x86_emulate_ctxt *= ctxt) -{ - switch ( ctxt->opcode ) - { - case X86EMUL_OPC(0x0f, 0x05): /* syscall */ - case X86EMUL_OPC(0x0f, 0x34): /* sysenter */ - case X86EMUL_OPC(0x0f, 0x35): /* sysexit */ - return true; - } - - return false; -} - void hvm_ud_intercept(struct cpu_user_regs *regs) { struct vcpu *cur =3D current; - bool should_emulate =3D - cur->domain->arch.cpuid->x86_vendor !=3D boot_cpu_data.x86_vendor; struct hvm_emulate_ctxt ctxt; + const struct segment_register *cs =3D &ctxt.seg_reg[x86_seg_cs]; + uint32_t walk; + unsigned long addr; + char sig[5]; /* ud2; .ascii "xen" */ =20 - hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, reg= s); - - if ( opt_hvm_fep ) + if ( !opt_hvm_fep ) { - const struct segment_register *cs =3D &ctxt.seg_reg[x86_seg_cs]; - uint32_t walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3) - ? PFEC_user_mode : 0) | PFEC_insn_fetch; - unsigned long addr; - char sig[5]; /* ud2; .ascii "xen" */ - - if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip, - sizeof(sig), hvm_access_insn_fetch, - cs, &addr) && - (hvm_copy_from_guest_linear(sig, addr, sizeof(sig), - walk, NULL) =3D=3D HVMTRANS_okay)= && - (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) =3D=3D 0) ) - { - regs->rip +=3D sizeof(sig); - regs->eflags &=3D ~X86_EFLAGS_RF; - - /* Zero the upper 32 bits of %rip if not in 64bit mode. */ - if ( !(hvm_long_mode_active(cur) && cs->l) ) - regs->rip =3D (uint32_t)regs->rip; + ASSERT_UNREACHABLE(); + goto reinject; + } =20 - add_taint(TAINT_HVM_FEP); + hvm_emulate_init_once(&ctxt, NULL, regs); =20 - should_emulate =3D true; - } - } + walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3) + ? PFEC_user_mode : 0) | PFEC_insn_fetch; =20 - if ( !should_emulate ) + if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip, + sizeof(sig), hvm_access_insn_fetch, + cs, &addr) && + (hvm_copy_from_guest_linear(sig, addr, sizeof(sig), + walk, NULL) =3D=3D HVMTRANS_okay) && + (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) =3D=3D 0) ) { - hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC); - return; + regs->rip +=3D sizeof(sig); + regs->eflags &=3D ~X86_EFLAGS_RF; + + /* Zero the upper 32 bits of %rip if not in 64bit mode. */ + if ( !(hvm_long_mode_active(cur) && cs->l) ) + regs->rip =3D (uint32_t)regs->rip; + + add_taint(TAINT_HVM_FEP); } + else + goto reinject; =20 switch ( hvm_emulate_one(&ctxt, VIO_no_completion) ) { case X86EMUL_UNHANDLEABLE: case X86EMUL_UNIMPLEMENTED: + reinject: hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC); break; case X86EMUL_EXCEPTION: diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 243c41fb13a..20591c4a44f 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -589,8 +589,7 @@ static void cf_check svm_cpuid_policy_changed(struct vc= pu *v) const struct cpu_policy *cp =3D v->domain->arch.cpu_policy; u32 bitmap =3D vmcb_get_exception_intercepts(vmcb); =20 - if ( opt_hvm_fep || - (v->domain->arch.cpuid->x86_vendor !=3D boot_cpu_data.x86_vendor)= ) + if ( opt_hvm_fep ) bitmap |=3D (1U << X86_EXC_UD); else bitmap &=3D ~(1U << X86_EXC_UD); diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index 82c55f49aea..eda99e268d1 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -803,8 +803,7 @@ static void cf_check vmx_cpuid_policy_changed(struct vc= pu *v) const struct cpu_policy *cp =3D v->domain->arch.cpu_policy; int rc =3D 0; =20 - if ( opt_hvm_fep || - (v->domain->arch.cpuid->x86_vendor !=3D boot_cpu_data.x86_vendor)= ) + if ( opt_hvm_fep ) v->arch.hvm.vmx.exception_bitmap |=3D (1U << X86_EXC_UD); else v->arch.hvm.vmx.exception_bitmap &=3D ~(1U << X86_EXC_UD); --=20 2.43.0 From nobody Tue Apr 7 22:04:15 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1773239280; cv=pass; d=zohomail.com; s=zohoarc; b=Pu9q6tVKOZg/LLQldAyZmKNKReM5wcFZ3FxOfCgx01U/NowwA79mcyUXtaQytrClKER5J7zw6XJvXtR5TKtch+xxyc7+nc+gbIT+24cxTs3hy/fIgAGAlVzHr3pg7sxHcaS41RvfWFg1qWc0T8ExxEK1yQeKisJHhv2FDqutJ1M= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773239280; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=PdWkxG9i7l3rW3T6Rp/jnTpeGEs/5PuOgfzAZHWlwfs=; b=MmlwhlWJAKnHFVPMywcfB0wzSwViY/wmCSeBAxWfpuAF/awAyoacKYZWDCgB7kMlvWBFuLLTCJP41xLoPiHMF/u8wSWHIE6uXxuNktDgPAQEYk6bbLQP+tTb+Zo+p9o+oqB3AlCEiArZT+vkS/H+NPpGYyig2fwJxZD+NHt8398= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1773239280954771.6748044529755; Wed, 11 Mar 2026 07:28:00 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1251173.1548432 (Exim 4.92) (envelope-from ) id 1w0KXG-0000P8-7L; Wed, 11 Mar 2026 14:27:42 +0000 Received: by outflank-mailman (output) from mailman id 1251173.1548432; Wed, 11 Mar 2026 14:27:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w0KXG-0000Oz-3M; Wed, 11 Mar 2026 14:27:42 +0000 Received: by outflank-mailman (input) for mailman id 1251173; Wed, 11 Mar 2026 14:27:41 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w0KXF-0000Ns-Dw for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:27:41 +0000 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azlp170120001.outbound.protection.outlook.com [2a01:111:f403:c107::1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 74afc3c2-1d56-11f1-9ccf-f158ae23cfc8; Wed, 11 Mar 2026 15:27:38 +0100 (CET) Received: from SN7PR18CA0002.namprd18.prod.outlook.com (2603:10b6:806:f3::25) by PH0PR12MB7839.namprd12.prod.outlook.com (2603:10b6:510:286::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.23; Wed, 11 Mar 2026 14:27:28 +0000 Received: from SA2PEPF0000150B.namprd04.prod.outlook.com (2603:10b6:806:f3:cafe::75) by SN7PR18CA0002.outlook.office365.com (2603:10b6:806:f3::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Wed, 11 Mar 2026 14:27:20 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SA2PEPF0000150B.mail.protection.outlook.com (10.167.242.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:27:28 +0000 Received: from xcbagarciav01.xilinx.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; Wed, 11 Mar 2026 09:27:26 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 74afc3c2-1d56-11f1-9ccf-f158ae23cfc8 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hktbEHC8uoz/N1wwmwgCUkxURNtUHzDe9DbTnku7tD/pI3o9zto4kE+bhe6SzhY9TUz6rH0+BSJQ9D/Kbxe+I6QhgwG2Ezwwdt8X/9IYiSmOd25/8OdXWv2JZgh3jbRI0vr+C/yDONgsgBE5joX3QO5nIGz6XdjsL+vo1DVnAMETfaEaAofuLrBHMkjYLKfLJhU6xexxD7AClJo6qTixyZyTCDu/BN5/9hE7SF6rPjurjgdJTBX0/wMlPN9+radXFpHvL7dKR2Lb9yyWMowlNxsKgpFDd2lZGF+R6L56q5aWbMwhSD7Ig95nvHYNAjsBRZCGXjbfsIe4xUtZ5AcKMA== 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=PdWkxG9i7l3rW3T6Rp/jnTpeGEs/5PuOgfzAZHWlwfs=; b=wWpC6IMqtUL1hMTPj6Ysm7M2BXxJ/EXXeTqrCzRsQ1IustJdjTfpaT4FLkRElA3awrvtOYQjQNn1aT2UJm26/a9IVdA9p6cyITW9/C4YjJJiJhtnbWfH+PhTS0fPGu+D4mZOJJiK4eLxM5Bp2f9RNY9JXwnVdb4r6598qPb6wE2VGJArhftQGy7U3AZ6I5ESn883idRYbf35vK1ocVxVWYtQOAF6aFxU3IDd0zpRqHpTmtpxzDrKnEEvgOfR21pM3RvfDf3toJdTTaTmYhnMVE9ggq567kSQqfe/PTN0Okq4oD7IotSn0jTdy82IoiMM2zaN1rNdMAfNtBMz2OnkEQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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=PdWkxG9i7l3rW3T6Rp/jnTpeGEs/5PuOgfzAZHWlwfs=; b=ayNpLI6vguhwi4JepUf4YGkvEpE+N7PJPNtdtXHFsMITs4gNoUbP8JFNLORetEFqZcuBF2sTL9VLriMHJQ3uX2USzb/gH7u65qt1lozWTVzTH03Pp1qbYdSmFF+1Lzj4M/oxOKeQN0IJpvWZT2m96lWe05pgltjhkDFO2M8q+6c= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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 From: Alejandro Vallejo To: CC: Alejandro Vallejo , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Teddy Astie Subject: [PATCH v4 3/4] x86/hvm: Remove cross-vendor checks from MSR handlers. Date: Wed, 11 Mar 2026 15:27:06 +0100 Message-ID: <20260311142711.16754-4-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260311142711.16754-1-alejandro.garciavallejo@amd.com> References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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: SA2PEPF0000150B:EE_|PH0PR12MB7839:EE_ X-MS-Office365-Filtering-Correlation-Id: 0da0f76e-ac80-4421-b574-08de7f7a52e1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|82310400026|376014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: zT5lDCDbMtFPdumg1Hnp2G/t/dSK62HbvoyxPkX7i7twBUuU9W+TavWTnbiCcMaG8H24ecEbB4adSX/chzx9kfPb8X7+gM2fhKXNsdBTEhmHfmn6A0humXKxMg+kR4SSKJIfVh6GEkwbztgA/Iz65lqP+Vzf6O1WeOpqqJJcib/XKEpxu/o7nCtFdD9FG6x2P8PkCNdR1Kp41HLRPV0jEPg1jX3OACG/3c5sd+ieUUEj+Xy1Bb23Vs6nIj0Z2Om/NPcCWYTFGREzqsbgfVS+ZtNzaXFabA2B4P6P1GJUv/fu2LXm7ikXyLmvjMkIOzLrbkpBV+NJZoVskwNjSB8+TvXeG6IqBAV51Xlds6FLVhNPw3khFKTnWa48xWXT4MWZ06B1c3QCZyfNIIy/G0MsNaQEkhWsPxsqwkOe80tp9GDaSjq8YkKP4IlOYRPkS6tcYBoBtN4RtlVTt3e8Qqp28GgHKyXt/XRza+dnNJu+/XA8FFKY4TMSGj06e0RhrIazZuDliN5ZGUyl/yapfTnq4DTkAZ4UOjrCUBDFwtorAi+lOJdL7mdiCJwA/wuSMxlI/hYs1nD4GyQoSvxCjN3PsCCKEROVN+OheCyESKXLL7ePxN0HOwNP+CsEaB3Z0i2gM+A4weYM8cZrGLn195dlRwiNfCQLGw9ddaHeNapDU9abwToaaiQuVGyR73qNcM84CDlzz1ileBpN9mITdN1sod9xyKpwNMKnB11QSp9+VLMtgVQ4BlmIHo+X4q39glOt76JUksMUAALTk/ZwzQ2S/g== 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)(1800799024)(36860700016)(82310400026)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: uBpz632AZlrE6ixwiH//fdJEBCjBO91PTo2FthfRCYYDRVZGLGdhb1QrHQ/yA13T5qZ1Tu6IS7MMq7Ovfox1Gc/E3/cJbquQWYoz7g09UeRz7t2vs/zYF2QYvHGb23EpLltdhSnbdj9OqyFrPuqQnNSTdnCn2gPSej2GpvoDy6FUD16GPXTmzXVAnsI2UWhVDx7q8ymN9LCKdPzuJiUUYH3DLQ/UxWWVz8Xl0UauxVsB4E0Z+xB5WnUM2j/9Edn/AIOtuE7IqBuF6qMJCA9OXbBwFNxRfZwEBiOqkRdhN2degdGkSYUDTZ10IsOpjQuH4BI12d2iAI+3jxmJdSb6tFjxvsUH6Gf2RKfSeNIwTl73gMEmEddQlFWif2YyQO5T+6l1FxsAS9GRelmYns1iCx5ivKOKNsA1WYYAqA1uZN/vR4xSbc++R3Fm/BdYj2za X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:27:28.5829 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0da0f76e-ac80-4421-b574-08de7f7a52e1 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: SA2PEPF0000150B.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7839 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1773239283967154100 Content-Type: text/plain; charset="utf-8" Not a functional change now that cross-vendor guests are not launchable. Signed-off-by: Alejandro Vallejo Reviewed-by: Teddy Astie Acked-by: Jan Beulich --- xen/arch/x86/msr.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c index 6a97be59d52..d10891dcfc8 100644 --- a/xen/arch/x86/msr.c +++ b/xen/arch/x86/msr.c @@ -169,9 +169,9 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t = *val) break; =20 case MSR_IA32_PLATFORM_ID: - if ( !(cp->x86_vendor & X86_VENDOR_INTEL) || - !(boot_cpu_data.vendor & X86_VENDOR_INTEL) ) + if ( boot_cpu_data.vendor !=3D X86_VENDOR_INTEL ) goto gp_fault; + rdmsrl(MSR_IA32_PLATFORM_ID, *val); break; =20 @@ -189,9 +189,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t = *val) * from Xen's last microcode load, which can be forwarded straight= to * the guest. */ - if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) || - !(boot_cpu_data.vendor & - (X86_VENDOR_INTEL | X86_VENDOR_AMD)) || + if ( !(boot_cpu_data.vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD))= || rdmsr_safe(MSR_AMD_PATCHLEVEL, val) ) goto gp_fault; break; --=20 2.43.0 From nobody Tue Apr 7 22:04:15 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1773239285; cv=pass; d=zohomail.com; s=zohoarc; b=f01RvBoLvUMa1xRtkjCVwwfzPEUoNXOAPYM9sWYV9u7vUe+LKrhD6A2OaGArCr1pFAGEpBGD9AkrDw/z6UzrC65O7xvV8LQRlRzBA7mNnWl4dCWjqEesRl4BZd7HNNOxv60zg3gR3304wrD5IIy3bdPE54be9o/kvzsgqVUhfBA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773239285; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8W73DiBPopGYeUkDwKpXuXzVBpLkZfDD8f6yj9F+Ki0=; b=hwCJRuwF2ilJmZ0VOcjrBa/viNl2Yw3epcpuQOCq4jsjA54wBUvwbY7eQ52H4HINmmB8XamT6P3Ta1vRkpF9YymsRHu8mwftBi27n4Pc7XYy10Rogg5ajXwpivukUXFiMbK7M0MOS5pyr0MLO744ACkRp3o3eZTNKf9PDZ4Sd8Y= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1773239285311718.850902798352; Wed, 11 Mar 2026 07:28:05 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1251174.1548437 (Exim 4.92) (envelope-from ) id 1w0KXG-0000Se-IG; Wed, 11 Mar 2026 14:27:42 +0000 Received: by outflank-mailman (output) from mailman id 1251174.1548437; Wed, 11 Mar 2026 14:27:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w0KXG-0000SV-DP; Wed, 11 Mar 2026 14:27:42 +0000 Received: by outflank-mailman (input) for mailman id 1251174; Wed, 11 Mar 2026 14:27:41 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w0KXF-00087A-IK for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:27:41 +0000 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazlp170120001.outbound.protection.outlook.com [2a01:111:f403:c10d::1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 74fe7e07-1d56-11f1-b164-2bf370ae4941; Wed, 11 Mar 2026 15:27:40 +0100 (CET) Received: from SN6PR01CA0019.prod.exchangelabs.com (2603:10b6:805:b6::32) by DS5PPF7671D5CC0.namprd12.prod.outlook.com (2603:10b6:f:fc00::653) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar 2026 14:27:31 +0000 Received: from SA2PEPF00001504.namprd04.prod.outlook.com (2603:10b6:805:b6:cafe::9d) by SN6PR01CA0019.outlook.office365.com (2603:10b6:805:b6::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Wed, 11 Mar 2026 14:27:32 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:27:29 +0000 Received: from xcbagarciav01.xilinx.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; Wed, 11 Mar 2026 09:27:28 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 74fe7e07-1d56-11f1-b164-2bf370ae4941 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OiALSE0opl9WwFMCqLVbZ60EUexnCAn5tuj40GE5X8HRXr6GZZGrAeUsC2ZxO7SzMpBSKlifnIEfRJyStqPK+Rp4o/yEzO2VCkbt2tGTQ7x/EdLRYZCS6HDXw79pzrAm2sQyRSD7C6802CgUkSULutmKqKJ8Y0ScK2Odl6gSGGBRy8QWzQ8dYFYf+SUbZp55MVmaZM4qBQCSZwgdDJfWK606prD8xEaeZceYWJ3DomupoF/qQX29+gI/VR8oBPYYoAhrAcWrSZ2zBXHQjDvYw13XYp/wnytwp5BqCgzKHcWjV5GuNoVOS/jNP5AZuZydWmPtzcvgbXPUBLXgBFD3sg== 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=8W73DiBPopGYeUkDwKpXuXzVBpLkZfDD8f6yj9F+Ki0=; b=YNzBCB+xO7pgSKRjk1z503yrLrsL4FtoMK32v0opB2M9xLGMgDf/CVG3Mbl5eQgntlTu0EOS1FCwzSre5d6D6yyJNuijWKagUUuDvfvAtgSZRCiHlZtNvlqgrquK7RRHVY0NhPF4E5iEvyHT75Vb5Ti8VFJFnh/PdLI3i3vNSMmeQOpfl04aCq6DP433Hevx8+49OdZbsYLov038nC02iadfyJ5g+gfYFfmUe7CnZycErk+4l2zJyISdqZGX3APGCKtmmNM9lIW/fI/ZuM9CaV9PzMKfj4BDRfrLX9kj9P3LS+hZg6TFuE5M818vNryMmjigXpjHZtqnSNAg6xNJyw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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=8W73DiBPopGYeUkDwKpXuXzVBpLkZfDD8f6yj9F+Ki0=; b=V0tLMG77XvG4cLMqcCqwOyTasCm+BiBK8JxbkXAXAeHan8sKywOCdDblmIx2fRSw6Pdmu/gHJVcqiZ8oOxGkKoQE0ZeZTM4TF1tvBDSUh8edGY5R5AzHROAqOBJliOwMO9Xw0jSmXnHpLKD1BZtoHaqKKN6hO1PWUAnyxYaILio= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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 From: Alejandro Vallejo To: CC: Alejandro Vallejo , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Jason Andryuk , Teddy Astie Subject: [PATCH v4 4/4] x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems Date: Wed, 11 Mar 2026 15:27:07 +0100 Message-ID: <20260311142711.16754-5-alejandro.garciavallejo@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260311142711.16754-1-alejandro.garciavallejo@amd.com> References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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: SA2PEPF00001504:EE_|DS5PPF7671D5CC0:EE_ X-MS-Office365-Filtering-Correlation-Id: 705db63f-e539-4104-2cfb-08de7f7a53a1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|36860700016|1800799024|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: 1DhZdn/myvZJVnlG1+LCDn0arq1AGYBDMwlnilVEqnuWhfzGwmZA7DheTQ+HkEPAJb1FDCcRUHWMv42qAhDcY8K4PvScGv7qA+CV/ONP3Y7BOu8zC0dJMGRSxZb0O8uO+TSHyKypiPr/aw+SL+jVQybGCefF1nKyuj2vmThBhSv3tjizt2yXXSwYA0BUcd7Yx1va0huNumqOkxdvEqbeCh5rAfC57W7NBXYgcimbtuiiGJka2eRD+lHCkZ43ddgmgCZtWKpuo5KcBuOV4BY9qGn+7JWuD2BoQBbIJCiSwOpKwuZ0L/c+T42AF7CGPwsWaWXvDHcdPCBoaWLj0AzfNQyIUezRMa0YrQSjkl0WbugKMlMieDvGxRhtNdrK73dqKSHDl/ljJIBg3uOzc6Q+MmsQLx4QfY3TyA3b/BhAqG4CfFbyBFOTVSbQ4ob+4PrYnIZIHufu0YdAxbRXZ5mWiCoTcnnR8LdCY2NgT48w2Y/M35JAGGkegoi7NWkzgSJ+Bfb3GoKdIxY/VaQiwxkjLrSI9uHWgJBJ1EtJG4IYfxMLUgqXR0iondjKRkCuVHYaCxEWO2Ay8ghjy0NV4NXTJvBW2BgZGgPuiJ71a9MakQ9ZC8DYgeZ9hsO4H6FeXX57xYm8aOO2UvzEhYLyZNck/tMaepRtaqYYs+ppuYTdJRJXR1VYWAiJylrv5f7kiJybDOsUXSB7TsfD/pXVRu1Fkm7O8xae4jNBJ5XspuYxJT6DxmW7E2JiJK0KDSqLpRDf 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)(82310400026)(36860700016)(1800799024)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jZ9XR+zdEwk3k3pcXYcCJOV17NbUvV6CKbq0McyhOSza8g673J4kbhtnTlBB/MVxtRQFWRgFqYvh6mRWMiSnl7N7f93xCpNRbldX1EftDIzGgmYf6fOJzBuP4CUJ/4fFZdiaOYViOjoTTIzPH4A/pL6MWIawABcBdUE41h4h6/OJDZQnSkYF5i9esBwxt4vm2vhpJ3a1m5xmbknRN4RwbvsFuaobDsVoTNCQkOx85XQTOxqwK/6lI3wa3o9+YSRrX8YLJZNDQ+8bBEZ0akXXKVPtivYYRR9SbaMjDx1FRdmLkNY2j6YMROFhfYbRnQVlD6H9445PBBDMVbK1IsLSTy7hiUcnHvJ7qXUCxeWvRggeceUS2GfyWWy8y19lN/eFjxyjBqb2xg0FoXGJQREUJdxMVwpDsRSb8Yf1BKQT3G2kveebhNQWZVXS/de8n7Zz X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:27:29.8343 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 705db63f-e539-4104-2cfb-08de7f7a53a1 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: SA2PEPF00001504.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF7671D5CC0 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1773239287111158500 Content-Type: text/plain; charset="utf-8" With cross-vendor support gone, it's no longer needed. AMD CPUs ignore the top 32 bits of the SYSENTER/SYSEXIT MSRs, which is not how this emulation worked due to the need for cross-vendor support. Any AMD VMs storing state in the top 32bits of the SEP MSRs will lose it. It's very unlikely to affect any production VM because having 64bit width just isn't how real AMD CPUs behave. Signed-off-by: Alejandro Vallejo Reviewed-by: Teddy Astie Acked-by: Jan Beulich --- v4: * Sorted assignments to the vmcb struct by dst address. --- xen/arch/x86/hvm/svm/svm.c | 42 +++++++++++------------- xen/arch/x86/hvm/svm/vmcb.c | 3 ++ xen/arch/x86/include/asm/hvm/svm-types.h | 10 ------ 3 files changed, 22 insertions(+), 33 deletions(-) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 20591c4a44f..076d57e4847 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -401,10 +401,6 @@ static int svm_vmcb_save(struct vcpu *v, struct hvm_hw= _cpu *c) { struct vmcb_struct *vmcb =3D v->arch.hvm.svm.vmcb; =20 - c->sysenter_cs =3D v->arch.hvm.svm.guest_sysenter_cs; - c->sysenter_esp =3D v->arch.hvm.svm.guest_sysenter_esp; - c->sysenter_eip =3D v->arch.hvm.svm.guest_sysenter_eip; - if ( vmcb->event_inj.v && hvm_event_needs_reinjection(vmcb->event_inj.type, vmcb->event_inj.vector) ) @@ -468,11 +464,6 @@ static int svm_vmcb_restore(struct vcpu *v, struct hvm= _hw_cpu *c) svm_update_guest_cr(v, 0, 0); svm_update_guest_cr(v, 4, 0); =20 - /* Load sysenter MSRs into both VMCB save area and VCPU fields. */ - vmcb->sysenter_cs =3D v->arch.hvm.svm.guest_sysenter_cs =3D c->sysente= r_cs; - vmcb->sysenter_esp =3D v->arch.hvm.svm.guest_sysenter_esp =3D c->sysen= ter_esp; - vmcb->sysenter_eip =3D v->arch.hvm.svm.guest_sysenter_eip =3D c->sysen= ter_eip; - if ( paging_mode_hap(v->domain) ) { vmcb_set_np(vmcb, true); @@ -501,6 +492,9 @@ static void svm_save_cpu_state(struct vcpu *v, struct h= vm_hw_cpu *data) { struct vmcb_struct *vmcb =3D v->arch.hvm.svm.vmcb; =20 + data->sysenter_cs =3D vmcb->sysenter_cs; + data->sysenter_esp =3D vmcb->sysenter_esp; + data->sysenter_eip =3D vmcb->sysenter_eip; data->shadow_gs =3D vmcb->kerngsbase; data->msr_lstar =3D vmcb->lstar; data->msr_star =3D vmcb->star; @@ -512,11 +506,14 @@ static void svm_load_cpu_state(struct vcpu *v, struct= hvm_hw_cpu *data) { struct vmcb_struct *vmcb =3D v->arch.hvm.svm.vmcb; =20 - vmcb->kerngsbase =3D data->shadow_gs; - vmcb->lstar =3D data->msr_lstar; - vmcb->star =3D data->msr_star; - vmcb->cstar =3D data->msr_cstar; - vmcb->sfmask =3D data->msr_syscall_mask; + vmcb->lstar =3D data->msr_lstar; + vmcb->star =3D data->msr_star; + vmcb->cstar =3D data->msr_cstar; + vmcb->sfmask =3D data->msr_syscall_mask; + vmcb->kerngsbase =3D data->shadow_gs; + vmcb->sysenter_cs =3D data->sysenter_cs; + vmcb->sysenter_esp =3D data->sysenter_esp; + vmcb->sysenter_eip =3D data->sysenter_eip; v->arch.hvm.guest_efer =3D data->msr_efer; svm_update_guest_efer(v); } @@ -1734,12 +1731,9 @@ static int cf_check svm_msr_read_intercept( =20 switch ( msr ) { - /* - * Sync not needed while the cross-vendor logic is in unilateral e= ffect. case MSR_IA32_SYSENTER_CS: case MSR_IA32_SYSENTER_ESP: case MSR_IA32_SYSENTER_EIP: - */ case MSR_STAR: case MSR_LSTAR: case MSR_CSTAR: @@ -1754,13 +1748,15 @@ static int cf_check svm_msr_read_intercept( switch ( msr ) { case MSR_IA32_SYSENTER_CS: - *msr_content =3D v->arch.hvm.svm.guest_sysenter_cs; + *msr_content =3D vmcb->sysenter_cs; break; + case MSR_IA32_SYSENTER_ESP: - *msr_content =3D v->arch.hvm.svm.guest_sysenter_esp; + *msr_content =3D vmcb->sysenter_esp; break; + case MSR_IA32_SYSENTER_EIP: - *msr_content =3D v->arch.hvm.svm.guest_sysenter_eip; + *msr_content =3D vmcb->sysenter_eip; break; =20 case MSR_STAR: @@ -1954,11 +1950,11 @@ static int cf_check svm_msr_write_intercept( switch ( msr ) { case MSR_IA32_SYSENTER_ESP: - vmcb->sysenter_esp =3D v->arch.hvm.svm.guest_sysenter_esp =3D = msr_content; + vmcb->sysenter_esp =3D msr_content; break; =20 case MSR_IA32_SYSENTER_EIP: - vmcb->sysenter_eip =3D v->arch.hvm.svm.guest_sysenter_eip =3D = msr_content; + vmcb->sysenter_eip =3D msr_content; break; =20 case MSR_LSTAR: @@ -1984,7 +1980,7 @@ static int cf_check svm_msr_write_intercept( break; =20 case MSR_IA32_SYSENTER_CS: - vmcb->sysenter_cs =3D v->arch.hvm.svm.guest_sysenter_cs =3D msr_co= ntent; + vmcb->sysenter_cs =3D msr_content; break; =20 case MSR_STAR: diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c index e583ef8548c..76fcaf15c2b 100644 --- a/xen/arch/x86/hvm/svm/vmcb.c +++ b/xen/arch/x86/hvm/svm/vmcb.c @@ -97,6 +97,9 @@ static int construct_vmcb(struct vcpu *v) svm_disable_intercept_for_msr(v, MSR_LSTAR); svm_disable_intercept_for_msr(v, MSR_STAR); svm_disable_intercept_for_msr(v, MSR_SYSCALL_MASK); + svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_CS); + svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_EIP); + svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_ESP); =20 vmcb->_msrpm_base_pa =3D virt_to_maddr(svm->msrpm); vmcb->_iopm_base_pa =3D __pa(v->domain->arch.hvm.io_bitmap); diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/includ= e/asm/hvm/svm-types.h index 051b235d8f6..aaee91b4b61 100644 --- a/xen/arch/x86/include/asm/hvm/svm-types.h +++ b/xen/arch/x86/include/asm/hvm/svm-types.h @@ -27,16 +27,6 @@ struct svm_vcpu { =20 /* VMCB has a cached instruction from #PF/#NPF Decode Assist? */ uint8_t cached_insn_len; /* Zero if no cached instruction. */ - - /* - * Upper four bytes are undefined in the VMCB, therefore we can't use = the - * fields in the VMCB. Write a 64bit value and then read a 64bit value= is - * fine unless there's a VMRUN/VMEXIT in between which clears the upper - * four bytes. - */ - uint64_t guest_sysenter_cs; - uint64_t guest_sysenter_esp; - uint64_t guest_sysenter_eip; }; =20 struct nestedsvm { --=20 2.43.0