From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11022092.outbound.protection.outlook.com [52.101.66.92]) by lore.virtuozzo.com (Postfix) with ESMTPS id 8B0638017D for ; Thu, 29 Oct 2026 11:34:47 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZLhE5ZTjxSJ3LlMdnobyj3hZVWYkCSbB1yhIWx8ILKMROd2okOrCopBBeITVZJD0u4lSMZ6dZajKX3UCU7GYhRiI2trwFYOXLsd0fAWvCEY81dbBItzpByXYX7eBz6q7ICmyGW3RJFaq+WmcDdml375+dRflC2WkS0QQoSXhhggo5yHkONJmfXcbJHeKPr0Iod89dnl1tS/PCObc5tiJJqw2niLo6maFJJXKw3sODSYwS15f8tZQBQj1JFFWuFCEiLZ/xm37IRHy/5Z4SnaVoaF0a3W/a+vEq7LrJayBPrKCnNimuLZDVdUJimHxOehVOY97LqwuYazmsWmR/e/1qA== 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=3B6OYnOwjC8hAz9HwVay/TNQbaCKD2VWoapLq1V3R2A=; b=hFt8cZaFFQcCOK9Dx9/79Fg5edxGwGf3vBZHt0fLsScgKcGR+B2zx7xKbyhV9dWAFA6RUdzTxyQce4+jyx09/iUt1zKDfcr3KHMOCapEJItjLThkvCVVSTFKIHRb7VUvRD0b3YmH1z78Gev3d3i9/ECLm0nIXdmTN5xu/S7TebTvewLW4h7WdkVDniADVOBYYu9pcNnnMpG5+Zvt7zzPtciPJTmHccUj73LyH9nfVsNg7Rvj3YnCV+hscRegHwQYtTpLvvcOdk5lIXMCZ0CT6fwQIjZkK0cCMsOLpKXgi2tuVQ+r3c87rmCe81BD9MYPQ88V74K6n4f4N5IbO9gDyw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 2a00:1450:4864:20::32c) 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=3B6OYnOwjC8hAz9HwVay/TNQbaCKD2VWoapLq1V3R2A=; b=QvmVRuyYxR29p9o8AmTVLXIKFxC5QkmTekvdI+MSWSyXFLvITXIBKKermXPUXh2r5EnPEdixj1LOZ0JqOVE4M2fkQOdBjiwgIu+vhAyoXZrHV5MBCxC+2uY9mGQRiMoF620ajm2B+mnymAfWK0oSm2S465eyTj0lrV4g4ZVIiHk= Received: from PR3P189CA0063.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::8) by PA1PR08MB11641.eurprd08.prod.outlook.com (2603:10a6:102:554::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.8; Thu, 29 Oct 2026 11:34:44 +0000 Received: from MI3PEPF00008558.eurprd05.prod.outlook.com (2603:10a6:102:b4:cafe::85) by PR3P189CA0063.outlook.office365.com (2603:10a6:102:b4::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.546.22 via Frontend Transport; Thu, 29 Oct 2026 11:34:43 +0000 Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 2a00:1450:4864:20::32c) 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::32c as permitted sender) receiver=protection.outlook.com; client-ip=2a00:1450:4864:20::32c; helo=mail-wm1-x32c.google.com; pr=C Received: from mail-wm1-x32c.google.com (2a00:1450:4864:20::32c) by MI3PEPF00008558.mail.protection.outlook.com (2603:10a6:298:1::94) 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 11:34:43 +0000 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-4a5177d78c7so19918245e9.2 for ; Thu, 29 Oct 2026 04:34:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=google; t=1793273683; x=1793878483; 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=3B6OYnOwjC8hAz9HwVay/TNQbaCKD2VWoapLq1V3R2A=; b=WfjBmp+CQSxM0Vg6by/2TrQ/LVuYcZjIjkca64Mmgg74nLrzt+7LDViWReaNeCwNsO S+4ItxVPr2Vf9r7wrD7IMF6tRtsd/VEEpV3VEljeXXieY+o37CANip8/i0gn54qUjCLC +4yiNb8//OCtg7oV6muYZU2enE3OrWQhOKE3dhPSamrupr2tOCSeT8qEOklgzGT55K6o ZYP+7gWommxbUxNJNqGwfrqcavYPBG4WCmaO+HQNq+V9iH8Box7871rI5Fhvm8DRSmTV GEtB5GcTpPhe0E//8Rtx1oWM6ZMDnHCB5cT6f4O0oX5Wkroxqc4yo82kNrofDEelRqbr kfCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793273683; x=1793878483; 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=3B6OYnOwjC8hAz9HwVay/TNQbaCKD2VWoapLq1V3R2A=; b=VXQHpPvR9X50Z93oXhhZpb3tqqIpvADBkWTq22Eln+FoIMuTtSETrQr6vs4bMTym8i PSztTGKA22pHN8Pz1LJSfj09didGYKqI3DD/EVJeS7jlplialfM+6ag9ntGhxXME2h/q RffiOqZB3ru3jJWOevIiyXsJJnFdg2ezalxUkxfCTVX/HJ0Q7SFQkFgcQJOIS3gePLy1 jhiPpvjdhksVd1P3FPXqq5kugHu/25v+eqQyrB55hmW1sGycuX1MFJbFrQtHPCsl0wpI VqFXUdsZncNGOZicxs5H6HtVsG0gzEvRoLUd32+9KTsWugDXbT594MgS3hS8P2mvLFLq pJug== X-Forwarded-Encrypted: i=1; AKwUvBwgsfLsXdtMzZtgr7xXQvOB5t1yk8jYfDj3+rKDm9xFdxlnRwCCyWNIhLegaU5H5Pl8cDklWGWbMw==@virtuozzo.com X-Gm-Message-State: AFq9FYJreD1Mz0ZOuyo5MUS4X2Dt0fcudck/FwSANfNrGS4sNbjZ9UI2 Vyphw9HXNbFiTxkhYIDYVXzdyqhrJqVJDOQPV5XmiT3OZQSNGu20pFtdGo/+dndHmbf5/w== X-Gm-Gg: AYBFou2sgxgTKHz/yNFPPCkJV9znpcYpIZETaRc5sjVoYWELdjiUyvzEbA1cVevdx+1 n2Fr78RKmy4o9wRsow7B4H0v1ZFyH3/VlKS4QDDH7+TRRdLimOv2kSsK5X4AsbdwOzLeoKpWfxn r4RI8glv+hRtwLc5evxs4+YuDR332xTgOPy6onH98FTVanB02Xzlk5/byVdOqYZc4Gn/gDLz+tf ohc7rzHa3fgUyZD18nwyexk2cjmzwUZBVqVb5F+wvpmgNOYU61YqPe2PbWi9LJWptO+81kbvSOl iyM+CbfTsOahav8JhLTARtxj7oQX16823x0VcytBk1bAC5Am6OjnA9EbDcfeAmORiWEx8lpUYJo B5DTdyRt1UaPi1FBY1aAPWRu1PuGMOYSc4rITk4r4iCsgPNFPtYH0T1qavHuI1+3LVj8eyQUPVu Xgq/XcyXJoEAdYOAGXhw1lcYAzLpCloOwAAQg+R3TCKZO3lYP8ZeoUOvaksxf6P5EIYLKv1xZZZ RHJyz7Us2MF+WF8YLIyArHMHHLoYCFeiU3SenbTnoU00SpQr5SMTJhxDbkZGvtIF/dFzCbcJbN7 A7FnIqlvcNCkeJ2IAoZy0yq7hw== X-Received: by 2002:a05:600c:3b11:b0:4a3:5991:718 with SMTP id 5b1f17b1804b1-4a966c4178emr121901695e9.16.1793273683172; Thu, 29 Oct 2026 04:34:43 -0700 (PDT) Received: from athena.sw.ru ([2a06:5b06:b600:300:f4be:f111:4ee0:40d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48e3ebcb958sm33967211f8f.21.2026.10.29.04.34.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Oct 2026 04:34:42 -0700 (PDT) From: "Denis V. Lunev" To: andrey.zhadchenko@virtuozzo.com Cc: khorenko@virtuozzo.com, svt-core@virtuozzo.com, den@openvz.org Subject: [PATCH v2 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 12:34:33 +0100 Message-ID: <20261029113436.93521-4-den@openvz.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261029113436.93521-1-den@openvz.org> References: <20261029113436.93521-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: MI3PEPF00008558:EE_|PA1PR08MB11641:EE_ X-MS-Office365-Filtering-Correlation-Id: a1894079-cf8b-4c80-bfff-08df35b0a0ce 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|61400799027|43022699015|376014|48200799018|6059299003|9140799003|82310400026|261028144727099003|5063699009|56012099006|261009223027099003|261026140227099003|261021121427099003|261022105027099003|10067099003|55112099003|22082099003|18002099003|16102099003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zSMcdEf1287soOzMawrVyrVInc/8UDMs/YYA23H/VHIc0QXyGjhXIhIK/LEt?= =?us-ascii?Q?asfnap5hFtbh4RK3wZpevh1ziDst52aK/gce8kME4wnvN6v0vpcrqtHGL8/v?= =?us-ascii?Q?/B79H1wrL+UYuSPWxTUPO+hnOKCCvENka2jRCWu5ydIkymw7zdlIrrF7/mr1?= =?us-ascii?Q?aL7gMleMtbad/cAOR+hhLTI+O/OvD4CfEKIixJwKvCKskLxCBmU/eZD3BQxQ?= =?us-ascii?Q?UukarL7weuuBctftZwkU/mC/lgXIpP4rS863myf44sxiFQN6hxb58RFvDIgc?= =?us-ascii?Q?JtkPzSea2TYMi9oZgmptY72pyontGXHj4vgAdgpX+nP4sj//nLxXdUWyUagK?= =?us-ascii?Q?IjDigLkwkz7WGNzpZBAHb5LPRIq5H+ecIWDTxoi6JOgavvqsHr7lxbjk3UD3?= =?us-ascii?Q?YLfnbaPOu8XFzablFGiu/AubXyzIOz8d5wdO64MGjtlc0tgOvC0TnAKkL5Wv?= =?us-ascii?Q?6AgSUbrY/yFyxaYOIcOh2vXIWdP4Pi3z1/t3CkQky90RNyifjOYmew9e1DUB?= =?us-ascii?Q?AoJXjnYvDkH6xxCpaxHy0kWWlAwP3MU/uSvT/rgG4awolvmXDnn8YqtNNPB7?= =?us-ascii?Q?PGZqJ8sEiZGBHJ/M6CL/oWDeIUqv0s7U7hIAL+zsUW1OV8luMCD1yQpRrtLX?= =?us-ascii?Q?FOfQgPyt2G5co9OhNb6ArjqgTmSah8vn9mNV0KeDZpp9EITiOQ2N3f3nH2kh?= =?us-ascii?Q?/pmNo5XpcS2i5RAuFewU/hopy7zeGf6aHtwyxrUI9rd/R6DaD84N1lvS8JAt?= =?us-ascii?Q?aVkLL1t7L+LhhJ08ruVnXYkkTh28lGoyDqqg6ObW0M1vs6qySVTiS3bOtmMg?= =?us-ascii?Q?05ZZiuihywQ8tLAh07/ewsgT3g1sKrSr9EDslzT34rAjC0F2KxbNx+WY3QM/?= =?us-ascii?Q?hpIMD7/+dzix2oxvBetm83u/iMSJNn9eTp4aeDxeAoMhlguVxDWDawW1N2Fc?= =?us-ascii?Q?BwHhkXv8XRAMjHFmoZTGaK/23cVYjMfAZGy9/nLEY3huJV1qwUW64fm1Gl33?= =?us-ascii?Q?arqv71ss/X6ym2zGVlopNpGpwg=3D=3D?= X-Forefront-Antispam-Report: CIP:2a00:1450:4864:20::32c;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail-wm1-x32c.google.com;PTR:mail-wm1-x32c.google.com;CAT:NONE;SFS:(13230040)(61400799027)(43022699015)(376014)(48200799018)(6059299003)(9140799003)(82310400026)(261028144727099003)(5063699009)(56012099006)(261009223027099003)(261026140227099003)(261021121427099003)(261022105027099003)(10067099003)(55112099003)(22082099003)(18002099003)(16102099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: c/0AQFMuiyCbDPShLFECIwZtlLOvRDcANmQyl8qAo3b37vbWFfMvD4vCqXfBKPBIOWzb+lIn4SUU3jeSs6LnjVYIVtfcAk/0g5IeUy/YHLw9EJSvxU6FHpdfVV+FN3m+JdyOjZQ+wN1k0o1+/uz1GvpNH1t7z9LKAtKUYoAPFOjmDu6PGv8Z3NqEOGbE520db1a073Fi8fUr9RcODnBam4w71/N0jb3PZ+jMc1CkVp20fs9SjVCNX7Kne8ZEGncJMv8sYrYVgNwVhv5B4Arc2yALOQiz4NYx+juWjwNItEuZOE7uoWopivvZxVJqIIYkI4064j2K5VyafBItX2v/nz8uINDVhn7viIPJHN4+QFGmmhg07tF0KX8CyJ0dGvNRMB9TjASsdug7k/IEWLm4Ql6h60w7/Qa08reMRMoOSeW0s0pNnbyYSPq8BwAjOFZn 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 11:34:43.7772 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a1894079-cf8b-4c80-bfff-08df35b0a0ce X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: MI3PEPF00008558.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR08MB11641 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 host still provides amd-ibpb and one of amd-ibrs, amd-stibp and amd-ssbd. KVM then keeps MSR_IA32_SPEC_CTRL and MSR_IA32_PRED_CMD available to the guest through those bits (kernel commits 39485ed95d6b, 841c2be09fe4). 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..872c00fc983 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)) { + uint32_t ebx = kvm_arch_get_supported_cpuid(kvm_state, 0x80000008, + 0, R_EBX); + + if ((ebx & CPUID_8000_0008_EBX_IBPB) && + (ebx & (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