From nobody Thu Nov 12 15:08:38 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 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 [38.145.34.151]) by mx.zohomail.com with SMTPS id 17939085075531017.2503744951742; Thu, 5 Nov 2026 11:55:07 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 50A9641ADC; Thu, 5 Nov 2026 14:55:06 -0500 (EST) Received: from [172.19.199.19] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id BAB0541C64; Thu, 5 Nov 2026 14:52:16 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 2568E3F36B; Thu, 5 Nov 2026 14:52:00 -0500 (EST) Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010008.outbound.protection.outlook.com [52.101.46.8]) (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 199803F308 for ; Thu, 5 Nov 2026 14:51:59 -0500 (EST) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by CY5PR12MB6129.namprd12.prod.outlook.com (2603:10b6:930:27::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.592.10; Thu, 5 Nov 2026 19:51:51 +0000 Received: from DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720]) by DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720%3]) with mapi id 15.21.0592.007; Thu, 5 Nov 2026 19:51:51 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Iuh3d1mMLgaYGUZH2Pinh1/jyPMW8kX6P3I+bPfQGCeMnENPd2zoprF6ejEO6T33tfcM78miGI8Yjnwm0JpEAtux97Ozk0bSmznflFd6d1L3TnELOprhIP+31hJjT0MneorEMWpQ3tqsuU6ZRYH+gQFDKc3isQ2wbLA3zl5jRNPKQaRVJyf3nl8dBbZHVEXXJUi5oO9WDC2fDgXCj1/czq3Anx65BTv8OfTX8NbxA5Lv0a4IPy9Mfp+YLpxfUFNgyTL6Xboh1EHOtCnxozaP+0cuz57tBEdO7+IzAu/xAo38nqOtoEo0rg8uMMZ3Bt4DSWK8eDO5c/qHDngTZevaOQ== 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=2omcdJs6oNKzMf5gRpeFZBGonYRli0YBGPsLYphsues=; b=x7ozxk9V9JyTwF5TdI+B2odtOL3UjJKbYgSuAi7a1uxF4T41EpGwsV3sKVYSTBcF1mAsEmaZwPryOFQoRuu5ekHZZV9S0QlIWashGyJL0/MfrAeXDTdQ7yS71e7676ZbXXV/FzllorW7Sijvno1O7Jub3k66V1NOKpGyY5AN6Z1XCiGgrCKhD15s4XUAnD4uq9YMUoV9FN2kZ9rPgl8WfwJANBIynQioprm6QM0cuuE373EIY9xntKmwgq8uSFXHEglmCQ8sL73Y5vlREZJSyK4FdvREEHDmWZMqezu11bSzRYUEizfUwgO8b43GQR6Pg5TQ+hYnSXeK3xg/8fxqsw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2omcdJs6oNKzMf5gRpeFZBGonYRli0YBGPsLYphsues=; b=j2I1YBkOnHETm8NAraNSELu+Fm4B7mgFnOMGR99ed++ann4h0a6FrL1JW6fEbXdhJOW7w6vNtPOxEk9d2uoPQvexMQFQiIpwtXq6weaXPdSaUvKWhYLv5E9qnFWV8kwp6tgbAjE3pEaLmYzV4UBnfgy2en5/j/iyhIMFCYjF04I3pUDJq1FUerUEcze40eImoY/8nYBu/ukxccupxx8mgJhOCk8RjPeIiS9wSKtzLgBFsJf7y0yfA8U7XlFf60zIFQ1X10xQ/r9FUc/U4ppBz7S7YQg0VMg4pMJO9YZ2FECS4+IoOn25uaq4Q+6n/dcym9R6Xxv6qDPt9906m7wwCA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH 1/2] qemu: capabilities: Introduce QEMU_CAPS_VFIO_PCI_ATS Date: Thu, 5 Nov 2026 11:51:47 -0800 Message-ID: <20261105195148.3013942-2-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261105195148.3013942-1-nathanc@nvidia.com> References: <20261105195148.3013942-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0004.namprd13.prod.outlook.com (2603:10b6:a03:2c0::9) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|CY5PR12MB6129:EE_ X-MS-Office365-Filtering-Correlation-Id: 69ee3ddc-8157-4e84-fd2b-08df3b763c35 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|366016|1800799024|6133799003|10067099003|22082099003|18002099003|11063799006|261102123227099003|261026121527099003|56012099006|261021121427099003|261009223027099003; X-Microsoft-Antispam-Message-Info: NLBbk73UK2hlhe+SNiRe0lWaBUc1IGsWEzruAor7dqoTWT8XEY39/cVFWKMQ2df6E4jbVKUql6mkz1sf9nWL6dXvpX/Mk5fXrjYCcrduPX8+PjMTpnt4YTuYkEIZmM+6tbJNDZxfPF0NfoofmX3S7k0t245pT74DGCltJcsH79bDCkq+D3wbtb4RZCGYnpUPNZNxVoRw7tCggojCckJWbuEfLYKe3jECYhL6gC9LXZgi9Q67e6pmBD31DflOsQNAm1PyiWbOmYSFrfz4QLrMh6plRj8RUxZ3CVEb6xUpg1FK46vnHubUS5PA2Efrh1UbbzIPrWG42fxIWrY+nixUVXdrQKyZfcx99KEEGyQ1x4R4tn2uhUBTt5ru5SeCbI7n2Hst3JG/z2crvrpl2lLbmdiQS4iiyluWBcduNWHsF/R/9myQpoU/ZIDj1JVx1zXkTlidYfPhjKfgAi73V8VawqsI3j/M2tSIJN3Yvx/9V1ZYKvSG72jznzWsneUbLLS2QJVcB8lmAjyiZpHAkK8JqBUuVc0ppyeHz6z3xRjNeYnqmo3To8kZTVZwhhlhEgoki5kduLkKGrYwoXvsajWm42N3iEDwNjhPvdVB72trHX0PPmbnLWo4Qcl9Zrm2pBnaaaXEPoTObH7ZXmGoZ+i9ZOSh3C6zKgc1nF7+SKbN/44= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(366016)(1800799024)(6133799003)(10067099003)(22082099003)(18002099003)(11063799006)(261102123227099003)(261026121527099003)(56012099006)(261021121427099003)(261009223027099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qHtBEdc7++chC/IWrNeutqAxPFEHeoin6GFU10kHI2HkHC5BiM/Y7u33plvH?= =?us-ascii?Q?VZc6Y4NcGAhnWBwPl6W5oR9hbXmhe//5FWsU0ITjqnRchs70GQwnkPOy5o+t?= =?us-ascii?Q?/X9Zf9x9nKvuDobkPQ3qPD/0CamMP3/LlE+JDDSgXplrQaDjfkgsdg/Ygk6g?= =?us-ascii?Q?0oLzarB4uF73DsLBNPZl7MCIfpQfxIHwEmAORjfdT/ZnudU+wYiVIbKm1gXZ?= =?us-ascii?Q?ULpNYGbVqypic7uHhceFDb8x84ujG/hybQMJL89gO4tvQBJ4G0/Xhi8jbS4m?= =?us-ascii?Q?h4A7+AyP2GxwPaJnH//rGz8O56HWzBbSx4FFs/7pRdYQfNtWwb3Vgn5bf5oK?= =?us-ascii?Q?RGvItYtCGorfu39WYd0nlYkjvze4XV+JUm32YOI9YZR8glIbQV1cv+kSUu/a?= =?us-ascii?Q?7ZgT5bbE0FeAcdKkmkpYU+mHrNFfMoXBM4REmZ8/sAJwdiZARxDf+n2Jx5Ed?= =?us-ascii?Q?EtGGaWnHGYWEBtU/iey1a5Cu8pO4zX+VhwsPjO9eWcdsFWK6UKlWU61RploW?= =?us-ascii?Q?wjIJWYYzTLSt3JcjB0psPTb7WD3XPtqKYCTQL5nTrq3fOIN0v7atQ8rkbzce?= =?us-ascii?Q?yv6j0eOub3pnyGQBzGx7uw349sA+28tbNsinqGslwQn33wG7tr4h/qGk+E7t?= =?us-ascii?Q?eFN3SbHwHTLNcbxxmIfnk3vb6n0G80tHyu1U+/UDXz4c1mNmix+rh6JUnuIK?= =?us-ascii?Q?kw74+dnFgNVuIr/p7teCop1FqrRzDB2WE5CF+UYUW0GC9N/X55ok447K56Qn?= =?us-ascii?Q?QLZkKoiAtAKdg4rqAREOgw5Frth1FLSvmfdRszgGAKAvoXdy1HY3VAWGtdEt?= =?us-ascii?Q?YQkS8/vVkDZlK3VLLOYv9ybkOUO3PqBL0mq5cZDkKrq+pl9nbMkgMp/zRP0/?= =?us-ascii?Q?ViIihFtfoL01bFuzfOOzYnZ9aQgo4VlgpncEcdxn/99jCEQY/GVjD+V1KOH2?= =?us-ascii?Q?FwDypzxH7D0DMm7iFGJLe4T0t9V/GXvKtjm+KU0Vkly7OIuzgeOGIUasg66A?= =?us-ascii?Q?4KyN3Gy7RQzjpIzBwbt2IpV4hJ0japXQJhjtisbGugLk7UAe3Fw2nh9q2E1Y?= =?us-ascii?Q?lIbiv0uO2Qz6kyDq0zq9/ZHBMsJjyJ5iKUrKEQaGRXJgn6LrlMpnPAWbLfpT?= =?us-ascii?Q?LrPxOAnjPSa/0kbc3rpKzmMeu6A8lZ3QPhTriOtxgyLnifqPaLxYce1e1pUg?= =?us-ascii?Q?QZGh3oD9LQdCw1BZ4KF6xppW3TwxOFAVVw3bTik417x1P5I4U91XYeLt+ZUM?= =?us-ascii?Q?LpJZxa4uyf66wcK618rA5Qvbd4KI0IQx2SyUPQepCBH3UFxtiZDwnvdqVqOL?= =?us-ascii?Q?aIZx/HNjWWy5sd3Jba821t1jm8fPKDPfjqHUiczkcrf9RZtLHUI1kMp/oNLk?= =?us-ascii?Q?1SNWFo04D+EKbbx8ilmoVR3YzmgKjuWpSWpNq64bdjiw7CjG2J131Ce5hbza?= =?us-ascii?Q?RNto5DfxGEttaaouC/P6udZS5h8gGR1Oz86tNj/Zja89b8rO++FNjL5jmBfs?= =?us-ascii?Q?FjPWT0d5XMA9/+TWdLn2H80u27O60pUSHFn93jjHVksf2esrsbbaJSx75lwl?= =?us-ascii?Q?nicYpmeonZG5enYYmQTKnjHS7WuPKAZuqeR+scvyZGMR9eRLTduBdR5alXRe?= =?us-ascii?Q?NNNsqWcE+NeRDvQ1nthmOqxN4EPFPdwuiZc16lIdAT216EmxWF5nFmEGjnEB?= =?us-ascii?Q?IpMiEDTzEwkis5aI1Vxdn/TbSNnwsHGEAYJdnccD0Qxi5wD2ZGngpkB3Gy2t?= =?us-ascii?Q?WoHfT2XYgw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69ee3ddc-8157-4e84-fd2b-08df3b763c35 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2026 19:51:51.3129 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: YUX5PZqMK5NYIihfRzscYwkphxypbvdtr07WgU8NmMzwhTcl1xrfbBluWrhPqKSKZ4f9Cv82LMpyIn+HgIkbFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6129 Message-ID-Hash: KUUIC6RQGORS7VFXI6TF5WVFM5IJZI4Z X-Message-ID-Hash: KUUIC6RQGORS7VFXI6TF5WVFM5IJZI4Z X-MailFrom: nathanc@nvidia.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: Matt Ochs , Shameer Kolothum 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: Nathan Chen via Devel Reply-To: Nathan Chen X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1793908514149158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Detect whether QEMU's vfio-pci device supports the 'ats' property, which controls whether the device's ATS extended capability is exposed to the guest. Signed-off-by: Nathan Chen Reviewed-by: Michal Privoznik --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_11.1.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_11.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_11.2.0_aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_11.2.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_11.2.0_x86_64.xml | 1 + 8 files changed, 9 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index d8217bd72e..de439be8df 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -782,6 +782,7 @@ VIR_ENUM_IMPL(virQEMUCaps, /* 505 */ "pcie-root-port.speed", /* QEMU_CAPS_PCIE_ROOT_PORT_SPEED */ "pcie-root-port.width", /* QEMU_CAPS_PCIE_ROOT_PORT_WIDTH */ + "vfio-pci.ats", /* QEMU_CAPS_VFIO_PCI_ATS */ ); =20 =20 @@ -1565,6 +1566,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCaps= DevicePropsVirtioSCSI[] =3D { }; =20 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVfioPCI[] = =3D { + { "ats", QEMU_CAPS_VFIO_PCI_ATS, NULL }, }; =20 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsSCSIDisk[]= =3D { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 18a21dfaff..2d910a124e 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -756,6 +756,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ /* 505 */ QEMU_CAPS_PCIE_ROOT_PORT_SPEED, /* pcie-root-port.speed */ QEMU_CAPS_PCIE_ROOT_PORT_WIDTH, /* pcie-root-port.width */ + QEMU_CAPS_VFIO_PCI_ATS, /* vfio-pci.ats */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml b/tests/qem= ucapabilitiesdata/caps_11.1.0_aarch64.xml index 3634a37a8e..198cebebc4 100644 --- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml @@ -195,6 +195,7 @@ + 11001000 61700287 v11.1.0 diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_s390x.xml b/tests/qemuc= apabilitiesdata/caps_11.1.0_s390x.xml index d440b07b4f..349fa072f5 100644 --- a/tests/qemucapabilitiesdata/caps_11.1.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_11.1.0_s390x.xml @@ -150,6 +150,7 @@ + 11001000 39100287 v11.1.0 diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_x86_64.xml b/tests/qemu= capabilitiesdata/caps_11.1.0_x86_64.xml index ff7402ba11..7c4f106620 100644 --- a/tests/qemucapabilitiesdata/caps_11.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_11.1.0_x86_64.xml @@ -225,6 +225,7 @@ + 11001000 43100287 v11.1.0 diff --git a/tests/qemucapabilitiesdata/caps_11.2.0_aarch64.xml b/tests/qem= ucapabilitiesdata/caps_11.2.0_aarch64.xml index 15ad9f94cb..4f4c7f25b4 100644 --- a/tests/qemucapabilitiesdata/caps_11.2.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_11.2.0_aarch64.xml @@ -199,6 +199,7 @@ + 11001050 61700288 v11.1.0-3637-gf29ccc287a diff --git a/tests/qemucapabilitiesdata/caps_11.2.0_s390x.xml b/tests/qemuc= apabilitiesdata/caps_11.2.0_s390x.xml index afe44a262c..597eff7605 100644 --- a/tests/qemucapabilitiesdata/caps_11.2.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_11.2.0_s390x.xml @@ -150,6 +150,7 @@ + 11001050 39100288 v11.1.0-1870-g81ce3a8773 diff --git a/tests/qemucapabilitiesdata/caps_11.2.0_x86_64.xml b/tests/qemu= capabilitiesdata/caps_11.2.0_x86_64.xml index 73c914613c..bfe3596ab4 100644 --- a/tests/qemucapabilitiesdata/caps_11.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_11.2.0_x86_64.xml @@ -229,6 +229,7 @@ + 11001050 43100288 v11.1.0-3637-gf29ccc287a --=20 2.43.0 From nobody Thu Nov 12 15:08:38 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 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 [38.145.34.151]) by mx.zohomail.com with SMTPS id 1793908638611561.3583925782059; Thu, 5 Nov 2026 11:57:18 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 4A60441AFB; Thu, 5 Nov 2026 14:57:17 -0500 (EST) Received: from [172.19.199.19] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 8F68441B65; Thu, 5 Nov 2026 14:52:23 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 380BB3F308; Thu, 5 Nov 2026 14:52:01 -0500 (EST) Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010008.outbound.protection.outlook.com [52.101.46.8]) (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 62EB53F356 for ; Thu, 5 Nov 2026 14:51:59 -0500 (EST) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by CY5PR12MB6129.namprd12.prod.outlook.com (2603:10b6:930:27::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.592.10; Thu, 5 Nov 2026 19:51:52 +0000 Received: from DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720]) by DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720%3]) with mapi id 15.21.0592.007; Thu, 5 Nov 2026 19:51:52 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TfQfOWPRc2pIEofD/Kplg/3CKknlm8XuwbNAHVMLsFyl/tpgap4E9NmZcfxceC78axZTksny50Lp3ciSA+IG5uw6MuDHEeJF8QlQQ4Iv0ntYNWEaLOyBiH/MDlbypQ7UNZzFZdI2bqq9vnVUnKSQZuJBhbgfCZlSO4j05SxEiwzGsr3NIf8L2XY8Dw91l7DTlpaTch0U9s+GP2F3foSTk7fLDN+ZVgHPZg9UvMA0/wa25x56hEQZZiEUN06LSews8SmUrQq84WveOcE784oP506GQKd/1iw4X1+xex9D/gDh/vD2ziWzkZI/CufzbU7MZcWFH9cYgZ0+rVmlU4Gp/w== 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=KY6k4NPnZrJ0ReOnXiiL/dmta70J+nlstQgG9b9s7lM=; b=cba611pbZBF6Lz1DGdqI9dK0HChDvyA5FleQMLZZmEMEuIDNmC6GYxfoNat0HXhU7rlK/NMjYTNGGiFTN8Aj+gEAriuBfhoM0S9mhWO1kqcNPC8bfqwUqJdmzPkmJf5J8ooR00MGFHK+vFxSjLNkQ7mLRTdIWtDfXUC0X7n7oBDj0yA1PspLbR/IhamqoptIRbWWds5mLi8RZQujPU5kBO6gHscT40S5Ua2sOUc1FQjX73wSW7vUKPziPjonA9kLYoSzyw60/t7+YLh2lkpbHuq8evwDX0B0RTlxKxDeWzbC8AkD18UW3Sa1RgVJGhpEZoxPZce9uGjCQC7Eml1KwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KY6k4NPnZrJ0ReOnXiiL/dmta70J+nlstQgG9b9s7lM=; b=RZVzLNwyY4HCAgNaDhSiM79BajOjPNouRmqDJ8KelHoMuqlkNsbxqkXyPJOi+j/uGt5qKsl0WyKO0RBkPqOFNtzHCA5SH0jym+V8zxlm9MczBTt4U7RSvSzAOLl6eB/PK92wM3zb3G3KDfDDCqb9NhAU2vMgM7FTYwvoQ39fx4EDW+ogSpZvr2XIGlrylCRlDl5rB20zagLXCPwe8C9V5h8an7r7QS5Xe1T3GfQ6fBf6Fw4vRiVbdP0d8LLPJee1quNBpEqTcBCxrL0TMQC+2U5aJXEQYhwPQ+XMjamWr2rEPjsgunbJmaxEAL8yO7fr6sGyVKF7MavNnOtOGXzIqw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH 2/2] qemu: Support vfio-pci per-device ATS attribute Date: Thu, 5 Nov 2026 11:51:48 -0800 Message-ID: <20261105195148.3013942-3-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261105195148.3013942-1-nathanc@nvidia.com> References: <20261105195148.3013942-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0084.namprd03.prod.outlook.com (2603:10b6:a03:331::29) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|CY5PR12MB6129:EE_ X-MS-Office365-Filtering-Correlation-Id: 59402d73-fdbb-4b7a-2327-08df3b763ce1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|366016|1800799024|6133799003|10067099003|20052099010|22082099003|18002099003|3023799007|261021123027099003|11063799006|261102123227099003|261026121527099003|261028144727099003|261022105027099003|261026140227099003|261009223327099003|261009221227099003|261009220027099003|56012099006|261022075727099003|261021121427099003|261009221727099003|261009223027099003|260925022911599003|260925021911599003|260925021311599003; X-Microsoft-Antispam-Message-Info: LFmumRNhi3ADhg4e8YMOFF0Oq4fDn03XpYfOcr7kHPqkL8U5+V4+IRbRk45ON3ndR40yZlVScv82XbY3pYJVvSkOrzTp1R+vatYLAepdalZi66mPZqR4Y6tkCmApuigPfA69bzoj629g1Z/ZTyV+jD6MTTESvo6/QoF42QwbTpY0llZRhSukJwrUepJSdxt9By1gfOXDM6+UrJ7DEp6rfHE60yqxqGV8HzRD2VRtQC/YgIvf8/60kZFDmD84xLRTIXBngZya9M1pRqAuFxv7cZ5LZOSPOvvB9AFqYTd408sHEigJe9vWdsPpYg1pO8AQHO0TvWOP6l9th5+7FVj+Cje0OrcYnogiEHeQKtKQtRWHEUTkojiw/D92XnCLC5kagrzs8rgaoYb//vpp+YluQbX2sWPGrlblfSOc5PM4Q1ACLqIyHj7iHgHJzpvxm4Xvsv0c4O/yPu9gfO/ii6Frg09a8h/8YuF5NB8iGzuLO0hphFy/QyFdIMW9FEgcAC1o1/P0MfyriKPJoLP59iHjXuxrgjDoVin/c1PnEce446uHC9flyLVwF3/ltniSMGvJ5QAqtb7ileHJ+vptHkiJlL1T3n04Vxet7wxa5buVK/IpuETrONJFpCTfq/QpXlAG2uGqWKg4mAt2blH1cWKOiwftgBv1nzWkJPDu9ftwSQA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(366016)(1800799024)(6133799003)(10067099003)(20052099010)(22082099003)(18002099003)(3023799007)(261021123027099003)(11063799006)(261102123227099003)(261026121527099003)(261028144727099003)(261022105027099003)(261026140227099003)(261009223327099003)(261009221227099003)(261009220027099003)(56012099006)(261022075727099003)(261021121427099003)(261009221727099003)(261009223027099003)(260925022911599003)(260925021911599003)(260925021311599003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LPSogFc9zFsu5NlHa3D5JSDthuDndnLszhXOzxCPWdzaOQyShyUe13pMsSjm?= =?us-ascii?Q?DffHRJG/pF7Qnr69NtZg0JCXZQvFrSUkVpFepyoRjrMLGzXOYQMovPAeAUH6?= =?us-ascii?Q?SzUrvNMT3mDnZOpamDjTEh2fMyvjYYPOlpKSbshPfnvFNed3JzvQGPMzUre3?= =?us-ascii?Q?i9KBXc2r5hPQyKUAQHCFjks2t9638AbpBDBOdVXjqWjYMbwprtRTX3b0B7EV?= =?us-ascii?Q?u/0lhCuJZbiqwPn4X8czKyYEbX9VnSBUc8V2qR88HZQdla2Nqq4vFHNgsvn2?= =?us-ascii?Q?MAUbC+aNfCDVwKF3GRDKoJgh3eLsU/5cjGmgZEcuS9BAL/tK3OuhwtGAZHm8?= =?us-ascii?Q?6z3t/LxdqUJqpFW2OcFl9iqseydnh3SEQmaEmpewuxO65Glz7OPJku0b5qBj?= =?us-ascii?Q?ESK9ZaQVQ+GNIPdyp4S6g+CXKYzNutcefcjeLrxOjgG7rUkFETexGaAjQoY8?= =?us-ascii?Q?vppct60KPf/xCvGwNa9pxpnMg/jYyGroGCVr8kHOfkeBPj4eRijZs5F+zuAr?= =?us-ascii?Q?dEBPEzSK2Nn712/eTwbVwmyAHrSumjSgLSNbWktmrNwbtqZgC/IgNLzbSyKw?= =?us-ascii?Q?37xS+OnJAQsLEn0x52fy+JmCn2OsTFah59KoR2KFo/3VrzQxCpnNkjkNDgxl?= =?us-ascii?Q?PB7956C5G/t/M4aykVWdqpqm5eNPtia8x/lX/bhlIpVmZ2opp0riJCeb7ZPj?= =?us-ascii?Q?Bk3v8iQQUQrAH80BjqHgGTqBbw/wiEnhA15CQUFtD5AWRf0AQynTjiSrpOdW?= =?us-ascii?Q?cmEpkmRLaxM8Ogd5Nfy2miTOg/EMkBUYD6dSysEkGCPt/phDEiztJ8kUe0da?= =?us-ascii?Q?HFBsRWYNIxF9Jx9UxugJvi5YiorWT1r/l9qCybq2tbRV4cd//rxDg5yJz/FU?= =?us-ascii?Q?l2if+tL0qLmchhRebk2IwIuHzvu9Zfs1sER/HOsRKF/T+vCYFbl/orFfnxRr?= =?us-ascii?Q?/BlJiFzo6f0DU97MGLQkPNyzuoqP95G5mx2NMmjx5sG/d/8pV45o+QptJdrl?= =?us-ascii?Q?PK8uBbwkAIIl7DPWjQ0/+LjV74Mba8vod/+jGt8sGmlIh4EKwiJo+ey26QWn?= =?us-ascii?Q?5SBEbtyFp7bDakUCr8oqbmFK6Tg1u0Gd6xIfx9621Bh8Y5osr4QS0h1+cGpB?= =?us-ascii?Q?5R+mlSnu97LC9m+UAi4EfQJyrqYxFv0IRo41h5XY7XeqZcmSU9cVw1coo0Z3?= =?us-ascii?Q?ZcEWdOt3+kbY47fcYZZ3BFGEsNwAwR3QAeB5rpzItJZd8ZxGcFWoctfPSRHL?= =?us-ascii?Q?BGXLdiE2jHGTMvo3GYyfGdq7O1hCT0p01iY0rxvxNXqWZd4Uyldp7aRaBur/?= =?us-ascii?Q?i5aoGxii4gobv7aT/AeII5aG8l7/rHrPCBg2i8nHafKkzLJbQi9hpt+ImdD5?= =?us-ascii?Q?AkrTZ2tRkiLDg3b11hTfgWd3GFMj9Wsjwe8hGKDBuFfRYMWUl5o+xx5VKbh6?= =?us-ascii?Q?hxU+b4liPb/NRLGVF91SYrs+6lLL8/+sq/6C2OptDQnNI7EEYqGjzRkVRW1c?= =?us-ascii?Q?N0MI86QZU2yOthtzI8wuAT1oGu4mCkO+mvlkIXah6yEZvta8G9/i10SIiWHw?= =?us-ascii?Q?t8QvSo0YW+x+QtLPy35/d1hc4LVXa1101oNOZDhNHlZP71K21wfZxPKxfdfH?= =?us-ascii?Q?rvBXNRf0DW06j9c/12Ff3lKTaD6CF9xyIAD8T7HG8SPPO3TD86TFBgK/Aq0P?= =?us-ascii?Q?32UTc7ORHRYqANMS2TNx8cMEq78Do0eleYfe9oB7LMcXCiiHO3oyjH8CYJ+V?= =?us-ascii?Q?MYyP36UEMQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59402d73-fdbb-4b7a-2327-08df3b763ce1 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2026 19:51:52.4351 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wePb+cDXLpdIsnC5d7Uzj3Lj6ubcoSWsNl3liMohuuehP/WqMEMwN5SKaKQwiq59rYE73VRA+GhLpu4L0Pmj/w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6129 Message-ID-Hash: T5FPCG5VOJUTGFRPSJJGR2T5NXN4QUZG X-Message-ID-Hash: T5FPCG5VOJUTGFRPSJJGR2T5NXN4QUZG X-MailFrom: nathanc@nvidia.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: Matt Ochs , Shameer Kolothum 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: Nathan Chen via Devel Reply-To: Nathan Chen X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1793908638982158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Support the vfio-pci ATS attribute that can be used to control exposing or masking a vfio-pci device's ATS extended capability in the PCIe config space within the guest. Place the ATS attribute under the hostdev and reject it for network and port XML definitions as it only applies to individual vfio-pci devices per VM. Signed-off-by: Nathan Chen Reviewed-by: Michal Privoznik --- docs/formatdomain.rst | 8 +++ src/conf/device_conf.c | 8 +++ src/conf/device_conf.h | 1 + src/conf/network_conf.c | 6 +++ src/conf/schemas/basictypes.rng | 5 ++ src/conf/virnetworkportdef.c | 6 +++ src/qemu/qemu_command.c | 1 + src/qemu/qemu_validate.c | 7 +++ .../hostdev-vfio-ats.x86_64-latest.args | 36 +++++++++++++ .../hostdev-vfio-ats.x86_64-latest.xml | 52 +++++++++++++++++++ tests/qemuxmlconfdata/hostdev-vfio-ats.xml | 41 +++++++++++++++ tests/qemuxmlconftest.c | 1 + 12 files changed, 172 insertions(+) create mode 100644 tests/qemuxmlconfdata/hostdev-vfio-ats.x86_64-latest.ar= gs create mode 100644 tests/qemuxmlconfdata/hostdev-vfio-ats.x86_64-latest.xml create mode 100644 tests/qemuxmlconfdata/hostdev-vfio-ats.xml diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 77cd6b504b..71fe6f8834 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -5105,6 +5105,14 @@ or: assigned devices. Libvirt will open the /dev/iommu and VFIO device cdev and pass associated file descriptors to QEMU. =20 + :since:`Since 12.10.0 (QEMU and KVM only)`, the ``ats`` attribute + can be used to control exposing a device's ATS extended capability + in its PCIe config space. ``off`` masks the capability, ``on`` + requires ATS support and fails to start the guest if the host kernel + reports lack of ATS support for the device. If omitted, the + capability is exposed unless the host kernel reports ATS as + unsupported for the device. + (Note: :since:`Since 1.0.5`, the ``name`` attribute has been described to be used to select the type of PCI device assignment ("vfio", "kvm", or "xen"), but those values have been mostly diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index d68232a4f4..468f0c1058 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -72,6 +72,10 @@ virDeviceHostdevPCIDriverInfoParseXML(xmlNodePtr node, &driver->iommufd) < 0) return -1; =20 + if (virXMLPropTristateSwitch(node, "ats", VIR_XML_PROP_NONE, + &driver->ats) < 0) + return -1; + driver->model =3D virXMLPropString(node, "model"); return 0; } @@ -104,6 +108,10 @@ virDeviceHostdevPCIDriverInfoFormat(virBuffer *buf, virBufferAddLit(&driverAttrBuf, " iommufd=3D'no'"); } =20 + if (driver->ats !=3D VIR_TRISTATE_SWITCH_ABSENT) + virBufferAsprintf(&driverAttrBuf, " ats=3D'%s'", + virTristateSwitchTypeToString(driver->ats)); + virXMLFormatElement(buf, "driver", &driverAttrBuf, NULL); return 0; } diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index 116b959143..84deeba1e5 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -48,6 +48,7 @@ struct _virDeviceHostdevPCIDriverInfo { virDeviceHostdevPCIDriverName name; char *model; virTristateBool iommufd; + virTristateSwitch ats; }; =20 typedef enum { diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 8eba1321d6..670632b0f5 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -1379,6 +1379,12 @@ virNetworkForwardDefParseXML(const char *networkName, return -1; } =20 + if (def->driver.ats !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("'ats' is not supported for network ")); + return -1; + } + /* bridge and hostdev modes can use a pool of physical interfaces */ if ((nForwardIfs =3D virXPathNodeSet("./interface", ctxt, &forwardIfNo= des)) < 0) return -1; diff --git a/src/conf/schemas/basictypes.rng b/src/conf/schemas/basictypes.= rng index a2ecfd3514..fc5cbebee8 100644 --- a/src/conf/schemas/basictypes.rng +++ b/src/conf/schemas/basictypes.rng @@ -709,6 +709,11 @@ + + + + + diff --git a/src/conf/virnetworkportdef.c b/src/conf/virnetworkportdef.c index ad6150d5a7..bbf6887409 100644 --- a/src/conf/virnetworkportdef.c +++ b/src/conf/virnetworkportdef.c @@ -231,6 +231,12 @@ virNetworkPortDefParseXML(xmlXPathContextPtr ctxt) return NULL; } =20 + if (def->plug.hostdevpci.driver.ats !=3D VIR_TRISTATE_SWITCH_ABSEN= T) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("'ats' is not supported for network port ")); + return NULL; + } + if (!(addressNode =3D virXPathNode("./plug/address", ctxt))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing network port PCI address")); diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a27425d8da..f3d6c0f92a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4809,6 +4809,7 @@ qemuBuildPCIHostdevDevProps(const virDomainDef *def, "B:ramfb", ramfb, "S:iommufd", iommufdId, "S:fd", fdstr, + "S:ats", qemuOnOffAuto(pcisrc->driver.ats), NULL) < 0) return NULL; =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 04f33df7eb..ce97b80a15 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -2836,6 +2836,13 @@ qemuValidateDomainDeviceDefHostdev(const virDomainHo= stdevDef *hostdev, return -1; } } + + if (hostdev->source.subsys.u.pci.driver.ats !=3D VIR_TRIST= ATE_SWITCH_ABSENT && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VFIO_PCI_ATS)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("ATS control for VFIO PCI devices is = not supported by this version of qemu")); + return -1; + } } =20 if (hostdev->writeFiltering !=3D VIR_TRISTATE_BOOL_ABSENT) { diff --git a/tests/qemuxmlconfdata/hostdev-vfio-ats.x86_64-latest.args b/te= sts/qemuxmlconfdata/hostdev-vfio-ats.x86_64-latest.args new file mode 100644 index 0000000000..3e6bede91c --- /dev/null +++ b/tests/qemuxmlconfdata/hostdev-vfio-ats.x86_64-latest.args @@ -0,0 +1,36 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest2 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.local/share \ +XDG_CACHE_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.cache \ +XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=3DQEMUGuest2,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram,acpi= =3Doff \ +-accel tcg \ +-cpu qemu64 \ +-m size=3D219136k \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9466-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D@mon-fd@,server=3Don,wait=3Doff \ +-object '{"qom-type":"monitor-qmp","id":"monitor","chardev":"charmonitor"}= ' \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"vfio-pci","host":"0000:06:12.1","id":"hostdev0","ats":= "on","bus":"pci.0","addr":"0x2"}' \ +-device '{"driver":"vfio-pci","host":"0000:06:12.2","id":"hostdev1","ats":= "off","bus":"pci.0","addr":"0x3"}' \ +-device '{"driver":"vfio-pci","host":"0000:06:12.3","id":"hostdev2","bus":= "pci.0","addr":"0x4"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x5"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/hostdev-vfio-ats.x86_64-latest.xml b/tes= ts/qemuxmlconfdata/hostdev-vfio-ats.x86_64-latest.xml new file mode 100644 index 0000000000..d24ac4fcc8 --- /dev/null +++ b/tests/qemuxmlconfdata/hostdev-vfio-ats.x86_64-latest.xml @@ -0,0 +1,52 @@ + + QEMUGuest2 + c7a5fdbd-edaf-9466-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + +
+ + + + +