From nobody Tue Mar 3 05:10:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 177201042670056.596600308545476; Wed, 25 Feb 2026 01:07:06 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id AF236418E6; Wed, 25 Feb 2026 04:07:05 -0500 (EST) Received: from [172.19.199.9] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 9DECB41E58; Wed, 25 Feb 2026 04:03:44 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 7A4763FD0B; Wed, 25 Feb 2026 02:49:19 -0500 (EST) Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010070.outbound.protection.outlook.com [52.101.201.70]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id E40673FCB5 for ; Wed, 25 Feb 2026 02:49:18 -0500 (EST) Received: from SJ0PR03CA0127.namprd03.prod.outlook.com (2603:10b6:a03:33c::12) by DM4PR12MB6446.namprd12.prod.outlook.com (2603:10b6:8:be::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Wed, 25 Feb 2026 07:49:15 +0000 Received: from SJ5PEPF000001C8.namprd05.prod.outlook.com (2603:10b6:a03:33c:cafe::3f) by SJ0PR03CA0127.outlook.office365.com (2603:10b6:a03:33c::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Wed, 25 Feb 2026 07:49:05 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001C8.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.9632.12 via Frontend Transport; Wed, 25 Feb 2026 07:49:14 +0000 Received: from lenovog2.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; Wed, 25 Feb 2026 01:49:13 -0600 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_INVALID,DKIM_SIGNED,HELO_MISC_IP,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MGAOzHd6qJcx5PJeDKtn8a4LLv7isLpR02clysi0KHvzhn4/6b4rUwoH1gE9xzVEqkDV50/AoxUuOikADjuvOd38rNho4mpHrOY9ypx1UU3Q62uhaiYwJqN02KXKazZLKJ4D7BnDDeResasoVXyaTWFCd3kbfX0DvMZXtV+hAaCulesF5YQL7Zc7eyXlPIz8EEIXIiqRjDXLauduEoiAz6zy+W0ztQkpmQmDJQu8/ET2nMD6gU92TkP4NwH8VMI5oRr+hS5uMVkNwWsOZB/y2UFehb7IELR5Ax0rk2qCbdv03OhNSk/fqUdqYUqdprRostEohDmJ5sHnIe+q04e0pA== 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=ohq4NsyqgsZygfY9JlB6FPNRLV683+Thmmx9Ru6bOV0=; b=fqz5TN/nQKi2O+qnD6Vh//+XExkpXGRIjsIw8dU+Jc+9kvQiiSTjtam0O6AjhnEIfje773vyPYWCibPrHyXNvkAM5rXWgSNvf3bPj+sNGXkiuYbxRaE/Vbn9rjt2D6OYBCwk7mVHFsbSHaQ9/0NjPvXxRna7NzCa5K6kFAb4uAEFPEUBhm4/tSUS3cAWSZMsNBRZfrUm+GncmDrMpWUckaTUPYFJLk9POx6tbArtK0011lZm2OIiHTBSBCFqvrjhMu6fKAOg1NK9oIWBEHYtR8b703S1WYtC96C/jAGCAbupXgGq4lAmiH7Vgm3lS2ecp1w9C7zPL0WhOm9/5JLQ4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.libvirt.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=ohq4NsyqgsZygfY9JlB6FPNRLV683+Thmmx9Ru6bOV0=; b=v9xJbpYGKAVJ3alTCsU2Xgr47jo+3BZP/AhHHPGcxvqL85LIL6ZsjGyAiDKu3ttamuNDA19D8KgcigdNfQW4BmJLTL3Bv28TRIF51rz0MCY3VwA2HfXAQ9oc5krUuXVf6ubWphOOMzG/yfaz8oINkn92fOJvuPzgQotsWYJ6jHE= 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.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.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 To: Subject: [PATCH 3/4] conf: support >255 vcpu w/ amd-iommu xtsup Date: Wed, 25 Feb 2026 07:48:20 +0000 Message-ID: <20260225074821.654557-4-Xiaotian.Feng@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260225074821.654557-1-Xiaotian.Feng@amd.com> References: <20260225074821.654557-1-Xiaotian.Feng@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: SJ5PEPF000001C8:EE_|DM4PR12MB6446:EE_ X-MS-Office365-Filtering-Correlation-Id: 22eaadf8-a710-41ee-bb99-08de74425f3b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LIPFewV9IePmvtHWxOfjw1srTketJ5YDNKDk2VQ17fq5klA2yy1vEtGakiFL?= =?us-ascii?Q?GMDNrEyDvCju8FvHsBDDf1jLaHcVhOx1PJxp0QnjPGLNH/iPN98GQ0/1w1uC?= =?us-ascii?Q?szpKG8xHUXWP9fKdBBFyiEfIl6dSlywnVRF8jz5HLAQEUieHT6/vpU7VIIHf?= =?us-ascii?Q?Xmy1+NWqCREGPMc8UJCRkBsfIhM8u9/eqHrz74dpk+k4KJkv8C6vPfxnUuLn?= =?us-ascii?Q?PvEaou1N1P0medXCQb9Lk7wYKD3s4NdoCscnCSJTT8VTfumNzqfBXr7Bycrd?= =?us-ascii?Q?Xpn7EhupkF9x9T+36WT31SkQ+jwjOJbBFkgBnrTgdIqJBwRwnuZf47oUvzMy?= =?us-ascii?Q?cJF/sjiqDWm5RORmY7mS+hFEVKN955vpbha9bPWlOF3xnK+NPJ+P82kMZD7M?= =?us-ascii?Q?4OsQ42XDENruy81ENadejy0XTQ/NslSUnRYVfH4P6v+9EwkYZJiJjYpcmbcW?= =?us-ascii?Q?7BaMYqf/1agK6u8WIDw7SlEvc4QjZTWYz9evAM++9CEUgu0syWlNQ9N/9Hzq?= =?us-ascii?Q?YXLWlmj+3baq8LXvWOmActkjZTkW++Jfn33iL631HRyRoYHdHkA2hXPO00+t?= =?us-ascii?Q?l9mGpyu31i0B/atQj0FF+3oMdR59knXv7BlAKIpNe/spBaHQ5R3aMTG5MVw6?= =?us-ascii?Q?ULJ8VrEtmpbzB/kxn4E1yPl7sulJXxgVu1p/6nx+DkPftnZ98Fw1BNXvaR7f?= =?us-ascii?Q?fM7SaoCoRGwJsYj4Ar0daNP41PzBqc8iYPE7WA6hskbcI7nVNs9vAEbmtI+M?= =?us-ascii?Q?wns/ETV0WR/FeCVTtAtck9iFqUUFjIN41So6z2Bd1rsswKPFXp8FqgDeDWzg?= =?us-ascii?Q?LC2JsLTts5Vd9MXx+sSO0GP7MSWbw5FHJtbgkAzBxofeKevLNU4NYHQVrvvU?= =?us-ascii?Q?2nTPKn6MHzYwp1D+it3hYFx3qt3l56Up/vaXwT0Ss/8rn5CNqL676x3glLZU?= =?us-ascii?Q?lirwLAoWixm1GTVN8hrHVrVuEcGh7KybpRi02mAcHgtTWKY0FY7jQtegdbGw?= =?us-ascii?Q?l02F5rTn6Qa4/x7hEcjIraNJ9Jy1CLxRIO3gDsilwnlkPnIHiXSlYkwZxpsj?= =?us-ascii?Q?sBq7wC8IvmmvcyBBeukyiXOXk31bV0D9Yq0PO6jVIAXtjolWnkopCp5pmdfh?= =?us-ascii?Q?kiKfAwmwm14/xTPlkA2CY4S197JCoWw2a4yrZpU7pyG1HV/85FdjkDJhVMIe?= =?us-ascii?Q?I7EJNFI1Nyptzxjwml8QkpRk+G1RBAtPshhF/nx3mg3wuJT2z1WxJE3lXBMt?= =?us-ascii?Q?dqiLeWlbN+kfxalg51c++zAhoT/LQ/kNKLrxx+HUQeBrvHc9Mnvl0bQzEusI?= =?us-ascii?Q?by8Fz8rVBO3fDTD0+71JONhYy6MvHlj8j02le6WAV5XSpH04D/FFqscXvWz9?= =?us-ascii?Q?uKuYb9WlC6E6a1Ue8FJhyZ8s6FpIF2eX6wa5rDA9llaJ4ergu2V9SeeJQiKV?= =?us-ascii?Q?gtOPZqEExs2ZrgaVo8q4PiEnZRMsicDirMbj7YWJ8+xNc9JrcocMLfgAEvEy?= =?us-ascii?Q?vh9joysNjERhIXOs8KxAns2qsqubMReMnEsEOeRuSXahdxWisIHD4lKzKHf7?= =?us-ascii?Q?wvuPimEwjzG7O0Bkl0lRW7zSt31/qqHam9ZLOETTasi33+w2kpeQdGCG86T4?= =?us-ascii?Q?ku2ICxlK2ICmF6myBH1j29WlfpYYosILaaC5vUvSSyF1?= 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)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HUJV4Yi+8Aa3ilwRvwEVu2FtP54HBPVudYb0tp5fMi6VHDKN137RtYC6nNIez2/iD6VjfRqp69abXPV4Tay6VR/4ly+W3BLDg1XwIMqzz1VqUQRnDqWNR/E0RbDBIj/rn7B6YH2Zrw384mTOks0RlcMyjaAlNOEdEtlUq8envNFR8PCwITq2/pUI8sxJzgfgKKKdR4y27DRcrWrkDFDcD6QWY3JaQoicIH6IHNZB2VbJ2WrSjBsVol9HNqKEmoNXY5JqDjLmC37M+zUlfLW4rRlUhGIURX3PurYBzBNvo+/bGY3duTdYgsb+XLEv4Wgek130KJQIm56yS4IkQJ/BoPwvt18jgyW31/hzzkr78uJWkAOKnG7tdRMiyvTQzjjUTbkJb1O14v388B4u80hdLfP6mU3Z0qP+MGp9oecBSrotOxJ6s0L1lFfQxDpqBnSB X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 07:49:14.6259 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 22eaadf8-a710-41ee-bb99-08de74425f3b 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: SJ5PEPF000001C8.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6446 X-MailFrom: Xiaotian.Feng@amd.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation Message-ID-Hash: UGANRA3ADWN3WJUGERQZ2GQHCTZZASNM X-Message-ID-Hash: UGANRA3ADWN3WJUGERQZ2GQHCTZZASNM X-Mailman-Approved-At: Wed, 25 Feb 2026 09:03:31 +0000 CC: Xiaotian Feng , Xiaotian Feng , Ankit Soni X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Xiaotian Feng via Devel Reply-To: Xiaotian Feng X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1772010429646158500 Content-Type: text/plain; charset="utf-8" Rename QEMU_MAX_VCPUS_WITHOUT_EIM to QEMU_MAX_VCPUS_WITHOUT_X2APIC to clarify the limit is tied to APIC ID width. Validation now accepts either: - intel-iommu with eim=3D'on', or - amd-iommu with xtsup=3D'on' for guests with more than 255 vCPUs on x86/q35. Update error messages to mention x2APIC mode instead of extended interrupt mode. This reflects that AMD platforms can satisfy the same requirement via xtsup property on amd-iommu. Signed-off-by: Xiaotian Feng Reviewed-by: Ankit Soni Tested-by: Ankit Soni --- src/qemu/qemu_postparse.c | 4 ++-- src/qemu/qemu_validate.c | 11 ++++++----- src/qemu/qemu_validate.h | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_postparse.c b/src/qemu/qemu_postparse.c index 8940cb09b3..58bd70c741 100644 --- a/src/qemu/qemu_postparse.c +++ b/src/qemu/qemu_postparse.c @@ -797,7 +797,7 @@ static bool qemuDomainNeedsIOMMUWithEIM(const virDomainDef *def) { return ARCH_IS_X86(def->os.arch) && - virDomainDefGetVcpusMax(def) > QEMU_MAX_VCPUS_WITHOUT_EIM && + virDomainDefGetVcpusMax(def) > QEMU_MAX_VCPUS_WITHOUT_X2APIC && qemuDomainIsQ35(def); } =20 @@ -1204,7 +1204,7 @@ qemuDomainDefAddDefaultDevices(virQEMUDriver *driver, addImplicitSATA =3D true; addITCOWatchdog =3D true; =20 - if (virDomainDefGetVcpusMax(def) > QEMU_MAX_VCPUS_WITHOUT_EIM)= { + if (virDomainDefGetVcpusMax(def) > QEMU_MAX_VCPUS_WITHOUT_X2AP= IC) { addIOMMU =3D true; } } diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 0eb5d5ea3b..fb7b2a4882 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -920,17 +920,18 @@ qemuValidateDomainVCpuTopology(const virDomainDef *de= f, virQEMUCaps *qemuCaps) } =20 if (ARCH_IS_X86(def->os.arch) && - virDomainDefGetVcpusMax(def) > QEMU_MAX_VCPUS_WITHOUT_EIM) { + virDomainDefGetVcpusMax(def) > QEMU_MAX_VCPUS_WITHOUT_X2APIC) { if (!qemuDomainIsQ35(def)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("more than %1$d vCPUs are only supported on q= 35-based machine types"), - QEMU_MAX_VCPUS_WITHOUT_EIM); + QEMU_MAX_VCPUS_WITHOUT_X2APIC); return -1; } - if (!def->iommus || def->iommus[0]->eim !=3D VIR_TRISTATE_SWITCH_O= N) { + if (!def->iommus || (def->iommus[0]->eim !=3D VIR_TRISTATE_SWITCH_= ON && + def->iommus[0]->xtsup !=3D VIR_TRISTATE_SWITCH_ON)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("more than %1$d vCPUs require extended interr= upt mode enabled on the iommu device"), - QEMU_MAX_VCPUS_WITHOUT_EIM); + _("more than %1$d vCPUs require EIM or XTSup mo= de enabled on the iommu device"), + QEMU_MAX_VCPUS_WITHOUT_X2APIC); return -1; } } diff --git a/src/qemu/qemu_validate.h b/src/qemu/qemu_validate.h index 9315be73f5..27dc120c3a 100644 --- a/src/qemu/qemu_validate.h +++ b/src/qemu/qemu_validate.h @@ -22,7 +22,7 @@ =20 #include "qemu_capabilities.h" =20 -#define QEMU_MAX_VCPUS_WITHOUT_EIM 255 +#define QEMU_MAX_VCPUS_WITHOUT_X2APIC 255 =20 int qemuValidateDomainDef(const virDomainDef *def, --=20 2.34.1