From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11022091.outbound.protection.outlook.com [52.101.66.91]) by lore.virtuozzo.com (Postfix) with ESMTPS id CFD9D80E7E for ; Thu, 29 Oct 2026 12:25:43 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K0xIUgJY7E6dPwshiljEgYdImr6jiuMKA/vpBVD8Bm0x8UWv1ypuLLRS38nMzCgHDZF2fgn5QRWlivZSyvXJpjCZCWLaPQ7ZmQKT4rcpHf9TKWSTFP5oH6y+OfDf+58EXHJNK/HbZoBcS1aCFlZyvoO/o8mcWnsyfDYZCoAGjWNizhHEKpYnjYjwe/PtkozwIw8hePpoC6fTGzu6BxU+REnykC1afKVbY4r3Vh+OX18lfRUfmxOZaridIpblNzuFd2Cwce/yn4/YwbojEAM72N8yvBFldiewPgShrsDx5SYyaWQIk8bEVwD3qNig6T6otRuPOt5KwacILjuW8H6Uqw== 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=lVQhRa+RKiREs4QjWgHWdv/LHw66IvELIpJHnQA2M+M=; b=UDvoZFOGOV9FFzNnfmGTca/BTzseI2sTx2rx3d+qZ3j+uBy4VWIwyTsZ0bz/lN4yTiNzGe487v0Sfmv3o5fULcMvysXe2t5+d3hHXQarnonI28P72F4WR1zzZ3FiGxujb8O/KEGDEGYhIuE4KxzNzC3Es7DSnGhgfyLxqGDBxD3Zm73SnIN1c3aMzo6p+sp83vF80nSCeAqZq0JijdBHDKsabCCwIon50oFkStfXlCtuCcT83jLdGtU8rHqbBVWBnTlXKfmGSxtlhkp+cD6WDvY4dvTKBxVjs10Qn0ed7UfrJQhW2K+tCC0wHyHDRDSixf5cZjwEhsV35DiM1uYNAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 2a00:1450:4864:20::329) smtp.rcpttodomain=virtuozzo.com smtp.mailfrom=openvz.org; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=openvz.org; dkim=pass (signature was verified) header.d=openvz.org; arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.onmicrosoft.com; s=selector2-virtuozzo-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lVQhRa+RKiREs4QjWgHWdv/LHw66IvELIpJHnQA2M+M=; b=oF9zBv40mghXYtTg1WgQBXov5G8OFO3UxENIPhFAfBnXmOAaBPynzPd93aV802zw5/TCjL9PijOfp6aE5K4FD05kg7hJxiDvhNWm4SoDS9khBtyAwIpQ9ABFrRjhidtIXA1Fgf2ppg2tHQgvtBL0HP4c43HKTKZnia6YeZTvvMo= Received: from PAYP264CA0017.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:11e::22) by GV1PR08MB10692.eurprd08.prod.outlook.com (2603:10a6:150:160::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.22; Thu, 29 Oct 2026 12:25:35 +0000 Received: from MI3PEPF00008554.eurprd05.prod.outlook.com (2603:10a6:102:11e:cafe::78) by PAYP264CA0017.outlook.office365.com (2603:10a6:102:11e::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.569.8 via Frontend Transport; Thu, 29 Oct 2026 12:25:34 +0000 Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 2a00:1450:4864:20::329) smtp.mailfrom=openvz.org; dkim=pass (signature was verified) header.d=openvz.org;dmarc=pass action=none header.from=openvz.org; Received-SPF: Pass (protection.outlook.com: domain of openvz.org designates 2a00:1450:4864:20::329 as permitted sender) receiver=protection.outlook.com; client-ip=2a00:1450:4864:20::329; helo=mail-wm1-x329.google.com; pr=C Received: from mail-wm1-x329.google.com (2a00:1450:4864:20::329) by MI3PEPF00008554.mail.protection.outlook.com (2603:10a6:298:1::88) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.569.4 via Frontend Transport; Thu, 29 Oct 2026 12:25:34 +0000 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-4a1fbd52ab6so16309025e9.0 for ; Thu, 29 Oct 2026 05:25:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=google; t=1793276734; x=1793881534; darn=virtuozzo.com; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=lVQhRa+RKiREs4QjWgHWdv/LHw66IvELIpJHnQA2M+M=; b=lRP6rmiC+xn1pwtNcIG7ofa8LaZCGwT3RXEY1/UOQHwCws8i+9mx1kYe7bbpkgM4ll p1SyYRTDa3A2cwvXJ/Ma3sO0+vZJcLouNGNQDPGtFYnS8Mpn8nZi3Wq9X6lbd2yVTUkE K211SQJpkJK49ze2vPtqITUc6L//46Nl8XlrpllfwggtiLZZkWn/TOyJmuPI/WKsIQ5u fI/dZ7NB6XTSQ/Anjtr/NZomIYCu0WMNucwV4PqwCJ9Hm32k7ykSP0PQpmXqML8dAqvN aBAiv7Ch+hohGC9hzGvAWEFAPfEnaTsNK8fshVhMKYFtQlRDdV1/1efpjqISwiuotCqg E1OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793276734; x=1793881534; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=lVQhRa+RKiREs4QjWgHWdv/LHw66IvELIpJHnQA2M+M=; b=uPP0uWzki2gk5BDvjCAPgWHmDUYOuYx6XxkYH03hqsDmbDBEqKO8PkeOb3LwFVu9m1 RcEmXS5x2Zu7M8OTYW+Cn2LpcaQU/fWYgJFknniC6PX8dW5qCbIgGJXyQpb2/ASlfDJL axaHDnffMYBUamN/yoagwSbtGnb+CKvVrAq7cbbT3RgIV5EwI0mh5+kOj4Tsp4zTQQsp z5iWfMq82TdXGAqXjLEkj+oS7MpdGC4jRENh0BTDtBHpt3aD7hvrbfb2xI6Oe6zrlnAi V4LiBIIx3NICWoz4w++lSD9HzEMebt+aEdXYtdv/wF2lx6tRk3F2yD87T0Gd2CuJX/Om uaXA== X-Gm-Message-State: AFq9FYIHiiwhWH4ofijaH3iQsEdCYyAPyUMtOUP7Yp7AL5p3Emaoi2bL XHd/kTFdPvuGDkJRLTELtt+IYTJmh6mE0SQlKPtf4bkyj7Zj0DyEWtjvKd11GE4IUnjSd4z9wzV hMBxK3UM= X-Gm-Gg: AYBFou1MQqGsHHR/+MG7qxx1cCKxy4YuLJQ2mER6F7o2RHr84WdQmYXmyOIe2y6LWuI GcJn3hoQx+472Wa5cZRnDu+vrqPMvLn5AvH1DnS8ZwzKOtWVVL8HVVj9Dflm4lWyssDKOsb86+n gEzmBN3Pi/akDsgQBHb6C4yAuxBuxsGDZTUXeQ290dlwMf7ha5qwdKTu0A+yF2n233pp8sY2m9T vkwgoSMXS+4hpaRto9HvdVGnxXSwkf1cqz1vrx1DWrWkhkngEMR9wU+ZhGtOIz/i32XKMo1aEuQ 02aF3e/2BQQ2u5WFoBSoyPBUYHCvV6yt951Iyqk6kPXumEx7NvnS8vr5qayxCV2Nq9tFk6w49CG VXTm2abQ230Ca1Gqcu8/t1DM+cEEwe78uvdmWpAteXpX5tx458331MvUM1TTzdgvaGvSR35UBua HX0BmIjU5mMezJ+F9xSUJSIZY49osbbEd252c+jOu3Xf+MRpWXPgyFVl2vYf+sW8eCrmIQGdiiH CdKp0MPGzYdOvlvO3Rr0E7TsF+AEvG0/jGbYQiB7NU1q9ctXdfaEtJSMuVYJi05MvoSDwqu/nDU Jd22qCinuoKUvzXRpaNdI+oTOCcdQxuM4JdXVKSPzJaVQv8= X-Received: by 2002:a05:600c:c117:b0:4a2:cbe:beac with SMTP id 5b1f17b1804b1-4a9672f814emr91615665e9.23.1793276733766; Thu, 29 Oct 2026 05:25:33 -0700 (PDT) Received: from athena.sw.ru ([2a06:5b06:b600:300:f4be:f111:4ee0:40d3]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4aa80285b88sm62423205e9.14.2026.10.29.05.25.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Oct 2026 05:25:33 -0700 (PDT) From: "Denis V. Lunev" To: andrey.zhadchenko@virtuozzo.com Cc: svt-core@virtuozzo.com, den@openvz.org Subject: [PATCH v3 hci-8.0/hci-8.1 3/6] i386: keep spec-ctrl for AMD guests on vz machine types up to vz9.2.0 #VSTOR-151770 Date: Thu, 29 Oct 2026 13:25:24 +0100 Message-ID: <20261029122527.365104-4-den@openvz.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261029122527.365104-1-den@openvz.org> References: <20261029122527.365104-1-den@openvz.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MI3PEPF00008554:EE_|GV1PR08MB10692:EE_ X-MS-Office365-Filtering-Correlation-Id: ad969967-59d8-4f37-9774-08df35b7bb1c X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 0 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|43022699015|376014|6059299003|48200799018|61400799027|9140799003|82310400026|261026140227099003|5063699009|56012099006|10067099003|261009223027099003|261028144727099003|261022105027099003|261021121427099003|55112099003|16102099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?XL3VsBEBIZAOykLKDXp4CnYolTfjkWtqkcThyE46I8JrCv+0Y/xqHrYBZCjC?= =?us-ascii?Q?0VoznvGVFEh5UG8eD+09Wroo4xhrX6QKXkiHny8R/3AoeGBRGAHxl17jeVaM?= =?us-ascii?Q?HfyjbaYxjlFiuVVIRT9Z0lvc2KcAg6uM7gyaWkDP7N+QuQhP1kTzH4lu4iMc?= =?us-ascii?Q?wXWHev4Ixcq0SDg5skj6JoqBuxqK2gxT4kVNNN1vLUS3Upa6sCYOTbMwR19l?= =?us-ascii?Q?hOUTkxQ1pu7VC88EOITlxNAX9ViEQC5UvtWhK+t/qWFpkX/9KIbUYeFvRjkO?= =?us-ascii?Q?WozTAXNr8QxOK7vdqpJ6fCJuu2kw2H/d54rZmXAMhIJIlOfNc/Ud5lV4e7tY?= =?us-ascii?Q?DJNZQDQgty5Kg5xusH4L4/XE9eSOVnfDOt/U+3UsN06EwM/Q19m4c24Vcdgi?= =?us-ascii?Q?PasbQvv3j0rtan9Fr1FVpI/Uj3WROrFFWrbpLoJ5c2oJQa8oeOSwrVr7I3HX?= =?us-ascii?Q?urXufifvuBFTHeY/cc549P+BwKjxMl4nauqcQPWJ9uppTRLpO/keOKsgOoTg?= =?us-ascii?Q?WhasN2PUS3tE+cefM1LzEYJgQ1/dbTgXtvqBNErDp73/egYBQJw7zHEBc1ty?= =?us-ascii?Q?1DsThRe8zBcagau7QJ2AYeCaqYWMvQc7FGsVAZnSNL9p59Bz+Gg+eRqtqrQV?= =?us-ascii?Q?TZQ7tlwB5X0jTkmk+51tRz65vUb07YmE8hLIRhSD1wU0az9Ozz/9Frtda51k?= =?us-ascii?Q?+e1jsAdQGAnJB3+Ys5Alyycj1fD39+jJskxhy6BrY/aBvZtAQAyJWOUHdzX0?= =?us-ascii?Q?282PQ/GbPu4utzsk0L9iQrSxwKKVKxwM6vM0d49Jh50idQTffOczAfTFSxlN?= =?us-ascii?Q?MLJlpOkAOgVJii5/VluD+VkP7ZZKEdHbWvhMmM1Oo8puZmWOJG3Kk+DfcrFh?= =?us-ascii?Q?2dRkaiRV98V6hnwMz0NIcCRrdSc+0CsKEIFhCav4m6/JmNub/x7Q/Nm6TdEl?= =?us-ascii?Q?Gj5nbB5P49LbA+W9fJarEIGmNDmlZqWdbVOIhGeF9n5MX96vlYc9owgNVT7V?= =?us-ascii?Q?BSr8vmWKMJj5fjWVwiqA7tRxAg=3D=3D?= X-Forefront-Antispam-Report: CIP:2a00:1450:4864:20::329;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail-wm1-x329.google.com;PTR:mail-wm1-x329.google.com;CAT:NONE;SFS:(13230040)(43022699015)(376014)(6059299003)(48200799018)(61400799027)(9140799003)(82310400026)(261026140227099003)(5063699009)(56012099006)(10067099003)(261009223027099003)(261028144727099003)(261022105027099003)(261021121427099003)(55112099003)(16102099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 32D3YZfR8fOauKXFAK1cRtx70dP6S7TAWVAI0PSHAlkvZ/eRrsUjULQ/825XURbfHmE/LzJubPwKmugqyvRkVaQAa3rcTxdgqRc8/kqKnlEaiWfYHzCihmkoBugKaCcFiOuYnub6X57mB4OEC6NweLCeiGxIxo8jjcLxkcEqZDM3Thm89UvdbvtsDN8eEx7gRREjsag9LlgqbLz2+J9it+HTHvZGDyrlpeeK61+3wEEhzea+TB4wQj2SfMOlgkGzqFxvUz+WK3eh3i6QCj5ljFrrEFQbDW/OyiSwtV5AZJve8ai4he+i+neAqqKPYx3tcb+SjlS8qAoNYf3ETNQLkjHBxM+CHRqhQydFg+q0LJkkifAAufoM4OiHWQPscGrvT/lOJ8XICx8EviEGzhumBymInhx+bkyzZdbyRTBDWiP0Fq5KJpQMXNqzvRDerxhM X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2026 12:25:34.3950 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ad969967-59d8-4f37-9774-08df35b7bb1c X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: MI3PEPF00008554.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10692 List-Id: From: Denis V. Lunev Since kernel commit de572491a975 ("KVM: x86: AMD's IBPB is not equivalent to Intel's IBPB") KVM offers spec-ctrl on AMD hosts only with IBPB_RET, which Zen 1-3 lack. A guest started under an older kernel has spec-ctrl in its CPUID, and QEMU filters it on the new host, so migration, restore and snapshot revert fail (VSTOR-151770). Add x-spec-ctrl-compat and turn it on in pc_vz_9_2_compat: an AMD guest keeps a requested spec-ctrl when the guest and the host both have amd-ibpb and one of amd-ibrs, amd-stibp and amd-ssbd. Since kernel commit e592ec657d84 KVM grants a guest only the CPUID bits it supports itself, so the kept spec-ctrl gives the guest no MSR on such a host. MSR_IA32_PRED_CMD stays available through amd-ibpb and MSR_IA32_SPEC_CTRL through the other three (kernel commit 39485ed95d6b). Without them every access to MSR_IA32_SPEC_CTRL raises #GP, so such a guest still fails to start or migrate, as it did with the libvirt relaxation this replaces. Signed-off-by: Denis V. Lunev --- hw/i386/pc.c | 1 + target/i386/cpu.c | 14 ++++++++++++++ target/i386/cpu.h | 1 + 3 files changed, 16 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 25b17866103..95ff2e7860e 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -550,6 +550,7 @@ const size_t pc_vz_compat_len = G_N_ELEMENTS(pc_vz_compat); GlobalProperty pc_vz_9_2_compat[] = { { TYPE_X86_CPU, "x-tsx-compat", "on" }, + { TYPE_X86_CPU, "x-spec-ctrl-compat", "on" }, }; const size_t pc_vz_9_2_compat_len = G_N_ELEMENTS(pc_vz_9_2_compat); diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 5ff5644dee9..27fefaeaf71 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -9116,6 +9116,19 @@ static uint64_t x86_cpu_compat_kept_features(X86CPU *cpu, FeatureWord w) kept = CPUID_7_0_EBX_HLE | CPUID_7_0_EBX_RTM; } break; + case FEAT_7_0_EDX: + if (cpu->spec_ctrl_compat && IS_AMD_CPU(env)) { + uint64_t msrs = env->features[FEAT_8000_0008_EBX] & + kvm_arch_get_supported_cpuid(kvm_state, 0x80000008, 0, R_EBX); + + if ((msrs & CPUID_8000_0008_EBX_IBPB) && + (msrs & (CPUID_8000_0008_EBX_IBRS | + CPUID_8000_0008_EBX_STIBP | + CPUID_8000_0008_EBX_AMD_SSBD))) { + kept = CPUID_7_0_EDX_SPEC_CTRL; + } + } + break; default: break; } @@ -10081,6 +10094,7 @@ static const Property x86_cpu_properties[] = { DEFINE_PROP_BOOL("x-pdcm-on-even-without-pmu", X86CPU, pdcm_on_even_without_pmu, false), DEFINE_PROP_BOOL("x-tsx-compat", X86CPU, tsx_compat, false), + DEFINE_PROP_BOOL("x-spec-ctrl-compat", X86CPU, spec_ctrl_compat, false), }; #ifndef CONFIG_USER_ONLY diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 85efd0b9fbe..740fb3aedc5 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -2337,6 +2337,7 @@ struct ArchCPU { * older node keeps its CPUID. */ bool tsx_compat; + bool spec_ctrl_compat; /* Number of physical address bits supported */ uint32_t phys_bits; -- 2.53.0