From nobody Tue May 5 08:46:48 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; 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 (BodyHash is different from the expected one); 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 17435825143811011.9959393457295; Wed, 2 Apr 2025 01:28:34 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 765EF13E0; Wed, 2 Apr 2025 04:28:33 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id E54371455; Wed, 2 Apr 2025 04:27:33 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 608E2E72; Wed, 2 Apr 2025 04:27:29 -0400 (EDT) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2057.outbound.protection.outlook.com [40.107.93.57]) (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 C28D511B2 for ; Wed, 2 Apr 2025 04:27:28 -0400 (EDT) Received: from CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) by SJ2PR12MB9139.namprd12.prod.outlook.com (2603:10b6:a03:564::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Wed, 2 Apr 2025 08:27:26 +0000 Received: from CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5]) by CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5%6]) with mapi id 15.20.8534.043; Wed, 2 Apr 2025 08:27:26 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZQZGSaosWW9Zy6UgEEC+G0pikUye0Yoz4X4zUkKrYeqCzGS/Rzv0QN94BouJ9UoJUHvUYfa3p3+upe/IMw5BOQKJJQlWuXq3H/oLZLS3ApVwop7MGc3MiidDidzTueIlKGlegZJZiU3rvlFUFa4HLZ7zDjBRKdVlR2lWl1fJcFDMZRCh/mjpZa7rCvCu/JWY/iqp1f7jaXb0MN0ieXBqqdvdU6CbvVkgRbSP8yZyr3gUCxkM4JredlK7ldjzUvMXtgsTyHe3CCIkPrzjqTcmQCN197ov2wYHXGoTulQmXSOQoYZSCeZE/LzyJUWb5YdXjNgubjyZTd9mt/lK9anJaQ== 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=ZLPru/lvgisqAiiLTWpEquj2Y921Ffx6I03Lt/e8rUU=; b=uS54kxUUWVQylgF5rj/osNyOJzVK4Kdq9YWtQjFMbXggSA3BBFLMixR9HShNgF0wutE7U0+1EdSNLGlJgGUmOCOFHuM1TTLAEafcW2hnlkxdJDu45Mpv0UE/APUv3aHHnrZ9M3TCVs5E8FrS9OJoGniacAw/cJvu06uOq2yn72mhgDVJmh+8488k+q5718J6+DU/wlOdk4DHcaJPw2nRN935xjY/tsEo41RNnyA+xGEQQAUh1oQKN09xzbyTuXMyNXaydLagXw/JV+uIyiqFy7y4yFRI8Sir6Fxr35o+PE4W7FODltYkZXVFu7GT7C92oLeksN9TaicUtIWeJyInpw== 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=ZLPru/lvgisqAiiLTWpEquj2Y921Ffx6I03Lt/e8rUU=; b=gEJ1SZE0Ls5bofEY8rzACkPltdh20gvxxuvxRB4AtlapTz7mP3eQG0wpcKrkiOvqt+68tkPLtOpXTTnWcxD/RUqlyCsWHXWTbUfbop2i69rAyMVqyrdoez23xPe/AfOS6x2szC8JYj7C9Q3RvXtH1Q5grclUXKvvjE0Spx9iDoNY3/tYz9ddyIuU68X+DlKkb+hvkZcQTPxuR/uyRuGmLt9tU+CFYBX0jmJT0/gQHg8nk6xR93T6LBKG68FrLYBD12foBzGK9rTa9LoxfiedZx9FU84ZPLSd+uMGeUFTUxnAPXJfHMENIbZtjmR4qoi5CC3TDoacxWOlWC1XbOd9oA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH 1/6] schema: Introduce acpi-generic-initiator definition Date: Wed, 2 Apr 2025 10:25:32 +0200 Message-ID: <20250402082709.538777-2-arighi@nvidia.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250402082709.538777-1-arighi@nvidia.com> References: <20250402082709.538777-1-arighi@nvidia.com> X-ClientProxiedBy: SJ0PR03CA0284.namprd03.prod.outlook.com (2603:10b6:a03:39e::19) To CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY5PR12MB6405:EE_|SJ2PR12MB9139:EE_ X-MS-Office365-Filtering-Correlation-Id: 2f554e51-fd70-4ab7-b21f-08dd71c03369 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0brV0//vZyNVnyKX4CfeGOxbCbhsBI2/oHjeQrownC7zw7n3x1jHwlWIvxjf?= =?us-ascii?Q?fpTndEsANQQgFlH1SW/YV9wjJpMmPzdtPd2j5erCusHZ7rRvL+Tquq4/oQNV?= =?us-ascii?Q?XcGCUup2fMgWwwFcjbewTksp5+A2X53pTOiqMIe9YPaSQGUKM+unne6sAutZ?= =?us-ascii?Q?PG605eJk+TAmPsXt3T5C06pFGHEoBGQHEMvhGdVfL7tVZ3NNFSo+rS/Gpb5k?= =?us-ascii?Q?mxV9GMpd2WTwYe6EZSAF38MtmMW5DnyGOH/wRbZ35tXCxVUdPYWWui/7/1fq?= =?us-ascii?Q?fYGQ0CfE+Bll32qmQOBPTBnZuHKJQzZqCSS/LejsgmR5m4ui3jb9gzI1cEL9?= =?us-ascii?Q?J9iLPfWYU85iUGKcw949GpQnB0a+OVM+ksmoZoBxTrYwmM7hKa4U8aa1Jvtc?= =?us-ascii?Q?qoa1O4M8Tb5qvwVmO3zD9TInbjrJKC5isSqXMDU1YZ/lk884/G57Sl1bO9W1?= =?us-ascii?Q?KyUhyhPZEM2hXW4qu+9Iio3xnVbK/2+8/162WddeCeSBeGDc77Pu10SqteWM?= =?us-ascii?Q?4+8IF7kj8rRjxea2EHAuBxgHMj//wSpWK/mN5VN7BR2zrd5TmgeB+hinzuhT?= =?us-ascii?Q?70L0jbYj7jmQi76zywjINtXL4vKBLz7mc7VXyMmdLiHhB5NzXRV+T7di7ypi?= =?us-ascii?Q?9QGJT2GXwckMT0gEQOzOqbAZmyxKO1aYx4ADenhzOwOh/eEBdUvsGASr42it?= =?us-ascii?Q?xQ7S90T0eXNek2K/WuouUam5tiQNzJbAt0hBduLRAYc9KASMPaBK/YLnG3TN?= =?us-ascii?Q?hsJShwOMnhFLoZrTjzP9eCiBEK/pcam+MdmrW27LQ8gazNFzGCsz3sUgbJsm?= =?us-ascii?Q?re2LO5fTxmfkasmFnM+ouX0CTkrQlqfa9mdzAZ5HbBkRQwm2lX1999nIYQVJ?= =?us-ascii?Q?Y2sPsb+7jl7Yyx/sNyRZ3WAw9momWPjE4HJUoNixtKYtYzCUpp6AFpEwAL7l?= =?us-ascii?Q?wGXS0eLQwQuDzNd590ZKGSLGWWWAE1XIFZNg3pNKHh94XdH+QAWdBGsJH1mV?= =?us-ascii?Q?0Dh42wFlP7KqIPrbCy4l9w3RgjCqxCkHUuEC/Cwn/hBMdK/y+IBtxxpf+7Ak?= =?us-ascii?Q?VI7UJSXNtJY4vvmv8QP5RRptp8fpmlyVWNitXWnv6Z6pVjqqEoaJQvVa56jA?= =?us-ascii?Q?p5/I5eE/aJZ/Q1prYaL1ncLD8np5Mk389Rbici9vtNnq277PX1t3RmgoVuSN?= =?us-ascii?Q?6cNyyFZHNyQ4ZehoH00/4nvj5F4Sbpimd3AHQ9WLCqciq8hsjRmf0OY28UEq?= =?us-ascii?Q?TL/zX8Q4lq7RW82ZVOHFy4NjoPCTlEfZnrhH3OPIl/2jkr5KtmYiFw4pXbRc?= =?us-ascii?Q?6NLRlCAcFlaOM9f1Wb+R/Bcpc622DP2NUIkT6T2et10nZjFMYGug28jDT/oC?= =?us-ascii?Q?yQF2KGSIkeA7960WGsytPD60E0qe?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY5PR12MB6405.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aVgZd/VNjo4O01TlrtbP312HNdT4qj3waQrJbjgSee+OMax4nfmhXTXcBkDl?= =?us-ascii?Q?yyAluBI1loTUbUAwvqk4qNRIHOKpB5pYtlB7E2TIBlIIk3SDrWzXEbzSkFe2?= =?us-ascii?Q?pMOB3qumVRoomRuxx4bHO0reqq+HVJPYtvQ3/+rRkGM56KD+wNIMRmilR7DG?= =?us-ascii?Q?XHcRRHqv1X7Tg113x4L7PpJUMNNGNe26McB8Oiwu+66Yqlh/wsJnaTjm9xy8?= =?us-ascii?Q?n5nZLYdMmYjIKPZb/RO3sVNpV7PGk6f8Z7iX+68hSrOWm8eW6sdmJTrI7y8j?= =?us-ascii?Q?j4OdOd0n5owbz8fFhEW/VZRYlIxmdnSas/yNXov2iyE621C+xKNGZR8ksaXp?= =?us-ascii?Q?nximIwJsasiLVhe41RC5s9cClCUETLCgW+K3AqNHyJ3Mf7Qa2WC6956nyOvm?= =?us-ascii?Q?l5hWH1H/6dxjERTAe0pILNtqidzGAIOSBJullavrCShtJHoJckOX28yz2IVv?= =?us-ascii?Q?eZ3cyhkT5g5lMZoATk+fQj7O9Vsg0F1bJ06tPB/oaIdv4QI0J+vqtOVPPe0c?= =?us-ascii?Q?wpIx+gXaqi10IJV8gaWC2dl/Deo2WJAORXmPl4iOSkJuVWKIuTCC5zkFA1FR?= =?us-ascii?Q?M3sT1dADXfjeIDTiVbCnqzYIahSxLU285fwTN5zJO2F3NYgaXrqkzN8OlfqX?= =?us-ascii?Q?+sAU5cS5YFIkg/c1CqEhhYBQjMUG+nzmiCp0uwatzZglCmN0X5sDtzwi2J0d?= =?us-ascii?Q?AHu4tpBbEJag98GPDFeWNgWZN23GqFdNd45ls174KXet5vyiPX4Obk8LA3hX?= =?us-ascii?Q?qrQvEGphFZT2VKC2sh4zelRlbirtIZmQEoZf37DZs5UMzGZPgi0EUz/W+QC8?= =?us-ascii?Q?PWqZZVgUvXPsscvxqTXySjFTGpOoJWmOcp2PKu9GHD+GC93lhlYtHon+kEsl?= =?us-ascii?Q?ANZzEB/SFyrKk4+D5+ioLgtUFWpy9Lsc0Mhourae3QMFvIamSXlPLyigFmWv?= =?us-ascii?Q?es5E13x2rlcLEienXdsnCDJ6A6vUHbqN8TLc7mLaXHbxsMsT58AJCMn25upn?= =?us-ascii?Q?RxMa7OG1gxlhVpgKljIm++1Wwc8eyuKA6/YgEq3vHqFf0ZUdh4zrTtbvu2YN?= =?us-ascii?Q?RAMckanqFc/Coqi+400kSlsQqxZaumnAlXLt9wv//UbKrEmN/LMmCm/GF+eU?= =?us-ascii?Q?OZqpL1Qu2po9+DyQqf4pPD3UE99MLEOkfQzqA9nU23eIIJowKTp+zLifkYmr?= =?us-ascii?Q?P+stvuZJSh5WzZgrwPROYgs8ViV3EUqJD49YyfUWYnyFD1dzI5Rrjwt9Om/D?= =?us-ascii?Q?D4LTqTD/T7s1BfA+090xO9zLPWMXOKXFuute4AbEaMmezdjgAnSBNpdo8KXo?= =?us-ascii?Q?z4mFhUO+yLpLPXOdR89nShXfc9JgpMdekd2LHmOOUdmQ+r6ProYov5R08vLs?= =?us-ascii?Q?lWVIo0+ekT+28VrME1uq3dDmi+g6Zh8lYffK+OK/jBljcCDxIjqLNnANkC06?= =?us-ascii?Q?b0euQo0erObmR+L2N9H+kffX0D1AdKNp3WVb44Yc/MeTKk+LCYq+UsBKIbWa?= =?us-ascii?Q?f+tV0r+e4hanfgKrBrNkDSyfu0MVp8lQItDff7IwYcj1MHQEY+K005h0MjBM?= =?us-ascii?Q?TwVto+JZeZIlSrgKNEed9Z2b1FkTwtIXGYbR7Vco?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f554e51-fd70-4ab7-b21f-08dd71c03369 X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:27:26.7413 (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: p4xLAPWZCUp2xFweyRvLH1s9otb39K/NK+0GvpAzNR9x00ZsdpwTbxyKO74wJNUanq48q10KRQo8ohpJUWAcBA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9139 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: FEN55VOS6ESDJAQZYILNTCSPRTPFVHRR X-Message-ID-Hash: FEN55VOS6ESDJAQZYILNTCSPRTPFVHRR X-MailFrom: arighi@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Righi via Devel Reply-To: Andrea Righi X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743582517045019100 Content-Type: text/plain; charset="utf-8" Introduce the definition of a new acpi-generic-initiator object that can be used to link a PCI device with multiple NUMA nodes. Link: https://mail.gnu.org/archive/html/qemu-arm/2024-03/msg00358.html Signed-off-by: Andrea Righi --- src/conf/domain_conf.c | 26 ++++++++++++++++++++++++++ src/conf/domain_conf.h | 13 +++++++++++++ src/conf/schemas/domaincommon.rng | 19 +++++++++++++++++++ src/conf/virconftypes.h | 2 ++ 4 files changed, 60 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index c724638180..405f0207e9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3479,6 +3479,19 @@ virDomainHostdevDefNew(void) } =20 =20 +virDomainAcpiInitiatorDef * +virDomainAcpiInitiatorDefNew(void) +{ + virDomainAcpiInitiatorDef *def; + + def =3D g_new0(virDomainAcpiInitiatorDef, 1); + + def->info =3D g_new0(virDomainDeviceInfo, 1); + + return def; +} + + static virDomainTPMDef * virDomainTPMDefNew(virDomainXMLOption *xmlopt) { @@ -3539,6 +3552,19 @@ void virDomainHostdevDefFree(virDomainHostdevDef *de= f) g_free(def); } =20 +void +virDomainAcpiInitiatorDefFree(virDomainAcpiInitiatorDef *def) +{ + if (!def) + return; + + g_free(def->name); + g_free(def->pciDev); + + virDomainDeviceInfoFree(def->info); + g_free(def); +} + void virDomainHubDefFree(virDomainHubDef *def) { if (!def) diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 8dfadbb98d..9ee7ecfc4d 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -122,6 +122,7 @@ struct _virDomainDeviceDef { virDomainAudioDef *audio; virDomainCryptoDef *crypto; virDomainPstoreDef *pstore; + virDomainAcpiInitiatorDef *acpiinitiator; } data; }; =20 @@ -353,6 +354,13 @@ typedef enum { VIR_DOMAIN_STARTUP_POLICY_LAST } virDomainStartupPolicy; =20 +struct _virDomainAcpiInitiatorDef { + char *name; + char *pciDev; + int numaNode; + virDomainDeviceInfo *info; /* Guest address */ +}; + /* basic device for direct passthrough */ struct _virDomainHostdevDef { /* If 'parentnet' is non-NULL it means this host dev was @@ -3262,6 +3270,9 @@ struct _virDomainDef { size_t ntpms; virDomainTPMDef **tpms; =20 + size_t nacpiinitiator; + virDomainAcpiInitiatorDef **acpiinitiator; + /* Only 1 */ virDomainMemballoonDef *memballoon; virDomainNVRAMDef *nvram; @@ -3744,6 +3755,8 @@ virDomainVideoDef *virDomainVideoDefNew(virDomainXMLO= ption *xmlopt); void virDomainVideoDefFree(virDomainVideoDef *def); G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainVideoDef, virDomainVideoDefFree); void virDomainVideoDefClear(virDomainVideoDef *def); +virDomainAcpiInitiatorDef *virDomainAcpiInitiatorDefNew(void); +void virDomainAcpiInitiatorDefFree(virDomainAcpiInitiatorDef *def); virDomainHostdevDef *virDomainHostdevDefNew(void); void virDomainHostdevDefFree(virDomainHostdevDef *def); void virDomainHubDefFree(virDomainHubDef *def); diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index 5597d5a66b..d3ffc2865c 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6853,6 +6853,7 @@ + @@ -7708,6 +7709,24 @@ =20 + + + + + + + + + + + + + + + + + + diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h index c70437bc05..776a804cd3 100644 --- a/src/conf/virconftypes.h +++ b/src/conf/virconftypes.h @@ -122,6 +122,8 @@ typedef struct _virDomainHostdevCaps virDomainHostdevCa= ps; =20 typedef struct _virDomainHostdevDef virDomainHostdevDef; =20 +typedef struct _virDomainAcpiInitiatorDef virDomainAcpiInitiatorDef; + typedef struct _virDomainHostdevSubsys virDomainHostdevSubsys; =20 typedef struct _virDomainHostdevSubsysMediatedDev virDomainHostdevSubsysMe= diatedDev; --=20 2.49.0 From nobody Tue May 5 08:46:48 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; 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 (BodyHash is different from the expected one); 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 1743582579888533.7233674647437; Wed, 2 Apr 2025 01:29:39 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id E49C31424; Wed, 2 Apr 2025 04:29:38 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id C98E211E5; Wed, 2 Apr 2025 04:28:06 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 8A7B811C5; Wed, 2 Apr 2025 04:28:01 -0400 (EDT) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2061.outbound.protection.outlook.com [40.107.93.61]) (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 1B4D3147E for ; Wed, 2 Apr 2025 04:27:40 -0400 (EDT) Received: from CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) by SJ2PR12MB9139.namprd12.prod.outlook.com (2603:10b6:a03:564::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Wed, 2 Apr 2025 08:27:35 +0000 Received: from CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5]) by CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5%6]) with mapi id 15.20.8534.043; Wed, 2 Apr 2025 08:27:35 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y+1GzZcRuudyzZpMODCLwZgho/D8LAP1tRdX7+yDZOjHyp1FPYx4OlNHxsbc8waz5zYMNAv7pFkKJXr4co/FnfPS4pudyFNVPmCCxirn/wuQhujy438z45dosJue6C5LP1MFm7WTXAam+8X99MLiGQEg1NhXf57XExybzExxwp1TYEoTLN+1wlPzgfA2n6VWOzDhJGjd6BHauPww1k0H9PlYWMWcVWqrc0+KGmBOZlCQalCkejQ0jQAsQjg5LAoQQR76YQzwF5AwxWjWhB7c3Gvvte9/U/T1SqRgVQJDXAcN9rj0xTFnVZW09FnSTKpoBAq0ljmVeU+cLybNeIXGdg== 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=TZH/Qc1YyluD2PcGbYQSSoOJY+sxcnjeoWhpJZzcduc=; b=kgikuvJrtfer219lgf7d+NTh+6MWt9bckLGwG0xhQlXETN7yNdvzBS2jyhFREHNkHi0DYPdMDBR58qriuBcK448zfd615GO1TqdQwl17ft3Mg7cvXK8vCS2mcbJoDkikChrLTdFbn0bXvWJ3m+ELuwGBM1uzE0ygr/GhTmUKnziNS2/UreyrU/wAzsai3w5J5Ni5KPArebyHBx3715pLhvSZhylftk1tKpTagd6wS3/+ID6fC68UQR/dyWaC3X621eHA/u5VVzbguDJdJdr7rCnOtm4ICx/lykJYVMXbPVNNImKtoVKoE85tpvPaWBoEwcHs3u2NC9+d4rOEbUWADw== 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=TZH/Qc1YyluD2PcGbYQSSoOJY+sxcnjeoWhpJZzcduc=; b=kbmHh7X0s5LXoonveTd9hZHOqhegn1PQ2xT494N3R7WY6qGLnPUb6/u5GJULxQSI4piwnZ8OGkvO3E13UOVHyoIr5yWwPl85uXIvg+yh8Ipjky/cITu8cm6MSb0Ih2KYp4C/n3WxMm7EYedDZdgR9tObq2tQYOtqf9CLWEpF+l3pdgnuslQ45+xIJiE+HAhQXEDX8zTAQDz8E+oXPqMkd1RdRskEskJlECJ0siAYUx+YqSSGXk9vr50lboCy/cygzXSjopna+NDCJPNIOsaZIWz3JVCLFVSCeu9WmTgw3+mg7Oa1kmtu9I2jbVCkF7Yz1SxKckG9J6Csql154W/qmw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH 2/6] conf: Introduce acpi-generic-initiator device Date: Wed, 2 Apr 2025 10:25:33 +0200 Message-ID: <20250402082709.538777-3-arighi@nvidia.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250402082709.538777-1-arighi@nvidia.com> References: <20250402082709.538777-1-arighi@nvidia.com> X-ClientProxiedBy: MI1P293CA0009.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:2::6) To CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY5PR12MB6405:EE_|SJ2PR12MB9139:EE_ X-MS-Office365-Filtering-Correlation-Id: 86c53835-d0fc-4e3b-c4be-08dd71c0386d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ifAFSY9yKeYaZ9KhlJ2wCGoYY88Jq/N0Y6tv8xDh6QjMpBHdQk5FqLDa4m91?= =?us-ascii?Q?ePBn3iEGq399+XcGjSLs2hYQu/QR9Vubn+aeC5FpbO/qJPF7VBwGEpFzynFT?= =?us-ascii?Q?wWzn10byt5MdTd9t3a6OPAzZW9gnLXzHJzFUobYAkCDME4cT5BRsNE6ijDdC?= =?us-ascii?Q?RF2CIqAEWOfXail6N/QV3w31341SstSF4HB31fQKp9MNBkUz/6OHN4JxTsI/?= =?us-ascii?Q?mLYda8gUuLAcbKalY69tj1HXYhB2iINL0425FZ3HzSEcBbh0a5gw4EOMSAPZ?= =?us-ascii?Q?3OXyXGYXODVft9KHWTIkKeu816lTNChRB+H0kknxsXyoszAuPx/NnOwrl52l?= =?us-ascii?Q?U9MhVJRoHTcZeR+ZHIJYl0VsaREmRKzPjNUJ2YJwBKn5WwtdB5JC/kH1Vd6G?= =?us-ascii?Q?6kAXwbjEnqT9TFTk1GOTNvZ08ZpTTPDByMe5B4PAGK7ZMlF9PW0gg9cG4rKr?= =?us-ascii?Q?Yccc27RYh9PLA4Ppqik9PnKXkXuommSc12AkAgV3f7WITbaf2zkMti758ept?= =?us-ascii?Q?yVADKuSwEYxn+GhurhpDAHRMCYkSm0FHILhM+7TJeQF/jp/pcqgLtIIZ9i+E?= =?us-ascii?Q?Q+W7TYlmf31e47/skm88ew2ekbDZIsxge4QOEhPOwwlCYEfVbeUsD8o/YQA9?= =?us-ascii?Q?Dd+EIHEDrEo1IHoaEqX/TORgDf/uooqPwTxt9TS+otrDGorXPfLg0yQ1EeuS?= =?us-ascii?Q?kqoPMTyq3rZ4Gj/eqcbcU9smnn/VmFQQxJ6XfwY+yWbOT0Bd7ltV3m10j72t?= =?us-ascii?Q?4ZW7izfTCi/Wn8dTk6WOCxjmMvEG8T/EJvomTTXCtYDTipCZn+o/1eJJyrmU?= =?us-ascii?Q?dkA+kdpQzTpEjFYOpLGLOKmGdflJsQsB59NtpV5RS5KNzh1wplSfs8J8Yaku?= =?us-ascii?Q?DHjzGsqcsRPps0w4NLk+ZgkGoF2xMFu9O5rdDiVcoZqMHaUuyzpRIlfaEP6w?= =?us-ascii?Q?F1jO5uJ1Mn4i3s7ZgQIYgYAQ+mNPsJ98/BPpk15tod1fbTX/T5FT0GjDOm6+?= =?us-ascii?Q?J8qPGoGaF+zBxIovB3xR1x9KN4aDiUSGoVapV/arudjF8SHW5L/v64YZg02B?= =?us-ascii?Q?pwd+yOrNQ3ldRgrg+8NJiU9MkqGY3bf/MuDIW5qlRgj7gzusbssBViCQcKlQ?= =?us-ascii?Q?MiMStqj8jIEc1rP6Y7OOg9AupEX5gVdDHab7mWPc/2jR7I2L3f3ppPx0udJG?= =?us-ascii?Q?lMt1IGLfhO17fr4LO0lwYWPK3FgwX3ldhRgE3pAZsKcacn8zCdiF2aOh88qm?= =?us-ascii?Q?EBP/LHFYyvAc8OKvch5OgAYz3NnBRcHRCXNdC5S97sD22NtlU/CbT4EQBjwk?= =?us-ascii?Q?bVBDAcmxEP3ToBU/+q2ERDpDub1ZFLcLEUPQQVzAHXYOM1XNGCdRrErRKdRN?= =?us-ascii?Q?eWYIhdITjyNomwD0ySTEohIZ1jyn?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY5PR12MB6405.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GQowO/ZZwB4v88Zx4Q8kGxlqdxMgd1w1Vumc/aUMEyVbBig7KCYuUgHbHeMe?= =?us-ascii?Q?6zDsIkUVk+x6R37TsJCkP9IqgCZTzPYjFJqHN/gx4Gs9ObNfMPvPMPf/wcq7?= =?us-ascii?Q?3Bv8JZuf+MhO/uaslyxxUezpsHTAvHnb4r3f0yphXVo90fCxZydfjKyu1PIq?= =?us-ascii?Q?3a0IsKDIh5yjObPXexqAUVUJmvpnyf+BEfZev+CHbqsh4VbKFvxFCjNop7e9?= =?us-ascii?Q?XrZ41VENv7IIBlL4lYG/ROEvgtKSM5kn1ru8ksupkW4cxWQCviv5IszbDkNy?= =?us-ascii?Q?Z1l1hRmkMvWnYKr+NyUNxBoQ1H6LvawLaL5dJ8M+32fQc0fwD6cXsCd/F03I?= =?us-ascii?Q?RuXqF8ZHICQmlrrYKh7J7VMugPwzuLWCanMDh+dklJTG9qig6c0syG0iqNO9?= =?us-ascii?Q?OO3UFDb9++57UJI51EjJwFEUKTUOK4Qi+/HvvZy75a5whULcMvO1M9mrvEYL?= =?us-ascii?Q?GQdWvvhPxnJwVeVrhioml0HBTgbEN3Xt0kKCJztlhqkTbEEDut84yij0l6wb?= =?us-ascii?Q?l0IxNaynzDytL0mWC0JfqGEhDqKpyhCNlmvXTGWyB2xERRyNK5oTFFyBfFjY?= =?us-ascii?Q?WdwGg7Qr3vgYqInkNSpk05dcZwOUJY2mSLqbxY2ZwVJmbmucOUwPVPMI+8nS?= =?us-ascii?Q?hJvZI+SHKXqKjyWMmAqR+LXXBlfhX2JQMdqot6cT6yS79Z/saavhEp0zzUBk?= =?us-ascii?Q?xhCO9nz7PBFXRroGkUP/wnQdU+hF5wfJ3VqtJDP9OVYTfzdJj51P6vCzr/Z0?= =?us-ascii?Q?FAVdvZfGpSwGeyrF/JWqh8Ed8344ybiEhPGvdnjPiz578H5JZvygF5ln6rtB?= =?us-ascii?Q?21zVNitqqevEt/y3/+qDAIiQHeb+eD8r7bzUdZNMjPxwB8jSyZkUuZI9tKZa?= =?us-ascii?Q?BOC8i9Nug4s9nnlAUU6m3EPiFx6Z6tFG1ceos1fpAeLLJElsA0f9BUGZpLlR?= =?us-ascii?Q?1r6fPzhDWnvsq0+mkLRfXGevGz7Nzh/Aw7vHSgTIQSQdhOcrHxsiqTN7wcFX?= =?us-ascii?Q?ku+lBvARdZlXv1zSIi/mrUqKErkucG/3K4yHrGGQOanM4Vt4bvCJ4q/sOVLx?= =?us-ascii?Q?qMap0yIG5tduXPTb26nCwdn7r8wmQP61CtKxnvXaEyW21IfBLNuP8zIOdelF?= =?us-ascii?Q?YEwzhHsbAOlTwT23Mth2jyMJXcr0PtSggkdNvP2e7eHunchqfpnW1btT2j3F?= =?us-ascii?Q?mKB0uB7v0O9thiy7i9lmuckOlxdokagWlpHDdabm+ilcv3JscKIwvW5Uuq2d?= =?us-ascii?Q?t1A28jwiSfPMZbdEDyRg3gggDCY87+Qq2pwma8lRmFCFx/sbsLZemH2TPFAX?= =?us-ascii?Q?J/HynCiOb4dCzC1S+R3K95zt1QkXPuH73bCxpkBAUbDh8mn4sUHFzLrS2a4W?= =?us-ascii?Q?wADFQheFesM1pooad4d4ZhB0E3XZ8l7xjXo2UJxtwgd05ekH/aA8ziAxfUQh?= =?us-ascii?Q?NS7GM1Gr5Zvw4YTvh7xaIS5o02oxTdtD2qNPDg6vrjodt8NXGFYN+IjBLSZD?= =?us-ascii?Q?u6vafbx+LUGlpjpyHGGeBHfOtlL0cFLqiOkQ5BHovjGc3aYwo8f5FM7nTSPR?= =?us-ascii?Q?T6xuWLRyGvSy1b1SdvclAMMghOKx2C1Yd3ch9Qs/?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86c53835-d0fc-4e3b-c4be-08dd71c0386d X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:27:35.6379 (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: QtwpbLKCxnMvC1oLb/UkvSp3n5J7CmjBKVpeCnqwl8HFlQUJg9qXZhDr8xcKVFZ2CtTqkHJwO9IKqSHlwRQw7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9139 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: KEWEXMZDWBGGDSJTJVAKSIL2N7LEGQDL X-Message-ID-Hash: KEWEXMZDWBGGDSJTJVAKSIL2N7LEGQDL X-MailFrom: arighi@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Righi via Devel Reply-To: Andrea Righi X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743582581659019100 Content-Type: text/plain; charset="utf-8" Introduce apci-generic-initiator device to the domain XML. Example definition: dev0 1 This enables partitioning of PCI resources into multiple isolated instances, each requiring a dedicated NUMA node definition, that can be represented by the acpi-generic-initiator object. Signed-off-by: Andrea Righi --- src/ch/ch_domain.c | 1 + src/conf/domain_conf.c | 133 ++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 1 + src/conf/domain_postparse.c | 1 + src/conf/domain_validate.c | 37 +++++++++ src/conf/schemas/domaincommon.rng | 2 +- src/libxl/libxl_driver.c | 6 ++ src/lxc/lxc_driver.c | 6 ++ src/qemu/qemu_command.c | 1 + src/qemu/qemu_domain.c | 2 + src/qemu/qemu_domain_address.c | 4 + src/qemu/qemu_driver.c | 3 + src/qemu/qemu_hotplug.c | 5 ++ src/qemu/qemu_postparse.c | 1 + src/qemu/qemu_validate.c | 1 + src/test/test_driver.c | 4 + 16 files changed, 207 insertions(+), 1 deletion(-) diff --git a/src/ch/ch_domain.c b/src/ch/ch_domain.c index a08b18c5b9..f88ce32803 100644 --- a/src/ch/ch_domain.c +++ b/src/ch/ch_domain.c @@ -162,6 +162,7 @@ chValidateDomainDeviceDef(const virDomainDeviceDef *dev, case VIR_DOMAIN_DEVICE_CONTROLLER: case VIR_DOMAIN_DEVICE_CHR: case VIR_DOMAIN_DEVICE_HOSTDEV: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: break; =20 case VIR_DOMAIN_DEVICE_LEASE: diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 405f0207e9..2294ad42bf 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -342,6 +342,7 @@ VIR_ENUM_IMPL(virDomainDevice, "audio", "crypto", "pstore", + "acpiinitiator", ); =20 VIR_ENUM_IMPL(virDomainDiskDevice, @@ -3727,6 +3728,9 @@ void virDomainDeviceDefFree(virDomainDeviceDef *def) case VIR_DOMAIN_DEVICE_PSTORE: virDomainPstoreDefFree(def->data.pstore); break; + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: + virDomainAcpiInitiatorDefFree(def->data.acpiinitiator); + break; case VIR_DOMAIN_DEVICE_LAST: case VIR_DOMAIN_DEVICE_NONE: break; @@ -4705,6 +4709,8 @@ virDomainDeviceGetInfo(const virDomainDeviceDef *devi= ce) return &device->data.crypto->info; case VIR_DOMAIN_DEVICE_PSTORE: return &device->data.pstore->info; + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: + return device->data.acpiinitiator->info; =20 /* The following devices do not contain virDomainDeviceInfo */ case VIR_DOMAIN_DEVICE_LEASE: @@ -4813,6 +4819,9 @@ virDomainDeviceSetData(virDomainDeviceDef *device, case VIR_DOMAIN_DEVICE_PSTORE: device->data.pstore =3D devicedata; break; + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: + device->data.acpiinitiator =3D devicedata; + break; case VIR_DOMAIN_DEVICE_NONE: case VIR_DOMAIN_DEVICE_LAST: break; @@ -5038,6 +5047,13 @@ virDomainDeviceInfoIterateFlags(virDomainDef *def, return rc; } =20 + device.type =3D VIR_DOMAIN_DEVICE_ACPI_INITIATOR; + for (i =3D 0; i < def->nacpiinitiator; i++) { + device.data.acpiinitiator =3D def->acpiinitiator[i]; + if ((rc =3D cb(def, &device, def->acpiinitiator[i]->info, opaque))= !=3D 0) + return rc; + } + /* If the flag below is set, make sure @cb can handle @info being NULL= */ if (iteratorFlags & DOMAIN_DEVICE_ITERATE_MISSING_INFO) { device.type =3D VIR_DOMAIN_DEVICE_GRAPHICS; @@ -5098,6 +5114,7 @@ virDomainDeviceInfoIterateFlags(virDomainDef *def, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: break; } #endif @@ -13685,6 +13702,65 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xm= lopt, } =20 =20 +static virDomainAcpiInitiatorDef * +virDomainAcpiInitiatorDefParseXML(virDomainXMLOption *xmlopt, + xmlNodePtr node, + xmlXPathContextPtr ctxt, + unsigned int flags) +{ + virDomainAcpiInitiatorDef *def; + g_autofree char *tmp =3D NULL; + + VIR_XPATH_NODE_AUTORESTORE(ctxt) + + ctxt->node =3D node; + + def =3D virDomainAcpiInitiatorDefNew(); + + def->name =3D virXPathString("string(./alias/@name)", ctxt); + if (!def->name) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("missing initiator name")); + goto error; + } + + def->pciDev =3D virXPathString("string(./pci-dev)", ctxt); + if (!def->pciDev) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("missing initiator pci-dev")); + goto error; + } + + tmp =3D virXPathString("string(./numa-node)", ctxt); + if (tmp) { + if (virStrToLong_i((const char *)tmp, NULL, 10, &def->numaNode) < = 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("invalid value for numa-node: '%1$s'"), tmp); + goto error; + } + } else { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("missing initiator numa-node")); + goto error; + } + + if (def->info->type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) { + if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, def->info, + flags) < 0) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("failed to parse device information")); + goto error; + } + } + + return def; + + error: + virDomainAcpiInitiatorDefFree(def); + return NULL; +} + + static virDomainRedirdevDef * virDomainRedirdevDefParseXML(virDomainXMLOption *xmlopt, xmlNodePtr node, @@ -14686,6 +14762,12 @@ virDomainDeviceDefParse(const char *xmlStr, return NULL; } break; + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: + if (!(dev->data.acpiinitiator =3D virDomainAcpiInitiatorDefParseXM= L(xmlopt, node, + = ctxt, flags))) { + return NULL; + } + break; case VIR_DOMAIN_DEVICE_NONE: case VIR_DOMAIN_DEVICE_LAST: break; @@ -20095,6 +20177,23 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, } VIR_FREE(nodes); =20 + /* analysis of the acpi generic initiator */ + if ((n =3D virXPathNodeSet("./devices/acpi-generic-initiator", ctxt, &= nodes)) < 0) + return NULL; + + def->acpiinitiator =3D g_new0(virDomainAcpiInitiatorDef *, n); + + for (i =3D 0; i < n; i++) { + virDomainAcpiInitiatorDef *acpiinitiator; + + acpiinitiator =3D virDomainAcpiInitiatorDefParseXML(xmlopt, nodes[= i], ctxt, flags); + if (!acpiinitiator) + return NULL; + + def->acpiinitiator[def->nacpiinitiator++] =3D acpiinitiator; + } + VIR_FREE(nodes); + /* analysis of the user namespace mapping */ if ((n =3D virXPathNodeSet("./idmap/uid", ctxt, &nodes)) < 0) return NULL; @@ -21024,6 +21123,17 @@ virDomainHostdevDefCheckABIStability(virDomainHost= devDef *src, } =20 =20 +static bool +virDomainAcpiInitiatorDefCheckABIStability(virDomainAcpiInitiatorDef *src, + virDomainAcpiInitiatorDef *dst) +{ + if (!virDomainDeviceInfoCheckABIStability(src->info, dst->info)) + return false; + + return true; +} + + static bool virDomainSmartcardDefCheckABIStability(virDomainSmartcardDef *src, virDomainSmartcardDef *dst) @@ -22372,6 +22482,12 @@ virDomainDefCheckABIStabilityFlags(virDomainDef *s= rc, goto error; } =20 + for (i =3D 0; i < src->nacpiinitiator; i++) { + if (!virDomainAcpiInitiatorDefCheckABIStability(src->acpiinitiator= [i], + dst->acpiinitiator= [i])) + goto error; + } + if ((!src->redirfilter && dst->redirfilter) || (src->redirfilter && !dst->redirfilter)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, @@ -22542,6 +22658,7 @@ virDomainDefCheckABIStabilityFlags(virDomainDef *sr= c, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: break; } #endif @@ -28762,6 +28879,18 @@ virDomainPstoreDefFormat(virBuffer *buf, return 0; } =20 +static void +virDomainAcpiInitiatorDefFormat(virBuffer *buf, + virDomainAcpiInitiatorDef *acpiinitiator) +{ + g_auto(virBuffer) childBuf =3D VIR_BUFFER_INIT_CHILD(buf); + + virBufferEscapeString(&childBuf, "\n", acpiiniti= ator->name); + virBufferEscapeString(&childBuf, "%s\n", acpiinitia= tor->pciDev); + virBufferAsprintf(&childBuf, "%d\n", acpiinitia= tor->numaNode); + + virXMLFormatElement(buf, "acpi-generic-initiator", NULL, &childBuf); +} =20 int virDomainDefFormatInternal(virDomainDef *def, @@ -29246,6 +29375,9 @@ virDomainDefFormatInternalSetRootName(virDomainDef = *def, if (def->pstore) virDomainPstoreDefFormat(buf, def->pstore, flags); =20 + for (n =3D 0; n < def->nacpiinitiator; n++) + virDomainAcpiInitiatorDefFormat(buf, def->acpiinitiator[n]); + virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "\n"); =20 @@ -29406,6 +29538,7 @@ virDomainDeviceIsUSB(virDomainDeviceDef *dev, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: break; } =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 9ee7ecfc4d..5061d39662 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -88,6 +88,7 @@ typedef enum { VIR_DOMAIN_DEVICE_AUDIO, VIR_DOMAIN_DEVICE_CRYPTO, VIR_DOMAIN_DEVICE_PSTORE, + VIR_DOMAIN_DEVICE_ACPI_INITIATOR, =20 VIR_DOMAIN_DEVICE_LAST } virDomainDeviceType; diff --git a/src/conf/domain_postparse.c b/src/conf/domain_postparse.c index bf33f29638..acdfbdc679 100644 --- a/src/conf/domain_postparse.c +++ b/src/conf/domain_postparse.c @@ -757,6 +757,7 @@ virDomainDeviceDefPostParseCommon(virDomainDeviceDef *d= ev, case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_PSTORE: ret =3D 0; break; diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index d0d4bc0bf4..0d40092e9f 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2375,6 +2375,40 @@ virDomainHostdevDefValidate(const virDomainHostdevDe= f *hostdev) } =20 =20 +static int +virDomainAcpiInitiatorDefValidate(const virDomainDef *def, + const virDomainAcpiInitiatorDef *acpiini= tiator) +{ + const size_t nodeCount =3D virDomainNumaGetNodeCount(def->numa); + + if (!nodeCount) { + virReportError(VIR_ERR_XML_DETAIL, "%s", + _("No NUMA node defined")); + return -1; + } + + if (acpiinitiator->numaNode >=3D nodeCount) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("invalid acpi-generic-initiator NUMA node %1$u"), + acpiinitiator->numaNode); + return -1; + } + + if (acpiinitiator->name[0] =3D=3D '\0') { + virReportError(VIR_ERR_XML_DETAIL, "%s", + _("acpi-generic-initiator must have a name")); + return -1; + } + + if (acpiinitiator->pciDev[0] =3D=3D '\0') { + virReportError(VIR_ERR_XML_DETAIL, "%s", + _("acpi-generic-initiator must have a PCI device as= signed")); + return -1; + } + + return 0; +} + /** * virDomainMemoryGetMappedSize: * @mem: memory device definition @@ -3293,6 +3327,9 @@ virDomainDeviceDefValidateInternal(const virDomainDev= iceDef *dev, case VIR_DOMAIN_DEVICE_PSTORE: return virDomainPstoreDefValidate(dev->data.pstore); =20 + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: + return virDomainAcpiInitiatorDefValidate(def, dev->data.acpiinitia= tor); + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_WATCHDOG: case VIR_DOMAIN_DEVICE_HUB: diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index d3ffc2865c..0352f12028 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -7718,7 +7718,7 @@ - + diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 0fb256e5c0..bc3f25b3cb 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -3492,6 +3492,7 @@ libxlDomainAttachDeviceLive(libxlDriverPrivate *drive= r, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("device type '%1$s' cannot be attached"), virDomainDeviceTypeToString(dev->type)); @@ -3596,6 +3597,7 @@ libxlDomainAttachDeviceConfig(virDomainDef *vmdef, vi= rDomainDeviceDef *dev) case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("persistent attach of device is not supported= ")); return -1; @@ -3965,6 +3967,7 @@ libxlDomainDetachDeviceLive(libxlDriverPrivate *drive= r, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("device type '%1$s' cannot be detached"), virDomainDeviceTypeToString(dev->type)); @@ -4056,6 +4059,7 @@ libxlDomainDetachDeviceConfig(virDomainDef *vmdef, vi= rDomainDeviceDef *dev) case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("persistent detach of device is not supported= ")); return -1; @@ -4119,6 +4123,7 @@ libxlDomainUpdateDeviceLive(virDomainObj *vm, virDoma= inDeviceDef *dev) case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("device type '%1$s' cannot be updated"), virDomainDeviceTypeToString(dev->type)); @@ -4182,6 +4187,7 @@ libxlDomainUpdateDeviceConfig(virDomainDef *vmdef, vi= rDomainDeviceDef *dev) case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("persistent update of device is not supported= ")); return -1; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 80cf07d2e5..51071958e8 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -3020,6 +3020,7 @@ lxcDomainAttachDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("persistent attach of device is not supported")); break; @@ -3086,6 +3087,7 @@ lxcDomainUpdateDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("persistent update of device is not supported")); break; @@ -3168,6 +3170,7 @@ lxcDomainDetachDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("persistent detach of device is not supported")); break; @@ -3270,6 +3273,7 @@ lxcDomainAttachDeviceMknodHelper(pid_t pid G_GNUC_UNU= SED, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_INTERNAL_ERROR, _("Unexpected device type %1$d"), data->def->type); @@ -3946,6 +3950,7 @@ lxcDomainAttachDeviceLive(virLXCDriver *driver, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("device type '%1$s' cannot be attached"), virDomainDeviceTypeToString(dev->type)); @@ -4364,6 +4369,7 @@ lxcDomainDetachDeviceLive(virLXCDriver *driver, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("device type '%1$s' cannot be detached"), virDomainDeviceTypeToString(dev->type)); diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 86eb52f197..f5e6e25956 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -985,6 +985,7 @@ qemuBuildVirtioDevGetConfigDev(const virDomainDeviceDef= *device, case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: default: break; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e45eef4787..da61dcc37a 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -8768,6 +8768,7 @@ qemuDomainPrepareChardevSourceOne(virDomainDeviceDef = *dev, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: break; } =20 @@ -10700,6 +10701,7 @@ qemuDomainDeviceBackendChardevForeachOne(virDomainD= eviceDef *dev, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: /* no chardev backend */ break; } diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index e89cdee487..573bbc282c 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -471,6 +471,7 @@ qemuDomainDeviceSupportZPCI(virDomainDeviceDef *device) case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: break; =20 case VIR_DOMAIN_DEVICE_NONE: @@ -819,6 +820,9 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDevic= eDef *dev, return pciFlags; } =20 + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: + return pciFlags; + case VIR_DOMAIN_DEVICE_MEMBALLOON: switch (dev->data.memballoon->model) { case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO_TRANSITIONAL: diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 6ce949dd07..8a5cb6c5fe 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6899,6 +6899,7 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("persistent attach of device '%1$s' is not suppo= rted"), @@ -7118,6 +7119,7 @@ qemuDomainDetachDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("persistent detach of device '%1$s' is not suppor= ted"), @@ -7244,6 +7246,7 @@ qemuDomainUpdateDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("persistent update of device '%1$s' is not suppor= ted"), diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 9977662a2c..f7fa65084d 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3538,6 +3538,7 @@ qemuDomainAttachDeviceLive(virDomainObj *vm, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("live attach of device '%1$s' is not supported"), @@ -5508,6 +5509,7 @@ qemuDomainRemoveAuditDevice(virDomainObj *vm, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: /* libvirt doesn't yet support detaching these devices */ break; @@ -5613,6 +5615,7 @@ qemuDomainRemoveDevice(virQEMUDriver *driver, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("don't know how to remove a %1$s device"), @@ -6508,6 +6511,7 @@ qemuDomainDetachDeviceLive(virDomainObj *vm, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("live detach of device '%1$s' is not supported"), @@ -7499,6 +7503,7 @@ qemuDomainUpdateDeviceLive(virDomainObj *vm, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("live update of device '%1$s' is not supported"), diff --git a/src/qemu/qemu_postparse.c b/src/qemu/qemu_postparse.c index ed4af9ca8e..a6f610265e 100644 --- a/src/qemu/qemu_postparse.c +++ b/src/qemu/qemu_postparse.c @@ -906,6 +906,7 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDef *dev, case VIR_DOMAIN_DEVICE_RNG: case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: ret =3D 0; break; =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index b2c3c9e2f6..bfd3115a63 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5605,6 +5605,7 @@ qemuValidateDomainDeviceDef(const virDomainDeviceDef = *dev, case VIR_DOMAIN_DEVICE_PSTORE: return qemuValidateDomainDeviceDefPstore(dev->data.pstore, def, qe= muCaps); =20 + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_NONE: diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 6f18b2b2c8..5c706a1035 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -10459,6 +10459,7 @@ testDomainAttachDeviceLive(virDomainObj *vm, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("live attach of device '%1$s' is not supported"), @@ -10602,6 +10603,7 @@ testDomainUpdateDevice(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("persistent update of device '%1$s' is not suppor= ted"), @@ -10973,6 +10975,7 @@ testDomainRemoveDevice(testDriver *driver, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("live detach of device '%1$s' is not supported"), @@ -11044,6 +11047,7 @@ testDomainDetachDeviceLive(testDriver *driver, case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("live detach of device '%1$s' is not supported"), --=20 2.49.0 From nobody Tue May 5 08:46:48 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; 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 (BodyHash is different from the expected one); 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 174358261359042.429652347918136; Wed, 2 Apr 2025 01:30:13 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 934AE1395; Wed, 2 Apr 2025 04:30:12 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 48CE81442; Wed, 2 Apr 2025 04:28:14 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 6DDB8140B; Wed, 2 Apr 2025 04:28:09 -0400 (EDT) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2051.outbound.protection.outlook.com [40.107.243.51]) (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 2400C14A2 for ; Wed, 2 Apr 2025 04:27:47 -0400 (EDT) Received: from CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) by SJ2PR12MB9139.namprd12.prod.outlook.com (2603:10b6:a03:564::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Wed, 2 Apr 2025 08:27:44 +0000 Received: from CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5]) by CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5%6]) with mapi id 15.20.8534.043; Wed, 2 Apr 2025 08:27:44 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PlTrbIiNQTcg2Alp/EKgE2xIXuFro2hjAtPIURsRSxMAdLC/8tVNrF/J+RHlQxusxJLA6+RdMf5jQcfObOb5D/znWsJ1v179guilK+JUm53YdcTqvi68C3OeDjPObK73V3TxBJKghtcvHN7R7no0rFGd55GsZNo8ciIKV0yL2FF4fVJqGBP1vL03uRthYSzRl/8e6afI5NPRW7PDjh4FKYtBSTJCmhsprBSimnZNDB17i/k7sywXt06gEZKyZOnYbByFBacfehW8Pkd4Go9uGZV8qhtyBO8ZSprNPR2326cCq2G1XliesJQhwGkxFS0wtSku3Gr1yD1QimYoUcgmdg== 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=VETQqEGWOnBfEToUQl+DUpEdibckvKCKjNm4gAdR+Ug=; b=BzeIAjwgmvjwhpgkxtdfCkoEvpd5EHve2EpEarY2i3FyLXO0AriR6AWhVKnppYWihbJdHAPHjlt8qfJpGKzWkyS45LCbrrWVvNlmkQSambZGd9zXjEq5iPcM+dbdZxgayIvVXO6ZYyvf9vnjwZn3sLpk9HWzz1n3mUNwuR2zqe9No01i2sdtG1F5DMrY47eRR7wAOVp9btMGmrk+iUNHvLk+yJhAeSGz36vyK3NwaRuqulsgJs5PzlpbtnA51IA+mVjgns1CoBnuYmj1lCKhjwgC6QEjEcJaNxdoWeGCmE45jiq5BYbowLCoUxCvH2M67McmKPd7n5/Ql6dE6K4ucQ== 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=VETQqEGWOnBfEToUQl+DUpEdibckvKCKjNm4gAdR+Ug=; b=b8DysFUuqRJX+fvv/437gQiAEAbwbVpHi4kSuQs7jPSoPaGUkq50EVWjcnCjx/jgk7xkM4dlDZBtH7cX8Rj5NyXQ7H7DLEnIiUUsl3/6sMhVWXHOhKX3HTtVWmpm6tHhRNTgndgvxklONMaYy7L5PiobAK59y5hndJez1QCRPRMOMW5gDhiITPKw8yTEUO+eUqjpUQCS3tvt42HNNzkj8bzwj5gCrG72JIs3m7/6zzKrtKfaSxagk/1AUoQqI/XJp3gPboz6d1+7kAhnd0JwYxUQxw7EOGy7ojMTgfqyK6R7ItKqsUsazZ3ET/e9Ny1qtQgYmhurzDHKuQilRdWJ5Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH 3/6] qemu: Allow to define NUMA nodes without memory or CPUs assigned Date: Wed, 2 Apr 2025 10:25:34 +0200 Message-ID: <20250402082709.538777-4-arighi@nvidia.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250402082709.538777-1-arighi@nvidia.com> References: <20250402082709.538777-1-arighi@nvidia.com> X-ClientProxiedBy: ZR0P278CA0132.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:40::11) To CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY5PR12MB6405:EE_|SJ2PR12MB9139:EE_ X-MS-Office365-Filtering-Correlation-Id: 79949dba-ef49-4931-6da1-08dd71c03dcd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?JfQTHhdWHieD5c+qHeKhyyAYWt6RMbuVspSuxi+sbYLANzHINbZdIkkbvXqq?= =?us-ascii?Q?HYo42ME15/pQsT5ezrINeOSzIKURYDQclCFSKa81uSS54kzx+80EqJbQKPDc?= =?us-ascii?Q?IaZqQZZxngXlrcSdU5bHl95Xr3PpGZJZoeQVQ/qcgMlTMmfbA1nN9vww3p7N?= =?us-ascii?Q?K/rdI74eT4KM1O23LGKj6mYtm8nfi7jLmkfElQRFSaU39TPxCsvYkNjVluZo?= =?us-ascii?Q?rnSnf9PXINoxZoyOK/SHM5I7eoA/1jB4sxvVAZldK3iEZQkwYbD5/gH5Ocj8?= =?us-ascii?Q?qCFrbKlFb2EXNQAjMxsQ6oN933WDhN4+8m3Gw7OolOCIL2KDBmlTcfgcj7Sy?= =?us-ascii?Q?vxkivZl/02CjCyYPHJaoLAhbkkCXqUVHWU15UindcSmOOaMAHE7vw3Zed8M2?= =?us-ascii?Q?NV8/OLbESzzzhRrYFrsP6zagFa039AhIYhYs2J/tYKARGTpIHXqMyvn9VOJ/?= =?us-ascii?Q?RwSSLTlDXqyv3S5cuHvaA5gFeq52UnWC+52+wn7/Pwb30cxBE2+iXYhWx6Nn?= =?us-ascii?Q?oKMEkdG4aj4mtJPpq/GzgZrmV9aoDTZpRD2nyzRGi4iutPzXfYpmistIMg0L?= =?us-ascii?Q?hDtmZpx1ZtDi6+6eN/4hu96JFbdN2PKgytkBcIwUfVxNZAIUAt20quwqQuQu?= =?us-ascii?Q?0ssgZb4Bt0Kxngk9v7dkYQ+qXdWsjGteZN1B74bzwdiCx2/e8Xn7b4H6nHN/?= =?us-ascii?Q?++TtpVhmtiIWak7u9CJy59rMX7hZgUawq69P1DUieuni1YaMYr1/oiEBc6vj?= =?us-ascii?Q?RZ3eVSk8bVATnqxKx05ZhmuV3q6cYr0Bg9bc0o1lbpjKvsp+D33tdFLdtnFT?= =?us-ascii?Q?KkLwHIaBXZDyskql1U3esfCHQJ0JuY14g9eMb/bB29aFn2zp+A5Y+taz9qiQ?= =?us-ascii?Q?zQ7ofGjHZ1NUP2Ypxiagc3RzcsHAArNd84ubYRLpEJbdfCoWlXoaPsz2rFXb?= =?us-ascii?Q?W00HEWT+7M6I/W3ErLTvlqcvoXgYO1HRFLrs2qobEKc1MMyAye+gekNJq9j+?= =?us-ascii?Q?2mCb60qBwtDGgBkkoSL9PmzR6zMUNjPYXKc2fyMfI79HdbM1WNrIMbX9lKn/?= =?us-ascii?Q?pJrKoMdJEnBJO2yDeNHHZeIuOpnQM86PD6n5tSXyF0zF0QDWIP9K5XyVLjnM?= =?us-ascii?Q?RpAyWGUc1fThxBh2mnC8ZCUCfdF62JBvsmb5rD68tvN8r5qIRD7EN4mHbaje?= =?us-ascii?Q?AsMWbUnDOgEYwdS915VaiIdpImp4olGCTmCNGzgV6Ulk/XYdj75Npp7tGOc/?= =?us-ascii?Q?qfR3qkLzEJ8O8zE1lhCn7VnAxa+k3mSHMPJeQcp1A6pXC6Z+cXnXzVlnPy+M?= =?us-ascii?Q?whuz2ee/FhcmyeQHlhMo6Dl+Il2pGrpDW6W1n1Oy9pe3iAeg7dHPwwkUXBoc?= =?us-ascii?Q?dz1ELdwmHe3HBaA2XfIejDwM/OQl?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY5PR12MB6405.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jujl04BiJD7b/hUQVutdQ+O2cbcVJgOXM/g8A3ggywVJXbRC4V8Kbq3rdVA4?= =?us-ascii?Q?gPlWA3kjJkr1SKf4tF+UzKb83lcAiUOKFNleKtJNnFK3Ky6X/3QblsFttxm8?= =?us-ascii?Q?zEYPFncn9Lu6pYxbMtASVpOFPmm5GIcP99tq+PrKrADYE2jVvs+vIxmCOg4c?= =?us-ascii?Q?Y3C9gqXCn5TF3G8UGaps62v2ZTi88pJnTw6CWSZaASjoPB1xsYvYIupbAE96?= =?us-ascii?Q?t0NLEOZz6qv7TE4fhDk8LpAAPOK5nozfw3nW3+fWdwJKAweoffqZuTs3i3nD?= =?us-ascii?Q?BZBpVNoAGdCY5t06qrdLr8pWnDF/as2+PCOPpngEUHtjMR3Ap5wXwnxlKfDr?= =?us-ascii?Q?CJsGLvVeHcFIz+yC5YlflN63OAGvvzFkTJDB8YO8mx8ToqsrVNN/uX9FkkW4?= =?us-ascii?Q?zMK16Wh8qGaoT5gsygcO4IYMK361fw4Ezlm6LRL+boUpeamyEKtu+7LTeVDL?= =?us-ascii?Q?VQgHANktkvxSA/XUziUCAHPvxYmyrax0U4yDITKw0HmAJXP3ccqAi4uGsDn6?= =?us-ascii?Q?gQQfzpohL/YLJikZiq/HiN2OzuPS18SC/cgscS57mS1v1EMu69qVfay8etfd?= =?us-ascii?Q?GKdmRABt0SYwZrBfd5jt1K6xspVh43F2kqwX/TfhdfTp3DRxqcywIy7HklSt?= =?us-ascii?Q?/yb0e4plQkFmH+Eu+Y2/7qUZvObJliXILR5sgUvm8z4neNk10rmUnt0WIfl7?= =?us-ascii?Q?wud93+PTowBZwXPbS6L9hB4nxijz+rbOxosUD6OJKduRhUGagmMsSGqkIlSo?= =?us-ascii?Q?JM7qrfK2d1qlT2gyqY3Yr64UAQYxLt3QqOO4sQi/gRFMo5WaQDxc3uc6tg+V?= =?us-ascii?Q?2xPScBbhT1IUXux2vFVU/h9+2LasbTUL4Bhrq+IslkshbE+jqLaygK24CPrw?= =?us-ascii?Q?a+blx++ZrLB3gRbD04yAFZIl8eH0fwqMPeNNY8i7K9ACglstZNkOeVic+VOz?= =?us-ascii?Q?7o5P0YJA5IKQHUyYMs7AcyeN8Pxj4M2G+zlIZGgtXozHWJun/phKoCZ38oeS?= =?us-ascii?Q?pwfDtttQ4Poh+56SeQ+xbKTbmQP/AGvrd6uT2AMyOosu8Upn35Vw7xoKyI0H?= =?us-ascii?Q?CKh+O4HapYbPUauGDz7x/oD6Ojk8jqjfOUelplfS3lpcpVso0AkTUn/rj9oI?= =?us-ascii?Q?/5L9scBWoBRXNj4+bmZLmHACqTGS+xv0qA3kXb+M7KOUmg5PvT5N5e5RK8xX?= =?us-ascii?Q?36bHm0YWevla6a3xgzUfA0elKbcSdUrgVUiSG+i1d1v3Vxe2GmmHs6PLMJac?= =?us-ascii?Q?btqkC1PBQBcXlzE4ebO6JuJIcJKXYlgADtQxMfDLnYjzEAgRAun+zDi1gP3W?= =?us-ascii?Q?2yCytIU+2VDZk3v0mxcDomcVV58AFd1tGwKRqfbH3Fut2ewPKKYKK4fqkzOW?= =?us-ascii?Q?ZXYnt31lNQ5UFthjp2aoWg4Xd9bC8QjoILvsz4Ngjg6x7jJg1vMjaHEmexbo?= =?us-ascii?Q?ZF2/Ov9vP4HGjni3ZOKuDdBfCSptBjcQJfp8QjGhmi4dO5NxKfBnyYg8gkdf?= =?us-ascii?Q?KsG4EDrOuJZjGecq4iWpQC+8PAgXLs1alaDB7nFj7jBzX4PmfPOJ1PJiErg3?= =?us-ascii?Q?bC8oyVtij/ATcSpo+Wroi5owAgvvlRIxxjrdHpMh?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79949dba-ef49-4931-6da1-08dd71c03dcd X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:27:44.1763 (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: x3QFc/M2w8orHDB/gyWHSQv5LSLHMkp8VuapRHoBFqW8kSvtKk7udPQGpCcVrCu47mjQB85h2Bpt3Xg1cXZCdQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9139 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: IYS2H5VUQFEYNO4QQKGKP4LQW76TY6AI X-Message-ID-Hash: IYS2H5VUQFEYNO4QQKGKP4LQW76TY6AI X-MailFrom: arighi@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Righi via Devel Reply-To: Andrea Righi X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743582615208019100 Content-Type: text/plain; charset="utf-8" Allow to define NUMA nodes without memory or CPUs assigned to properly support the new acpi-generic-initiator device. This is required because the NUMA nodes passed to the acpi-generic-initiator object must be independent and not be shared with other resources, such as CPU or memory. Signed-off-by: Andrea Righi --- src/conf/numa_conf.c | 3 +++ src/qemu/qemu_command.c | 20 +++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index 00f0c605ee..5b50f3e3f5 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -1492,6 +1492,9 @@ virDomainNumaFillCPUsInNode(virDomainNuma *numa, if (node >=3D virDomainNumaGetNodeCount(numa)) return -1; =20 + if (virDomainNumaGetNodeMemorySize(numa, node) =3D=3D 0) + return 0; + virBitmapSetAll(maxCPUsBitmap); =20 for (i =3D 0; i < numa->nmem_nodes; i++) { diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index f5e6e25956..9f5fa98de1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7651,7 +7651,10 @@ qemuBuildNumaCommandLine(virQEMUDriverConfig *cfg, } } =20 - if (masterInitiator < 0) { + /* HMAT requires a master initiator, so when it's enabled, ensure that + * at least one NUMA node has CPUs assigned. + */ + if (hmat && masterInitiator < 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("At least one NUMA node has to have CPUs")); goto cleanup; @@ -7659,8 +7662,9 @@ qemuBuildNumaCommandLine(virQEMUDriverConfig *cfg, =20 for (i =3D 0; i < ncells; i++) { ssize_t initiator =3D virDomainNumaGetNodeInitiator(def->numa, i); + unsigned long long memSize =3D virDomainNumaGetNodeMemorySize(def-= >numa, i); =20 - if (needBackend) { + if (needBackend && memSize > 0) { g_autoptr(virJSONValue) tcProps =3D NULL; =20 if (qemuBuildThreadContextProps(&tcProps, &nodeBackends[i], @@ -7688,11 +7692,13 @@ qemuBuildNumaCommandLine(virQEMUDriverConfig *cfg, virBufferAsprintf(&buf, ",initiator=3D%zd", initiator); } =20 - if (needBackend) - virBufferAsprintf(&buf, ",memdev=3Dram-node%zu", i); - else - virBufferAsprintf(&buf, ",mem=3D%llu", - virDomainNumaGetNodeMemorySize(def->numa, i)= / 1024); + if (memSize > 0) { + if (needBackend) { + virBufferAsprintf(&buf, ",memdev=3Dram-node%zu", i); + } else { + virBufferAsprintf(&buf, ",mem=3D%llu", memSize / 1024); + } + } =20 virCommandAddArgBuffer(cmd, &buf); } --=20 2.49.0 From nobody Tue May 5 08:46:48 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; 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 (BodyHash is different from the expected one); 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 1743582643136326.6671126563964; Wed, 2 Apr 2025 01:30:43 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 7D4891476; Wed, 2 Apr 2025 04:30:42 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 37822148E; Wed, 2 Apr 2025 04:28:18 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 9693D136E; Wed, 2 Apr 2025 04:28:12 -0400 (EDT) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2079.outbound.protection.outlook.com [40.107.243.79]) (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 A2A3D14A7 for ; Wed, 2 Apr 2025 04:27:51 -0400 (EDT) Received: from CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) by SJ2PR12MB9139.namprd12.prod.outlook.com (2603:10b6:a03:564::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Wed, 2 Apr 2025 08:27:48 +0000 Received: from CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5]) by CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5%6]) with mapi id 15.20.8534.043; Wed, 2 Apr 2025 08:27:48 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=m/rVQOCmQMx3DHvQlHZ1OZKURL/KfpeCvuCyTyFIraZckJqsoTEpqiQ7w4BgBYPcQ35T5PjxTXZybBHY7eE6oEMhUXnCc2GJU0C4OrghUX7x4QTwGozvgQFRhKgym9OqDyTMkwzk8bLNLjgQLWh0iyf/mr0pCE9t0+tmWMrs/FEK5uxNJXcgBizeiFs7Un1RgbH76MdkSKieheTXGDG9xC1KpzGf4MDZ2wWgE3g/cXAgQuvKvKeaPqiHmhwcp82TpvfBUiBQyUIsJZZHWoqsJH97V0QlRoaid1dIqCdzRnXlb5XjbIDA89GFgw2vYOV6yzW27A6zhf8w6PjBaIXL2Q== 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=9CPfDFoepqrUAT7Z4WdwBU/9AyLSaztg8DIPDmCddBw=; b=lkkiLyOT7dC09NmsnWqZdP6MaLy+icBbkurhxlHwNerPizeAODoi82vTAllachsfp/kBSIFUU9KWwoni2U9O98cHcBrTOmQ1KOYP6GfMg9PNE1ukqKjW+jI2zohmiebdWPfR8TVNIlrsy1RGpNr3V8yqWxt7krGb/hNEYNfI+61VyqM35Rz1whvhY9pFron2L3JZZQLfZNg4v691yxCprqItuGEbxXrzp74apVQIn5pmllHGSzVIkdFnhX1jvR/uG35yNKvVHG4pI2O/5BzPs0zzaPdx+KZ+ZWuo7o5zQp4L+4mGY3uC9Fc/bCpxTW4M4j3zHomyTKLG55uIvfS5Jg== 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=9CPfDFoepqrUAT7Z4WdwBU/9AyLSaztg8DIPDmCddBw=; b=iJ57Ebg4fDOoSlRkxhrHkY7/YTZ/QXQBfO8UwAw0BTdvZondW6cWLbSE2bAT+nkdSxJuAb+R/lrKcwSoxsvH5S7dK/SI5HMc1WGUesMcWTRGtQVmXpKFlqaN0AJ4eHl+uYXsZlEA+gYi+6t7e2kSXWyFwICHOLDE/+DLnz+odrLwcsA4Rxht0KsALqb3NXGSsc7V4QU0UMPXJjpTyjRa5w3utU57Tg31/KIog4kbCKpx1cDqNGc8RnD0XGPVW95dZcs+9uPljSSAmCiihBUSLBwsUvlGgYNMFIt/cyVGmjgXwS6icw1rtrF78i5m26wX5g5pSsaoV4OZgoC1nn0Ptw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH 4/6] qemu: capabilies: Introduce QEMU_CAPS_ACPI_GENERIC_INITIATOR Date: Wed, 2 Apr 2025 10:25:35 +0200 Message-ID: <20250402082709.538777-5-arighi@nvidia.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250402082709.538777-1-arighi@nvidia.com> References: <20250402082709.538777-1-arighi@nvidia.com> X-ClientProxiedBy: SJ0PR03CA0258.namprd03.prod.outlook.com (2603:10b6:a03:3a0::23) To CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY5PR12MB6405:EE_|SJ2PR12MB9139:EE_ X-MS-Office365-Filtering-Correlation-Id: cff0bff1-a13e-43b2-dc5b-08dd71c0407a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?B6NxOK9YBEmf7wYQQqtKO6OGj793p75Ci73Bvr3ihsSA4HaozxmAain2jSwz?= =?us-ascii?Q?2KVSX4TAXSTZFmaumCtoJpmhbXdBddJE+N2Y14bv9YoeJvrPh5vLCK4tOz0Z?= =?us-ascii?Q?o3EGSIB4xKgs8zjv4Dhl5utKHOO9jwZY9K1igekxwZ9XGQD8jkRDkmV5lW/e?= =?us-ascii?Q?GIIz+LkJIIpgdWiQS/bRhn0/sUHymdM5lpFilQxMh2OSmfRfphrstEldtefO?= =?us-ascii?Q?Mto8J6EAKir8ENxbq/VmBPLI9jItufAmjIInM2jJwAVjZBHpApsC15Lv5Hcm?= =?us-ascii?Q?LhNroJLV3VJ4OsbvpRCia4O6hDtW5azJuWIWMcBlFBbGI7XZLoZJ5/Jsokvu?= =?us-ascii?Q?/GTn0vic1cZfbCOARqcEKzzeuvCoZ6j+Qi4pItC+EzPXoHsY9jCgaueJ/97h?= =?us-ascii?Q?k+btdCMKv1k3+FrNDwUWYJd1RWAaskG9HQSbnOLM+xyqyQbHwdr5Ae3PPJhY?= =?us-ascii?Q?KyaEnQjcJrK9URfMpjxINAuxze4C/qH4yGSa/H5IbJ8UsLykPKbuEEnV5X/U?= =?us-ascii?Q?JBMZVgtwxxS7Cd6Ky1ON//oPUA4cD2mbaS1Cmf9LCuC/gMPYFs9l4HtKIM5Q?= =?us-ascii?Q?xrH0+IVcLqTk6IsTb0CmtpMqcSiASK3n2k6I8knEeEn0IodzU9iVONEmWLo1?= =?us-ascii?Q?ZlsCD6M+fQ0pDTKUv2jmGmeY5YzwoqIGCFdgs8sQAgBwB3ZuQTksMfAPlhrB?= =?us-ascii?Q?pTi+gNTptYfXlJj2WhcrTLZ0ASt7agEPvrchEgE4LFoizAJRM4eTv66UUOvO?= =?us-ascii?Q?9RICBXDI6Jl1/L68FjWBnrfvlwPmVhFxy4QmDloqyZsdOWptIfIMGc+hFkNq?= =?us-ascii?Q?GsaiHdlq33JC1yd0pg2YBOXMGS3p8JCOzViTk3yfro1yeihuPi95gS9+UTAp?= =?us-ascii?Q?RyykK3Xw6YZ1Iy6tLIJi5uJK/djxLKovhXQQBIAjIGpQoGV9y8E5FvMmkWDj?= =?us-ascii?Q?n3UYVe6mB+VLH5h9dhfiP/gpd4YVB0AcO/VfzK56S4cshhyJOB67pw8Fpbs0?= =?us-ascii?Q?Oa7X4UQZseSSORDkueuSA0SQ00XF6matLE4SanLU7/OohUtsFmp0hNGQxdnp?= =?us-ascii?Q?vbEdvPY9KgV+DexpAwJ7SKezTDLTNHBUvpKfSF1YxsqAxa3OLZ4SzQRZMOTZ?= =?us-ascii?Q?+LD82krQrUffWXH91HEV3OjJJJew7KZxAwT4tUzIA5ZjqeC1q3vB/uv4wccy?= =?us-ascii?Q?dY1wzemrSc9XathYqipcpu8nZoRdIpht8FBMWfejLyPBl0wS4SFEu2LHzbYy?= =?us-ascii?Q?Td357ewC+kWxW+PGPBxS4OlOtJscA8JJo1R37CtUJPQA+1ul2NjNWH4BXvjs?= =?us-ascii?Q?MVb3pmOiHqM+TT6WAtr822e7yPdyOQNgVwy6JFcfnx6gT7OYqxHAwbd8n0y1?= =?us-ascii?Q?TOn32pzpS7sBWcLjySmIfJEmw0Fs?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY5PR12MB6405.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j6GApkr7R2L4hp5Yggw4ppC6LumJ55x+SjEJfUbP/i7ALNC5QTZbu6FSQlhJ?= =?us-ascii?Q?sA2q0wf8LE6vt8SdnNSGZiw6vGE1XT+PRl1fKC4GgoQ1nivrL2yCZmAeCppa?= =?us-ascii?Q?FBxzjqKTOkwg8gwbphfCqsWKRc3sol6ZobbbNbeOQn1BGZGmd16PQhZpCWZc?= =?us-ascii?Q?b91AAjg90hZq9AcoXsadO91ufMQ+Xt5idprTdWb2hME1um+n3Ni2+7dUeniT?= =?us-ascii?Q?Hf7I4g8rp52JU1VTyyLzAMGpRhdROAiclM/41ZL+fDZyMac6l5VTU3F3JH/7?= =?us-ascii?Q?vuufixSrS8Gb3d2+uTe+sfAh5QcEhpuW4xfGj0kytZtrtPzmKqOmBNq5S+9H?= =?us-ascii?Q?77acVbaWM+d+JN6UVAe0N2/nz5FktR2Ubp8Dd8KeACS8i9om7aZy6A8pjre6?= =?us-ascii?Q?UviI1rB46L8sTtXeUEZGvKrm3zUg7LXU+bHAxPgvQaVHOg/RfwxBx2RHB7ES?= =?us-ascii?Q?2AqJmEF4i+mblPDw9SV46VutV+dx7QBKe14nP1feD2+f40+YvMnaBbnrUO5e?= =?us-ascii?Q?vmpAMgoIMcACqgKz/eHp6/JvuTu3J2CFetcSvHuAFEHXWWH4a2e1vpyyr3eA?= =?us-ascii?Q?Nb0nFg3qXPntIOQGV/4++aHGMb7m91tTwvoC3PCQyHyo4HN0XllcXfCRN9eg?= =?us-ascii?Q?rheaMbeWgKuoNluXBLhzzkYSFU7J97siBryxfPVDrqUwD538dJaGHizKr0D5?= =?us-ascii?Q?nS6P5IWHAwn4dpU5DLmkrosLhoXQXGFxA9u12qRGIeMYb9TGUIBEgwqkEE74?= =?us-ascii?Q?+W6TSRtC+dTMalvzopFgUhEwSU40QlBHcVzJ6aXFJhyKMUYhsmoan08UrnNX?= =?us-ascii?Q?ZKncAVytwIoDRepSf6cmYd3R2ccPt6CLzC3Bzudd2U+7xGMD9Oc5BkO0lVNc?= =?us-ascii?Q?QjZOe6kYHcb8NJJA8TGvYtDL3pynoMMGM7eNk4WlZHQkPJF7meSiMyYyJSmC?= =?us-ascii?Q?C35qk6KfhGcmmoRjhx8bGBNePiIr/wsDR4+kOrKQRxOBVJgAUDlEFMbnHqHG?= =?us-ascii?Q?y17R+9JgZHF6kzKFwdYPa4l5Usp04fFIgSjEHTqO5e/agAsoMK6LAs5fvo3q?= =?us-ascii?Q?bEvGEk43avZI9XMymW0NehdW+9PqtGP9w3KhN9AOa/Ksgm5AknRK/rPCYfnz?= =?us-ascii?Q?zmiv1SJQJ00bMLpDxIdnUQr+Inw/RAVVwnv/cy2z2wZhefzkIJSVDjrX5hMN?= =?us-ascii?Q?l5MgxkUSYf8ZYjMLQfjqY5M9fs2nMLKyVbEHLo8fbTlYIXbHpcGwBBXIDOE5?= =?us-ascii?Q?JfrVdS+qW8g+5JFT+XifbGxQ8GmPwN/SG5N6Y98f16hq5yVyY+CgFfcjAaMu?= =?us-ascii?Q?SiSeGk87ADOMf96vybq8jOre1PooJJmDrEyxE9IBRn2kq4XtJVaya6mValNC?= =?us-ascii?Q?j7q5MkjU7oCtWahL0HbtHrxjDdo8JipEYttDoEtPOvRUG37mkAdNjP+7WOkB?= =?us-ascii?Q?ypkJ8cuePjfH2QWpSl4IFDn7Fvn6Du4lLfZIjjp/iM5ahzCbOkIw7UvoZXXR?= =?us-ascii?Q?hpT2SISs3FnLD78F9r6uqklrrZDNxpDYp6D71xWskcJ6r2CKAvFxKcWPSIS2?= =?us-ascii?Q?/ABMqpXY8GzJpDMePZ73N0PHJSkG0kNG3fC2ntAr?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: cff0bff1-a13e-43b2-dc5b-08dd71c0407a X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:27:48.6676 (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: hzxCwtlxepxeAEIl2mKTCq/NOkhPs9+CMNOK9dvgavpriTLDmFWaQ96RG6Q65+SQW4BMTJgLhWcr8GKZM+ps+w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9139 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: TKVMUXJ7OZ3C22YC3G3CKESXQJSFKPZ2 X-Message-ID-Hash: TKVMUXJ7OZ3C22YC3G3CKESXQJSFKPZ2 X-MailFrom: arighi@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Righi via Devel Reply-To: Andrea Righi X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743582644118019000 Content-Type: text/plain; charset="utf-8" This capability tracks whether QEMU supports the acpi-generic-initiator object type. This object has been introduced in QEMU with the commit: b64b7ed8bb ("qom: new object to associate device to NUMA node"). Signed-off-by: Andrea Righi --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml | 1 + tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 + 10 files changed, 11 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 67350f2300..66216d66d5 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -732,6 +732,7 @@ VIR_ENUM_IMPL(virQEMUCaps, =20 /* 475 */ "virtio-scsi.iothread-mapping", /* QEMU_CAPS_VIRTIO_SCSI_IOT= HREAD_MAPPING */ + "acpi-generic-initiator", /* QEMU_CAPS_ACPI_GENERIC_INITIATO= R */ ); =20 =20 @@ -1421,6 +1422,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[= ] =3D { { "sev-snp-guest", QEMU_CAPS_SEV_SNP_GUEST }, { "acpi-erst", QEMU_CAPS_DEVICE_ACPI_ERST }, { "virtio-mem-ccw", QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW }, + { "acpi-generic-initiator", QEMU_CAPS_ACPI_GENERIC_INITIATOR }, }; =20 =20 diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 2c2433580c..b09a92bd8e 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -713,6 +713,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ =20 /* 475 */ QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING, /* virtio-scsi supports per-vi= rtqueue iothread mapping */ + QEMU_CAPS_ACPI_GENERIC_INITIATOR, /* -object acpi-generic-initiator cc= ommand supported */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml b/tes= ts/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml index ad7bb7ebc8..08abe4a0e8 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml @@ -207,6 +207,7 @@ + 9002050 43100285 v9.2.0-2369-g98c7362b1e diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemu= capabilitiesdata/caps_10.0.0_x86_64.xml index 529ec7fbe2..dec1c6a289 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml @@ -207,6 +207,7 @@ + 9002050 43100285 v9.2.0-2799-g0462a32b4f diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.0.0_x86_64.xml index b273193d35..1bf3adf89b 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -203,6 +203,7 @@ + 9000000 43100245 v9.0.0 diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml b/tests/qemu= capabilitiesdata/caps_9.1.0_riscv64.xml index 60eeb04fe7..163f9e3574 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml @@ -163,6 +163,7 @@ + 9001000 0 v9.1.0 diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.1.0_x86_64.xml index 6b995c2f26..4d301a764d 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -202,6 +202,7 @@ + 9001000 43100246 v9.1.0 diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml b/tests/= qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml index a7bfc10168..892c8b31f2 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml @@ -136,6 +136,7 @@ + 9002002 61700247 diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml b/test= s/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml index 2181b9432a..85b36c4315 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml @@ -206,6 +206,7 @@ + 9002000 43100247 v9.2.0 diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.2.0_x86_64.xml index 924f56d010..d5cc6e3bea 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml @@ -204,6 +204,7 @@ + 9002000 43100247 v9.2.0 --=20 2.49.0 From nobody Tue May 5 08:46:48 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; 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 (BodyHash is different from the expected one); 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 17435826618501023.084979269325; Wed, 2 Apr 2025 01:31:01 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id DDE88134F; Wed, 2 Apr 2025 04:31:00 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 196B5121A; Wed, 2 Apr 2025 04:28:21 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 1B07113E5; Wed, 2 Apr 2025 04:28:16 -0400 (EDT) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2082.outbound.protection.outlook.com [40.107.243.82]) (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 12D861200 for ; Wed, 2 Apr 2025 04:27:59 -0400 (EDT) Received: from CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) by SJ2PR12MB9139.namprd12.prod.outlook.com (2603:10b6:a03:564::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Wed, 2 Apr 2025 08:27:57 +0000 Received: from CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5]) by CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5%6]) with mapi id 15.20.8534.043; Wed, 2 Apr 2025 08:27:57 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YgKaU/4XaJUkvXJ2e1es6yFvmxZbro4aVuI/7P3V2nDPxmvhjWwyeylFdAEOnIZ4ZM8gFIjIBTyfvgEClK1MKUQ9Wh1yVJiPc9Sq1wni4WgJOwODtHzrJBmfpLUfnrFpk1IKsDyRwsqVV8jG0YotDzNiFuG2b0Q61YPfWKnKd+mVYryrO2tlTI5EjZnS4APCkQm2xarx7URUl0ot4zra/0tCDFGabBaYkbvkOz10A+V0UnZ1d8d57FLRHJpjxj90zmS/KkowuIDnrjAHifqhPsuL2HtoJPOD9zQ3YXEFxUEaOC/33X0qAG3TidLKpBm8v4nfLxafZDfkmvVGu3/ODA== 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=yXHnO5g8m1Qh98BQTmyffGtvO7G1eBQC3NE8TxL7Bmk=; b=ITOnR/IwVz7k75txk1L2lQD/iGUYeqCo2rc+pAfzCZdRfJMZwQP81jl486hdzHkhRQyVgpDa36a0b3yid1xkF4rnwkZcqRc5MfOr26xsRd5ZgQlnjA6COJWwqmCsDxd3UXAi/ZxoS1U+iwo0gDja5B1DLtOya2lTEhQ1KFjSTBv/CJAUp7KB5TN0MvmYz9+cefI3RkW0CsW2KMOTbPne3F1qs7OL1d0NLVIdJ5VcmzdpRpBR/zlwq3B1rFDc4fcqHkQmPGHe8TfbylM8MavT088zBlemN/s/IJ0JOhP/uWrXX4Dqy+WMeLCszuLKk/V4JtFVHU8pCutlC85K42u0sg== 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=yXHnO5g8m1Qh98BQTmyffGtvO7G1eBQC3NE8TxL7Bmk=; b=W52V3AGH0Jwn/j87Kqxo9enzABlubBJkeTpekjt9YRGGUSxUJYVr3tB6MLoq6AnsvhEndhIF/lFu+VgPUnZhjCRJEcmnU9K0fmkBQFj6AXKQie9BdyGIi7CKoAOTWr38vjkKCjYG3OF2/P0OaeFTMGvbmEKBQAQFYKt7AnEnkkIlS4dtMDE4QnuyGeZ9Qqf4az7wLcquXJL765pBetSitZSYKUzIU3CptZSqfpBfVRVQr/bBoc5EGv8buwmPJ0I8U7L3eeta+9nfIHXZ/qQ5dO+SgWNrJkMVW3h2nFmcli/GZNtLi1/Uat3/zxoZuHZr/MWzvhYVWnOMJf4F/N6llg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH 5/6] qemu: support acpi-generic-initiator Date: Wed, 2 Apr 2025 10:25:36 +0200 Message-ID: <20250402082709.538777-6-arighi@nvidia.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250402082709.538777-1-arighi@nvidia.com> References: <20250402082709.538777-1-arighi@nvidia.com> X-ClientProxiedBy: ZR0P278CA0106.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:23::21) To CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY5PR12MB6405:EE_|SJ2PR12MB9139:EE_ X-MS-Office365-Filtering-Correlation-Id: bfc4cbac-4a68-4a6f-c8bf-08dd71c0457d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Q9dGp7zkjFwsMOPYoBw8OqXJI8jhJNX46vbljZe8gePcxwP4ogLC4SGSEqNv?= =?us-ascii?Q?8IlBLB/pA5Jkpt45PkoRjHb1lCn75kKbQAgPjBoTbqluxHYqnOvQdsELwMmK?= =?us-ascii?Q?mvqHtnTv0Rel6MnyogdCiGUxVyBwLpqK2xIV0trabOrpmz6gZ22lZa39T1Gb?= =?us-ascii?Q?QyUb10CgBGmnWWjW7CrmrJBfnc5VBYhoQSJoh3BEX5+xpFQM9J1fslGz59lI?= =?us-ascii?Q?FFNxNf5BK1JtNkXDCLBLh5YBijzLIZ11IjlliGdiC42Zv98ED7RK3ROUyynA?= =?us-ascii?Q?fN7kJou1xu1MxcdGFfDospvLJ6zR0tG3+e4uBi+BWT8K3VKYn8Bljvo0X5XM?= =?us-ascii?Q?5qAv8WTRZvW5wXq9oXGsI1wM8OGNADAzSf8JUPkJUuSex+Efnio3bRJSrnMN?= =?us-ascii?Q?m/3C76nxJeO2tML3oMZR+YktLAb4c1nW56O85B+jc5tN4gdPxkdD8M5d7w3G?= =?us-ascii?Q?T921GMo3/bZ/L76zlgUZwucGTwzqJLvvnot+3xiqc5SFrEPcfeyWKrAoeWzt?= =?us-ascii?Q?YAVmGa55E1j6aKpv/qkOrgbRZQ3xiEnjdSr7tyXEmaRvn9lPFF1CPXGnRMHo?= =?us-ascii?Q?AXdULODoYkI4hn0atMDZ2hNgvIju8fNTvm3VD+t5VdvCZayNg4Of77d27bsa?= =?us-ascii?Q?+Zrsdq3U5qH6oNsjKAfkzGETw0n+R1g2sNbYhL+NEGO7txjRkVDxLo8QabyP?= =?us-ascii?Q?WjcioeWza59sQwGtvnNy0lD9bvuFqJ9sE4hu+E/sY7zSM6LF06vPzz8xjxkI?= =?us-ascii?Q?NO4yQ8g9zPRa679JLdhl8UR6TdVSHo5QAj2Scqhln5igY6kXeYOWuLQ8pwGE?= =?us-ascii?Q?BxwXCcVqiAX820jPeuhGIPMHYylWBrun4ui1EHvQ7drO1jPUDUdzhoyQW5df?= =?us-ascii?Q?0ktWfuyVvyGd/Br7gGs7IuTu+LDOGELBRC6urVaI5iRS0ppVBt4rG9XU9wBw?= =?us-ascii?Q?5bcBcSLuoSv0EJ0geN7PdGRv6MOkyIsDRptIMPA0FvHyQErqZff1FM8vTTCU?= =?us-ascii?Q?tRUhovpGq/m2lnvEC7fNdZE5JLMCDqk3idi4myOMtZj5nzvdRV3E90oZae5U?= =?us-ascii?Q?r8IC7aUWYQdxAo0LMxqy2cC+PeocE8RSuDI+Ntgl0NTOHD+lexLSTgsAUXMk?= =?us-ascii?Q?ahTYXROTWXXrZhCRsoEcxUDxTuyQqtwi40WawCsUqUBELAAhqPXKr1V8j1bp?= =?us-ascii?Q?vdqo8HrrWY7A+lELZlsObHyvKWYZSu6u/qefAeytpDiuxEzMbA+2IEUwNrk+?= =?us-ascii?Q?HL2fKXJWB5z79eI/LrlukKeZPVK0g8UXdJf7TQJgjJXbbz8fbo+HlFQp4n99?= =?us-ascii?Q?RQl14WKPYYcdIofR94+85KFhcHeGIUkBxGwTpaxIA6OV2oVqM677vU0IdMYY?= =?us-ascii?Q?7QN2JF209HBP8p8G10SiBATlKiwK?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY5PR12MB6405.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dl/IrCtEIopwz7xTpmiP82dy4i+DKLfYUIWTh1UBrdi5+K8T2fVGmzIM+35a?= =?us-ascii?Q?YQTZ4HMhEArDW4AUu8ezqo4q1CLGJahMO9yb9PUCaDDLpfxm27iZ0iYEYa9x?= =?us-ascii?Q?5B2HwKxwBWDInQcZDiuxOKlftLYyIfEgcpcNp1RRq9+XhN8+tH9sBxv1Mnvm?= =?us-ascii?Q?98oNAOc/yQ5JBr4OVYQuqUUalHdpNXX0N0PoA7sAS9f7QBOZD/7OTIEk4Asp?= =?us-ascii?Q?BMOkPgM2i4qMEMi4eukRjS13sZMp+wElkSK2xrkcSkMAtr/iWo7L0bimdgUs?= =?us-ascii?Q?T0rSXNGFLWJbbq21op/PFHYIti64GfPKyY2gYlMP1iYv80/QYrGII3RpkFnT?= =?us-ascii?Q?o3/QKKXmAfaeidGYv5s+zTJquIQG9FO9ZTvztOYsWomjr1qbdaJ/fKSH45IO?= =?us-ascii?Q?SoqhM0SO15QiW033SnUjzSuG007CV0RG2Fpqg8CmcHlML4nmFFvuTYr191wg?= =?us-ascii?Q?5z+jvSonhdJGaU0DADt9MsZl59xc2UxzERkrHwbAzYCoEL6uNBa1mXq/dooQ?= =?us-ascii?Q?BK/J4BJ3PTpgad3kETdS3sDBpHXLtiMY1nqLMsAah4+qE3R3TspbCUm/lEWn?= =?us-ascii?Q?BCaW9ZT6r6AOa66jgx3uq5rKs4tFoKH99Ny9sol0lDUlcl7vnEg9O7Hny8FY?= =?us-ascii?Q?Vf0YE0iNu5hbVc+yfkMdtc0852NqEWhRIqXWrUQzzoh/xS4sfgoYzp00VUaJ?= =?us-ascii?Q?58bii9k3C2fSwSX6QjW+H0FtObnshsPh1g2EkZGD+gwRajLUnN8LPsBNTv+O?= =?us-ascii?Q?IrbeupyOshlb26GabkV5iwn+2J8tC3D8m4hPr4j/WrMW4Ybpq8WJvLYeD4oL?= =?us-ascii?Q?QSBbu0dpe+0xlrj94WE1O3zBmtJrEJ8cMCOUsFvI+dRagxoiizFRWLoNlobG?= =?us-ascii?Q?QsVLLiBplYy/0SvFcwb+MttxEQ7s3epqTjpAS9L43ErGW8M76BPf9BiNjsJW?= =?us-ascii?Q?r0FJswKmbW2Fd1ttJZPJQhEFn0hlu4zkUpoEPwR6TBD/8uFBnNMDEFWR7zN3?= =?us-ascii?Q?YkuX1Yy1/dXdKVjo8S3Jv/py7UH9UKhHkbvtICfwkLXTCWab17eqtYVK6Azj?= =?us-ascii?Q?pdEta6koTJwnG82XLh+/+ir9eUtbwQmCkzOzl+BGDOIC5E0cwfFeB/ft1gaG?= =?us-ascii?Q?kMX1Vjgycwdz0zIdjVfGCMMi87Qw/4IwwOZsqh9DkvJUf7vNX9TaTnn3TVNx?= =?us-ascii?Q?Abo9TUVHncs1endw0QQLlF3k95IDKBuhMe+7q8EYL5WUsPUEM5nIRLvyV3sQ?= =?us-ascii?Q?e0aua04s2W/1JfshsMc4IyP2W3fdVZLxYLV7wNFwU8Zj6pU14M55UiJmH1K+?= =?us-ascii?Q?GZqEXBusaug5ertsD21M2bheDl0TuR0Aa9Q1PjaeuZFEASOrq/hj5Wc36gIB?= =?us-ascii?Q?RukoNhOycan4OtMRfbO2zt7zuiBXtu5aY3cKtYCkfVV6nyHfkZoGqEJm7N2m?= =?us-ascii?Q?vZytG9EqJ7PvQ5nGsKa9q6hWSDaRsq997p55ZQW3kQxVT4vg1Y67U2CF0gCB?= =?us-ascii?Q?9bqMFu2xWogfnjKGgZFIPwOCS20y1ztM/0mc0sMqm5crOiXuxjemAKJgrBNe?= =?us-ascii?Q?Sqf/F8pKN57GUcFJGQj1zejN7/Xy+qIoPYMxuBjq?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfc4cbac-4a68-4a6f-c8bf-08dd71c0457d X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:27:57.0689 (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: oJWC98Q3xxtdlQSnghBgtCfqIhDIzqcMVD8n5kUd7QJf3wySjvHQjwPv8KVCqfibKuOTjcgvZlqUaJ4TqdhpHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9139 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LX476UG7Z2WDRVZU7HFZJGPP5MDKS5TV X-Message-ID-Hash: LX476UG7Z2WDRVZU7HFZJGPP5MDKS5TV X-MailFrom: arighi@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Righi via Devel Reply-To: Andrea Righi X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743582663359019100 Content-Type: text/plain; charset="utf-8" Add support to the qemu driver to generate the proper command line for the acpi-generic-initiator definitions. Signed-off-by: Andrea Righi --- src/qemu/qemu_command.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9f5fa98de1..b50e21465e 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -10371,6 +10371,29 @@ qemuBuildPstoreCommandLine(virCommand *cmd, return 0; } =20 +static int +qemuBuildAcpiInitiatorCommandLine(virCommand *cmd, + const virDomainAcpiInitiatorDef *acpiini= tiator, + virQEMUCaps *qemuCaps) +{ + g_autoptr(virJSONValue) props =3D NULL; + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_ACPI_GENERIC_INITIATOR)) + return -1; + + if (virJSONValueObjectAdd(&props, + "s:qom-type", "acpi-generic-initiator", + "s:id", acpiinitiator->name, + "s:pci-dev", acpiinitiator->pciDev, + "i:node", acpiinitiator->numaNode, + NULL) < 0) + return -1; + + if (qemuBuildObjectCommandlineFromJSON(cmd, props) < 0) + return -1; + + return 0; +} =20 static int qemuBuildAsyncTeardownCommandLine(virCommand *cmd, @@ -10732,6 +10755,11 @@ qemuBuildCommandLine(virDomainObj *vm, qemuBuildPstoreCommandLine(cmd, def, def->pstore, qemuCaps) < 0) return NULL; =20 + for (i =3D 0; i < def->nacpiinitiator; i++) { + if (qemuBuildAcpiInitiatorCommandLine(cmd, def->acpiinitiator[i], = qemuCaps) < 0) + return NULL; + } + if (qemuBuildAsyncTeardownCommandLine(cmd, def, qemuCaps) < 0) return NULL; =20 --=20 2.49.0 From nobody Tue May 5 08:46:48 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; 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 (BodyHash is different from the expected one); 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 1743582705415833.0582659078137; Wed, 2 Apr 2025 01:31:45 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id B47B1C5A; Wed, 2 Apr 2025 04:31:44 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 8777514B5; Wed, 2 Apr 2025 04:28:37 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 5032713E6; Wed, 2 Apr 2025 04:28:31 -0400 (EDT) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2086.outbound.protection.outlook.com [40.107.243.86]) (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 2472114C8 for ; Wed, 2 Apr 2025 04:28:08 -0400 (EDT) Received: from CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) by SJ2PR12MB9139.namprd12.prod.outlook.com (2603:10b6:a03:564::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Wed, 2 Apr 2025 08:28:05 +0000 Received: from CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5]) by CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5%6]) with mapi id 15.20.8534.043; Wed, 2 Apr 2025 08:28:05 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zVKF/vOPiOASQ0pTekumHLfNoFfU5s69ovIhO1X596SieOypvp4coCXfNh87RZ9+vE51SzmYz3UcONyKMM6bV4i9OmRxcIJGqbxtWlMUdV/kjv84DoWz/sP8gimAwXXjbmZhBmKimcJngiEGxDA3oLlh83rJmOmkRLwEq0LXXndf+6ccJ6tXX+bWy0vP02prB8NQ8xzP2ONf4O+aX/Q9X6ryHPej7drBS8gamx2dXmP8Cu3dOvPr6eD01Me3Xzjt7KcTpbsgbLvKKtdzn0Cq5Rt4cJXJ0Su0dJngRfwU3lI8PRURU8hg55eF9TqpgGZ3vX+QNGOdLh8Du11ytvwntA== 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=83bnBBSf25umdb3h2L9aUGcmhP5WB9Gx/bNG8Kemyxk=; b=sTmb0PMRjuKFPdzVcIq2aJ1jPvDB/Pti8GzVY9TyRB/TM7bmc1mz4dmBRuQRx+JRgxhRJJK+gMLn9I9a4GjFtdqe9KRLxoris+ntRISSV319tXy8OjjefeMjiFdw59zSsz0XfvOUNM+LhnjTVI4mMi+lqkJP7raexrPWjvbJ8NJBdz+TsAbogbuFjePOHQsIQ14c2k8mRACVtUVLUxBZM8K/azZJy2GWcq8Q0z+OmL+Gs+gj3h6OoHLyU8b3gjIy2/XoE9mthm5OCvrfMJpEWNC4eaCBEM9bV9jumCbevq+Yom90bgWpHtZUs7vZoIXSOhMowA+NHQvj5leE2ND5Tg== 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=83bnBBSf25umdb3h2L9aUGcmhP5WB9Gx/bNG8Kemyxk=; b=nJF9CfvnFtOqMT4Lm59cVeuxz/orQRLaPFBd33EgrUfhi4g6rbvhOFRxIS8tTaE1qBJZBlr5xkAt1BTeKJuzE3nSwxZrJ2NeneOz5YVBkXdm26DDnE4xffBrHno7sUQI+1vDl0u6pfQ3xpXlt8voulGrw5zqCUiZjx7rLc3YcvT2ZzUgDk3tQT8vUCLZ0RhuW9GzrsiumoL3EwQMRhlFOTlI4JgmvQnplVvbHMrf8DCTKEHblPPFkmGvPoj/qWgB64c552JBNQOwpSFVyTS/q/sXWIHXkc9EOeu0ul+3jVBnjH5UZNX2SS+6X//ygDYrG4mZGzjKUNTxlKW9sP2mnA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH 6/6] qemu: Add test case for acpi-generic-initiator Date: Wed, 2 Apr 2025 10:25:37 +0200 Message-ID: <20250402082709.538777-7-arighi@nvidia.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250402082709.538777-1-arighi@nvidia.com> References: <20250402082709.538777-1-arighi@nvidia.com> X-ClientProxiedBy: ZR0P278CA0116.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::13) To CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY5PR12MB6405:EE_|SJ2PR12MB9139:EE_ X-MS-Office365-Filtering-Correlation-Id: 7624ae01-ce3e-45de-ecde-08dd71c04a9f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?AQE4mlPgtAL2eZvvyRl3AhsG6hIym7joP8stvl5boo/EeGC/L6hTSRYEiIvz?= =?us-ascii?Q?ZP8gMlosaGu0ctV5PL8rZeklfLVLRJUg1ctgYtvLYg78j/dg26aKTXi4/voW?= =?us-ascii?Q?ghZ5gF8hBBwbVtGYhIoEglxM7dd2E8TRRK8mPWcrJ0M1sVAFQAalNkjcO385?= =?us-ascii?Q?UcruW2/K+XJ918xBtQSjQEzrmouqRF8zSeuCTHvaww69B+xAjn2whYXEUaMA?= =?us-ascii?Q?mcnh4+TIq9firYMr04iTJ0dSgTecsYZXtkGkLHUrnhTBcYEpph/Z796jm35p?= =?us-ascii?Q?qhUg76JubcAHWS9G9xK5Et965sy0/VB2J3t6QDGDxnxy6I38thvl9RYYAXgS?= =?us-ascii?Q?KtGHqVs6YeHRr2hqZlElPdFYbwNe7CRKDpj/JDW3ji8KZWM/6IRqfq9sbqtj?= =?us-ascii?Q?EfbWu/fVSu6YztsNI85Cef8b6nX04jBQkLiTg0qgRuJhioxVFhpeizDbOlUX?= =?us-ascii?Q?BkSLSeLvFDA/PSVblf8XkvXYk176f2dyXDRJp2f59+e7FADr6zFAazbEy6Dj?= =?us-ascii?Q?Dl3p2vkyWfYajLzne6gETTug9eniomVP9nl6dfhEFuKAeQMkjwcq4GDf2OK4?= =?us-ascii?Q?j3QOdxMuWOLnhN2jYRrlJdR3yrXzUEDhvKdzalMNZzpFBokUthAIASQi19KA?= =?us-ascii?Q?XXIa2biHtM+9xH9GjPQDscgLT2uBqveC4LU0tPighZGihl0tJo0osWM8Q55P?= =?us-ascii?Q?2SWsPBVZKfJOfx87fM3o0RTLELQFg2tKNI38JSZ0Yq9vnnGJTFYYYTbvxyxW?= =?us-ascii?Q?2GxmquafoHbqtl2w1BqeNt4DhRik+IKGB2lB0pc/UXL9koeOYcLPkXV5PaUs?= =?us-ascii?Q?viarhf0CDe5L3nXEmPjHL4JmtS7qtllzUTUOJBBAGBT65W0nXQ/U8h+tOpqI?= =?us-ascii?Q?DsvpMUjWGIT+KG7OOh99xAmZv9zwZLVg5OjDNM5i2pAZNeeZKKsCin2dDp+K?= =?us-ascii?Q?VoMzeAkJrJfIIWofIaG0P5C986+KFQvu+KzNKp2CmB9IONqcFHu6RP9TNgAc?= =?us-ascii?Q?+nnyF/4kBHTHqn4sy1y7i/R6g+LksSvP417oBQvSNbKYG/KzzDYVARAclpG6?= =?us-ascii?Q?bLOBKlxDWBgTFfaPfxEQwM+mWITUHPFF5p+Hyr4CX+Sv/Nd39BkYzrLKLhXl?= =?us-ascii?Q?axV+OK52uzEoRM0Wyibwy3iEdV8uIONljQ7+uH82K/G6MtRE8hH9xZGD/O0z?= =?us-ascii?Q?5rOZaTWdkZNYH7hxNiS7pUtTL3fe3r9aXz149CuxYzAMoWm2HQhikJJIyiLP?= =?us-ascii?Q?xh59EWHOUiLvTG6RCb7oJ4MLgKD3DaDs799l4RPdOJDgcNBqDkFu9jAOufqR?= =?us-ascii?Q?rsP3dPmqmTDofKj1Khy+SwHh03Ul9THEVsLCmjqJvrwUCjPiVMo7znCgHSGo?= =?us-ascii?Q?tROOVB9GFKaSdt+EpEzERbaJlAbt?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY5PR12MB6405.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sjVvgJWL3NYDrkac1PGzuyvaKnOgJulCzmrDWUOlsYAfLSr6LhdLBUKVU1sP?= =?us-ascii?Q?n5iL39SyjboTpye7frhjfJfCUWJagn1MEVtz8+xwJay7xLXVgY+TlI4l9sIO?= =?us-ascii?Q?AWbsgp6OLk6H9yJsm4CMyz2+RPrjkUadBJo+IDJgdktBJu4gOcV/OxF0WwcD?= =?us-ascii?Q?az0LJ48TAPJMOFxe5TwdNOr25wy/YBPMwZU47i0etnoC2jRpT7jzyh/VTCml?= =?us-ascii?Q?g+waJxpJK7F+e3JdeUAoQLuA0PL3FECeViS4QdVCech+ll5DyaunrGElTj9E?= =?us-ascii?Q?ArwnhNZ853N+lN3fO0hbLY/rhHkX7zasXTgpTYBOyvHnwMCZD4SOhD8x6RHK?= =?us-ascii?Q?blBo+HUWFLby1P9NUYNRTWSm3w5oYnralXkf2UspMYAqIjOADm8a4wyiIHxl?= =?us-ascii?Q?ZT27Unb3bUV0mMqrAHiwF+ocZjJQSqX5KA80945XECm0L0YQf1rfmnmlili9?= =?us-ascii?Q?Y3CLR/2py5Y1nr8RD19UgfW4kbknsqA3rxcmDXhubSOxwkopYKmX74jzweyN?= =?us-ascii?Q?MpPXuL7ZAk99eVSR594k2aEn35ZBO3K84QcYX1l2ybbpsJcJrCh4cWlWunux?= =?us-ascii?Q?tV6hy/jjJ2kDmwhbSrqteHLKZS7ITD8QZzWTmRPbI0mR/t7mSelbZojx1Gbs?= =?us-ascii?Q?2R6FuJpAfDa52SwM2aEx0hhnw+HRG5IL2g95PAtOc5YCVQP9hO6WZCoA5MTW?= =?us-ascii?Q?FkiVpMgYI1TiqE+/KW6Ly31Eq+AtS4CrxfXqayUI9jDe32OArfH6bl6XOtrg?= =?us-ascii?Q?DfAiWo0ORrBL77AzupLOXZG+ujodQ+Xwv/yHJdOkAQl+Ozfge2dXTR/PGzBE?= =?us-ascii?Q?NY3HVxKz3ymPKQDkQ2Abof4TuDkPczF1RoPS72qGF5mW5W9BFufpj80yVjFu?= =?us-ascii?Q?sLdeWTSCNZfqqhLUKsMUmtitdrt6GYpo5YOwvGPvk/zm3VX5lh14nf8H/UgS?= =?us-ascii?Q?qYX4qYmJcuq0d7qfL3KNkzQUqLIQYnGsmAiNDDAyY2qLg2FwDFHbL6vxItLF?= =?us-ascii?Q?x1gOWY+ib5J3zjVDBjuEdVJ79kRIR7H8FnbEoyrVVMHRgIzxhXVBaWrnjNNu?= =?us-ascii?Q?B2fPN/GQ5V6G+dIN6imhntNaTJLZ/EyOu0mZ8CbgNMTLyBSX634+iC/b0Gk4?= =?us-ascii?Q?i2q8WUYcFZmDwYJPBj6fXqXTJJnWRRDP9GVFG6I8BAyBhssK/f50KCaiKB0l?= =?us-ascii?Q?qnH2jupLJoYis44GSeO+rY0hp+lb+dKDpRE+7qMSuDtgh7X0l0wNg/wu2JHZ?= =?us-ascii?Q?J0rvYJHAYj966XR7cL3C00I00UG56CthdF2BPGqpMg0DKEL2Z0EVZg0K1NpO?= =?us-ascii?Q?xNJXfgkAR2Xux9SEjLxW2P7lAcnVVVQM96dA5tD5nO7KTtDDi5dzkySi52+7?= =?us-ascii?Q?pswetpOrwHOnwNUBCjATRLHO4+MKgYFsv7pj6H1Y4aiuOu+U877gpp+ZWs20?= =?us-ascii?Q?Y50HtXulOWJMpiJ2XXzKys3cUMRFyuGL3f1X/9eHupNh/22f11Z0IHLymDjw?= =?us-ascii?Q?QhbF+AcCJAvm0vUtS96LqLLbnUvx2oH7Qf2RF2QOBEySNcj5bTGmQBu5tYQt?= =?us-ascii?Q?L79QlXdxnQONmSRqaulyJu70PiOe8wSHpCz44iTl?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7624ae01-ce3e-45de-ecde-08dd71c04a9f X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:28:05.8256 (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: u3rXrc+uw2JMrbeEuxNY27Gzw/YFe+FqVRbyGRAznjgO/EBvSrGoWf5wdXNUwvwjQaq2f1yFJPv/B7t3dkH1lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9139 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: H5B6WJZOMASWSJRSEHYRITAP3CJNMKFL X-Message-ID-Hash: H5B6WJZOMASWSJRSEHYRITAP3CJNMKFL X-MailFrom: arighi@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Righi via Devel Reply-To: Andrea Righi X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743582706990019000 Content-Type: text/plain; charset="utf-8" Implement a sub-test in qemuxmlconftest that uses acpi-generic-initiator to link a PCI device with multiple NUMA node definitions (without any memory/cpu resource assigned). Then translate the VM definition to the corresponding qemu command line that associates the hostdev with the NUMA nodes. Signed-off-by: Andrea Righi --- .../acpi-generic-initiator.x86_64-latest.args | 55 ++++++++++ .../acpi-generic-initiator.x86_64-latest.xml | 102 ++++++++++++++++++ .../acpi-generic-initiator.xml | 102 ++++++++++++++++++ tests/qemuxmlconftest.c | 1 + 4 files changed, 260 insertions(+) create mode 100644 tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-lat= est.args create mode 100644 tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-lat= est.xml create mode 100644 tests/qemuxmlconfdata/acpi-generic-initiator.xml diff --git a/tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.arg= s b/tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.args new file mode 100644 index 0000000000..ae2de56975 --- /dev/null +++ b/tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.args @@ -0,0 +1,55 @@ +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 q35,usb=3Doff,dump-guest-core=3Doff,acpi=3Doff \ +-accel tcg \ +-cpu qemu64 \ +-m size=3D8388608k \ +-overcommit mem-lock=3Doff \ +-smp 16,sockets=3D16,cores=3D1,threads=3D1 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":85899345= 92}' \ +-numa node,nodeid=3D0,cpus=3D0-15,memdev=3Dram-node0 \ +-numa node,nodeid=3D1 \ +-numa node,nodeid=3D2 \ +-numa node,nodeid=3D3 \ +-numa node,nodeid=3D4 \ +-numa node,nodeid=3D5 \ +-numa node,nodeid=3D6 \ +-numa node,nodeid=3D7 \ +-numa node,nodeid=3D8 \ +-uuid c7a5fdbd-edaf-9466-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-device '{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus= ":"pcie.0","multifunction":true,"addr":"0x1"}' \ +-device '{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus= ":"pcie.0","addr":"0x1.0x1"}' \ +-device '{"driver":"qemu-xhci","id":"usb","bus":"pci.1","addr":"0x0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-global ICH9-LPC.noreboot=3Doff \ +-watchdog-action reset \ +-device '{"driver":"vfio-pci","host":"0000:06:12.1","id":"hostdev0","bus":= "pcie.0","addr":"0x2"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pcie.0","ad= dr":"0x6"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-object '{"qom-type":"acpi-generic-initiator","id":"gi1","pci-dev":"hostde= v0","node":1}' \ +-object '{"qom-type":"acpi-generic-initiator","id":"gi2","pci-dev":"hostde= v0","node":2}' \ +-object '{"qom-type":"acpi-generic-initiator","id":"gi3","pci-dev":"hostde= v0","node":3}' \ +-object '{"qom-type":"acpi-generic-initiator","id":"gi4","pci-dev":"hostde= v0","node":4}' \ +-object '{"qom-type":"acpi-generic-initiator","id":"gi5","pci-dev":"hostde= v0","node":5}' \ +-object '{"qom-type":"acpi-generic-initiator","id":"gi6","pci-dev":"hostde= v0","node":6}' \ +-object '{"qom-type":"acpi-generic-initiator","id":"gi7","pci-dev":"hostde= v0","node":7}' \ +-object '{"qom-type":"acpi-generic-initiator","id":"gi8","pci-dev":"hostde= v0","node":8}' \ +-msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.xml= b/tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.xml new file mode 100644 index 0000000000..bf2df513a4 --- /dev/null +++ b/tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.xml @@ -0,0 +1,102 @@ + + QEMUGuest2 + c7a5fdbd-edaf-9466-926a-d65c16db1809 + 219100 + 219100 + 16 + + hvm + + + + qemu64 + + + + + + + + + + + + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + +
+ + + + +
+ + +
+ + +
+ + + +