From nobody Fri Jan 9 08:47:37 2026 Delivered-To: importer@patchew.org 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 (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; Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1766056344; cv=none; d=zohomail.com; s=zohoarc; b=fUXPV5qGKCI6ycIZwUwAsXIv/2eT5B+mTaO0TozyosZBo8TYycWg3R1yrC4rzIGpWtXwELCK5sgQ91u6YSrtkY8ZFFLhnej/Wthwcq9QgAEqEskwdrGpr8u6pCCgAEcrrBQccrUgOvGw7XjSOvrbMgUSmFCAFPcfhpn1T4PZ978= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766056344; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=IX4myoNSwXPpLTXW++vz6EgKGfe9/Aqt0iP3fwXLOvs=; b=HDU8clPZZIXNG/yq7vDAUuOEMXoEHCZ9uii4556kM1m3X2u8K3oUDJtbdbs7DzcLqJGob+kcHnidP8nSrs6NZg2CjF++As8IXlvCp4xtrnuOq1RnMR97IbfXXxOFzFpMOuGT03QkrDqXWYBhkDu8PQsoUiIf+3wRgbOD9rgT6dA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766056344342977.3935150123009; Thu, 18 Dec 2025 03:12:24 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 709DE418C8; Thu, 18 Dec 2025 06:12:20 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 1928A418F0; Thu, 18 Dec 2025 06:11:35 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 66F473F287; Thu, 18 Dec 2025 06:06:22 -0500 (EST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 2548E4186F for ; Thu, 18 Dec 2025 06:06:21 -0500 (EST) Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2025 03:05:15 -0800 Received: from spr-duan.bj.intel.com ([172.16.114.123]) by fmviesa005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2025 03:05:13 -0800 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1766055981; x=1797591981; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wh3LokLAuT7Fu2iP0P06AnAa2JLOXTCOZTlNeWu43E8=; b=Ff22SlyQeXa9b5pXQ+eP7yvE13V2JAlh9OyLOjzpPtgHDxF7HqfazLAZ /L+aSfm1QSq4zHSpvtNdGqCcED7WOR2ow34u8SDu7s/z8iGoL4HkadSxj Dq87tt0n0MQ6bmpc2tYbQgsmR541+doo6V7j/F1yyRfwVQiWUXGsIJe28 zmkI9ahOzP9ARt6tbbYwWAOfKx4JdFhfHXpEOEu6QH3gD26il/IUza8Zp pByIDExKHd9sTgaOGjA8sRP0O6B0BLnvvxaqM+X8KQjCsIjPC/epSHLLS NwwrQcPxxOhzXBEui3CWTsXtkt9/NJN/viK+O75wqTtN87ZnHXyjioS8o A==; X-CSE-ConnectionGUID: gkf/dA6jRjaBiK+EG3dfNA== X-CSE-MsgGUID: P41OmipVRuOJ+khPjRFOUA== X-IronPort-AV: E=McAfee;i="6800,10657,11645"; a="67885337" X-IronPort-AV: E=Sophos;i="6.21,158,1763452800"; d="scan'208";a="67885337" X-CSE-ConnectionGUID: Aax7eGHORRmkVlxWzZf3Eg== X-CSE-MsgGUID: J5jnJHpKSDu42A+5FEC1rQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,158,1763452800"; d="scan'208";a="202948711" From: Zhenzhong Duan To: devel@lists.libvirt.org Subject: [PATCH 3/3] qemu: Add command line support for scalable mode and first stage of virtual vtd Date: Thu, 18 Dec 2025 06:04:49 -0500 Message-ID: <20251218110449.53658-4-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251218110449.53658-1-zhenzhong.duan@intel.com> References: <20251218110449.53658-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: MRTPW2YXTNWLWUWB4U775Q4DMZOALVYO X-Message-ID-Hash: MRTPW2YXTNWLWUWB4U775Q4DMZOALVYO X-MailFrom: zhenzhong.duan@intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: nathanc@nvidia.com, clg@redhat.com, Zhenzhong Duan 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: X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1766056347758154100 Content-Type: text/plain; charset="utf-8" Add support for generating QEMU command line with 'x-scalable-mode=3Don,x-f= lts=3Don'. Signed-off-by: Zhenzhong Duan --- src/qemu/qemu_command.c | 2 ++ src/qemu/qemu_validate.c | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 99c310cf31..6cd07d6f53 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6338,6 +6338,8 @@ qemuBuildIOMMUCommandLine(virCommand *cmd, "T:device-iotlb", iommu->iotlb, "z:aw-bits", iommu->aw_bits, "T:dma-translation", iommu->dma_tran= slation, + "T:x-scalable-mode", iommu->scalable= _mode, + "T:x-flts", iommu->fsts, NULL) < 0) return -1; =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index da08fd17cd..c3739ac4b3 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5683,6 +5683,18 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMM= UDef *iommu, _("iommu: updating dma translation is not supported= with this QEMU binary")); return -1; } + if (iommu->scalable_mode !=3D VIR_TRISTATE_SWITCH_ABSENT && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_INTEL_IOMMU_SCALABLE_MODE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("iommu: x-scalable-mode is not supported with thi= s QEMU binary")); + return -1; + } + if (iommu->fsts !=3D VIR_TRISTATE_SWITCH_ABSENT && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_INTEL_IOMMU_FIRST_STAGE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("iommu: x-flts is not supported with this QEMU bi= nary")); + return -1; + } =20 return 0; } --=20 2.47.3