From nobody Sun Feb 8 12:52:57 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 1740062133071976.0657219758147; Thu, 20 Feb 2025 06:35:33 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 0C06C219D; Thu, 20 Feb 2025 09:35:31 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 61EA221B1; Thu, 20 Feb 2025 09:34:33 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 79E491F7D; Thu, 20 Feb 2025 09:34:28 -0500 (EST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2076.outbound.protection.outlook.com [40.107.220.76]) (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 AEE4B1DF2 for ; Thu, 20 Feb 2025 09:34:27 -0500 (EST) Received: from DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) by CH2PR12MB4183.namprd12.prod.outlook.com (2603:10b6:610:7a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Thu, 20 Feb 2025 14:34:22 +0000 Received: from DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793]) by DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793%7]) with mapi id 15.20.8466.013; Thu, 20 Feb 2025 14:34:22 +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=IRG1+k8pbjM5Z3ljbLQV2YsQEqqLoRIOmhjEHApeoEjOe804UEjcDPpU5PvypXVA7rBTqgk7D67Mty7bHEEW5PZ2VUcMX5LP7o0Eb0p5X/Tbsaa0aE/uDesN2eWc6jyygyGqIOX5nwQWRW7vyR/Xg1FtF+f3ZQStYGheVpj6wrEupMIOy0LNBm967qrDqn38bx18jVK4SE3CIcnx9OcMTucT9luZUxycORYYeqnlGD55MJWBBC6GRFUcFv3h4wgqg+oCn7GgAu9mVthw0ZcLSPMmFHmEAJXLrgo8cEsNjjgvJPy3cdXzxiRb1LWKBHwBstFPU8gidsuLZbI6xN2q2Q== 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=/8Ed0GZHoZmxNrsA3gira4oZ9miQ/9QaoJ8RgdgeTzI=; b=AlJNnAZKSuzkWMqsFOxxFKb0k/r7AT8vUZ1Z4O4qfqD64ItQb6DlMSkV5ALJ9yRB8j8ufDfgGjWfyeLwTq9oaDB0F1zunqq04y92+/0iXEqHN7vv2eKuEo8esPPVHWomiQNAJN3bxi/X1Jd43Ufv/lU4EVy0Jf4qvcd7OEfCjpVXQV7Unkw0oEj4JkUqFf5rDHVZgBCrLcc5K20XRvHkQ5pilloo8yGRj2L3W4bAAgthaN4S3Ne/gia+94TCcSR7jY8zqu7+53lPNZQISzV9mca1JdJFqsmzevqImhcr0BtOuPHMC1cWSsag1nNAP4/VG8NLyKApGj8lRm7696ukGg== 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=/8Ed0GZHoZmxNrsA3gira4oZ9miQ/9QaoJ8RgdgeTzI=; b=iudbTCt8Qwent5dxkGHOj6Iv5UxAUfGbnT3Rc1coGgc8V6PzAG1Ok+s6VSIanQhWmTLs8rQMWfSaJZW5EPE5GWIRoN0P2WCIZN7xv1XzXk+yZblfrjMgm0ziwhOC4/dYcqE5ExVRZUXyiCGorJ8Mhxa+hLrydprnfluiA9mIdYz2ZP+fDpAGjChFSYjO2n/RK3hkgu6vK0KJbDqE2P/tjqA/+szDpNwCc2F7VWvx/UgrvKGBnFtCC95zLZNFjsj6lTmy7KltFL5MS6TKwU0vgTec1HboIP1B3uMXeKYXosgSsN/Zd+5057MJg6esbtSe6Bru9L1f/KglFQwXC+L1QA== 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: Thu, 20 Feb 2025 15:31:59 +0100 Message-ID: <20250220143411.258158-2-arighi@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220143411.258158-1-arighi@nvidia.com> References: <20250220143411.258158-1-arighi@nvidia.com> X-ClientProxiedBy: LO4P123CA0409.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:189::18) To DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB6424:EE_|CH2PR12MB4183:EE_ X-MS-Office365-Filtering-Correlation-Id: 9e7aa30c-04a9-46d0-a340-08dd51bbaa93 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5bQeYVHQdsMzk8mOwrLfVUMiS/WcMR+LHcn9J1JKCVFddPAl2OeKdtvsVZGs?= =?us-ascii?Q?Hvw6ZqNUPfjrLQuOtJKzrJbdLqAODD1v7FhGZ7bohBxYqfqbmYLLAWPrakxi?= =?us-ascii?Q?wxDpYcXZOoEhUdRgDOXlCmNIbF5cANeHJeXY41mtxA+3ZGynpejT4W0AmRap?= =?us-ascii?Q?GR3Y1npHLFLpP4kPI/cXkwCh0gc/La3IEnFgYQfpZtmmfapRblc0azxYSVsh?= =?us-ascii?Q?NLMKBxeNIUYYG4EA0G5LDGzyqjSOExrqLym9Gqly8sFlsufF2b6i4/6bz+DN?= =?us-ascii?Q?GQKoPAj5ooosYcpcIJUHkZ27TiCcJ/a0n2qrFnTIjlmi/qxuQho0pk6r3J+6?= =?us-ascii?Q?DOxVszB0/syQiocU617GpcQ/jTQFR8tFHIiY9aJJjUbqn+s+WhQdXJI2ScZK?= =?us-ascii?Q?iK/X/t1aJnl+YZNC+jgAav0W/WXuDT2YX7dJOKSVf6GTHg7Dz6ngQ7FB922x?= =?us-ascii?Q?5sMZ1aF+eUHud6MqeXSGbLvQoM+R5frYnbARlQ4g/UCUSTkeR6YtnnBZcJ0/?= =?us-ascii?Q?mGSKgIUjLeUWvySw2HUkHuEaTzGHInBpG0UCt1mGYd4wtdtEZ9EiYEXXDJQg?= =?us-ascii?Q?fyTWXpsShJyZSBfC2l25kDA3TBalfH0siLiWohYZfNK5/LIIiltUTxRsTlMC?= =?us-ascii?Q?b7d0bFJnffvwndEZgKGxh2sz3VufaEB2A32xPCqRVfLnWrJW17jRErthy9H4?= =?us-ascii?Q?sLuiU9d9CD0s0fuJe+qVkDkt+pSSa7njuzgWfBq1fv2PpykhpfL4ZgABwxMD?= =?us-ascii?Q?QC26EMRKQRbgi/ZbICBRtM3mkAj2ywR+I810sH7+VB8fvUb4M4S7MvnT1oJ3?= =?us-ascii?Q?H6zbF1bdZwiy50qYnGWUZGoxk7lPmF47Dqm6VVDBk3Gc1kzaN6n9jEube3Rm?= =?us-ascii?Q?EIIPgSc6QOBu3Rg12lTVpNHhvtOyoW+6Ub+CTKO051icwS+EfJpVyy6llrV6?= =?us-ascii?Q?nPsz3MEfMsC+AAuVX8Vpx+zhprYhP/ZF2HV8CVo970miMtM/oFZPAItFJBPY?= =?us-ascii?Q?mWKSgrxu9RCina8QBxa7HSphTh2wYoIu65BM+giOUttmoVYYcibBIH2/9tUf?= =?us-ascii?Q?8Tt5cfmvs6O7vdABeEMhoZyBpZZQZcEvDcj67ttbcmuuhjacEQG4wOjB1LCZ?= =?us-ascii?Q?oMjYkYSdwXKPGqRewmRmd8jrszNumlBBQMjsmbGS1Qi3eBdiuooWAZaDLKzC?= =?us-ascii?Q?YrYJ5BXKQo7f0561/QscNj312NPHsgI66sapiOjrHSXpzFFiMvuB40An2F5j?= =?us-ascii?Q?/iWClt7YxgX3UlMefDESOLUFTacVgqFmsIwWTjEjq0Pd+RgxdvzLxeuYEwf+?= =?us-ascii?Q?76JLur5fG+2uWAo+4HRbdEsUttVSOrktz6nkJAUaP3XmvPh6pX5pcPdDSZf/?= =?us-ascii?Q?wjUEp5OpaDnQ8+9G5O0DGH5KJkib?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6424.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PT2ofFCallEiRJjcza1lkTn9OhjiDbIyycVUXSoLF3Vo7xRhQyX7AJ+fEvl7?= =?us-ascii?Q?0/c8njoJQHBIT9dW3lbsakEZOBPoDvd1JTlhEwffL/r7QSx0h3aYIivpfFJn?= =?us-ascii?Q?30NYIM2RKdnZ0d12MUaQNf9+z6VLux1n9GeRiERRAdTtzBo1gWTDdiiJH7Tr?= =?us-ascii?Q?ekOXhYT2Jk5rFyl5qbCE6Or4mCI2LuIf2wjtUQ6+etuXWeyyT1sJtGgP30gj?= =?us-ascii?Q?JoxiOpdXhgN5F6PMNynzMEOw8tRUboC5rucBRoNqdO0vKMfbDjpQS+ucEjza?= =?us-ascii?Q?NsHwsFd4y8W5PRLRLkT68F3qEoPBXRoRvxXuOueRkiM6YuozoIoM/IZGzRGk?= =?us-ascii?Q?JpF2pE55gNKii1SsHoFuUqXc5W74k3MWPwfOF85yiZODUOoTv/APi2IHrV25?= =?us-ascii?Q?u3iQdBNhgeho2qpnmSDIOV5F8CsthE6BErXeIR5ONPIxedSIluYu8ABbW5Jp?= =?us-ascii?Q?BYQEOMdXIRcILrlYTTuzmon2P1E1NqWYYpNiNKznd9x8vBhYPPmr/lItUNZI?= =?us-ascii?Q?cUWKX3MKxVIT/FJncegxwsQZuuc221ZFDmnqCqZdE9k6SvuVVhdfEdRtBh0j?= =?us-ascii?Q?NN9xQqDmjhrnxVLlMbBDPRrjlV8HLY//7H/JapjlmN6IfwTndfh7zMwWWSUN?= =?us-ascii?Q?nqiNK6pqLn24GTgR2Ql7oL5ACTHddPp1i2VQc6mszXE6x297+C6/r5uYlobs?= =?us-ascii?Q?InZ9GOZ5gHJD/3/nEwuqcP18rkjUCX0TeP8Sa1pUe00Bk/35e+91SuxA3ASq?= =?us-ascii?Q?NeUHuG2GUAByJlPYm4T9WI1pB3fPtZeXrd8IR0/zz8MuZdh64mAWu+ca+RF6?= =?us-ascii?Q?VE/1QG1kQZuCZmAXTGkuKc3IgcteqlaQ63IfIkgwGIazqsBvB+EDp6uGAJC1?= =?us-ascii?Q?ZhNKK/FGZj1L0dRkfJAq0HqYPKN0SYyNhkmWRHkf8BgIFw7qUiomNaOhF9Lx?= =?us-ascii?Q?+LyM7RJKMacIoUdM2exYodno4yaNNSr//OMyX1JXnJNX4Bvi2OXnBUC9gBII?= =?us-ascii?Q?DIO6AeNBvozufgVozOY/jID09cfUI1S0sn7scrsVLgRSQOTSGNaQ3sX56RWh?= =?us-ascii?Q?WuKjwV9LmDknSxnm+5HXo6Hb6IJDOaJlv5pRlgjECCAIQHDcJoCxdaIMJAjV?= =?us-ascii?Q?IxU23omay4tdVTY4PEyjnP7PbzuDnAWwo1Xb41l6zqrpMPvRaMQIpOwmdRRf?= =?us-ascii?Q?eQiW5XYKg4qwkz4KOiVoC028SRvBY6twXmorZTOyaI3dqz6Np626xaR1vw1R?= =?us-ascii?Q?WWgEXTVjQIqbuoAlLrc/T4zmFg/psquAsplt/DsR4kqUivf6k+3nc2CFHFfC?= =?us-ascii?Q?nCLVwZwudwEB7I5Piyvy4mROxBeEQzGmmxv4eACEBKuOjamW3GuLmfGD4NFd?= =?us-ascii?Q?vKMJ/GhWIvuQ/J88ojGIgjIsZc18agmOcGZViMx0TvmVfp2hIGu/2nISm5cW?= =?us-ascii?Q?lBjGJVIh/VVKk75x62mvSj7Qq+utlC49x15sKc9SqGb0rIUTSoNNKTI1oai5?= =?us-ascii?Q?B87EudQesdC7PHMOhor5v8z4Nd05fG8ISQtPHiR9be6MR4gMZQWY/5EZIlea?= =?us-ascii?Q?0uIzTe28qaUL06kbYZDlDj8ywrfkE44lOWKUDbmF?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e7aa30c-04a9-46d0-a340-08dd51bbaa93 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6424.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 14:34:22.1232 (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: qpEm7ackaqteZFLoBKBrlMpIXoevTYUM6ld4SGcIGMyW4kpUDDkJjOHazT3xJSGzWAwlomG9K5panFIx1Kz0Lg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4183 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: BS6NH5TNOMXNQULJNLSQ5D7X62MS7BLX X-Message-ID-Hash: BS6NH5TNOMXNQULJNLSQ5D7X62MS7BLX 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: 1740062136314019100 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 | 25 +++++++++++++++++++++++++ src/conf/domain_conf.h | 13 +++++++++++++ src/conf/schemas/domaincommon.rng | 19 +++++++++++++++++++ src/conf/virconftypes.h | 2 ++ 4 files changed, 59 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 49555efc56..3d5836ee0e 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3457,6 +3457,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) { @@ -3517,6 +3530,18 @@ void virDomainHostdevDefFree(virDomainHostdevDef *de= f) g_free(def); } =20 +void virDomainAcpiInitiatorDefFree(virDomainAcpiInitiatorDef *def) +{ + if (!def) + return; + + VIR_FREE(def->name); + VIR_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 9da6586e66..74840cdb39 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 @@ -3210,6 +3218,9 @@ struct _virDomainDef { size_t ntpms; virDomainTPMDef **tpms; =20 + size_t nacpiinitiator; + virDomainAcpiInitiatorDef **acpiinitiator; + /* Only 1 */ virDomainMemballoonDef *memballoon; virDomainNVRAMDef *nvram; @@ -3690,6 +3701,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 3328a63205..1a8846246e 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6837,6 +6837,7 @@ + @@ -7656,6 +7657,24 @@ =20 + + + + + + + + + + + + + + + + + + diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h index 59be61cea4..564c06638e 100644 --- a/src/conf/virconftypes.h +++ b/src/conf/virconftypes.h @@ -118,6 +118,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.48.1 From nobody Sun Feb 8 12:52:57 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 1740062201214795.3298408995249; Thu, 20 Feb 2025 06:36:41 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id A49172189; Thu, 20 Feb 2025 09:36:40 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 7B14F212D; Thu, 20 Feb 2025 09:34:36 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 1E1DF2180; Thu, 20 Feb 2025 09:34:31 -0500 (EST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2064.outbound.protection.outlook.com [40.107.236.64]) (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 5DA571DF2 for ; Thu, 20 Feb 2025 09:34:29 -0500 (EST) Received: from DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) by CH2PR12MB4183.namprd12.prod.outlook.com (2603:10b6:610:7a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Thu, 20 Feb 2025 14:34:26 +0000 Received: from DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793]) by DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793%7]) with mapi id 15.20.8466.013; Thu, 20 Feb 2025 14:34:25 +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=oXj8i+cA0phXKVkl761HjzAWDAMY5tSSn0QtJDNyNYigH9yieWNNujJzlWvYvnxWfd03Zi61tdOFW4Qtzs8ve+yiQNQEjMn24mnAZgNdnejAeXeX6wZK6mYGuOjfsTJkPSMFNDg4LakEjyGLrHpE1iqXAxXaU+ppJzTzcAonZn+zqBlGIy83EzBJ1jfp5r8sjCPYX2p7P8Xm1lEc2CgjVuLMW2cPvzpsvURTi7yJ0o+1TpaoR1k5wQEcQ0vdhjmx87RwatqiTbxTiOEhTRbMgRyCtsPr6XR//DlgrnPYh/bmlKcmRT2TzpiSfFkv0zhPDI36u8kLs/iXa/0GwtPiQw== 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=i757UCMstdlYMYmw21dAtVzATZWDvmGJO1b3A4Y+0HI=; b=uGId/X569Q2GtU1C1pGtBtDYBswSVQThbqIGx9I80uSXS9H+asA1ufRKnApLtaMiSX/+MqffK/5Kh2Ip1wzM2bHQwv19YPpAJnhysZMVYwQ8LGXTQVIzLgZjLkC5iv9SRruAmNy3REmeNSGNEck0Q8cCoedmODwHmBJiu5OvymW0sUQ4PJ38mJqzfiwJiF7t9HPayufxbA07PcuzU/kbhFeIKGhvzPiinfUWe89BZRK65D71nBsqkf1WCfxjPmc0ydjbDpUtcj4O1cWUQhR9NQvUPM2ogVr7nauS4m1m5lOBNPel6rsvA3gNhHszU0DxrZQ9OIH+AMIfsrBn/j61Sg== 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=i757UCMstdlYMYmw21dAtVzATZWDvmGJO1b3A4Y+0HI=; b=Bk/wJ5NT7N40t5pn6NB0ITxhg2C3VQ7Rar32Qip/RnfHRrMbXhrR/FJcr5zk3fHavieDmr7WO3Qmd250rfJmO558zshd/TfjP5FgEUT/0qW63efPsIgIhKRQDOf8RnwepU780giJADiGBkPAziiOyJFz2Ik22tz2sb20hl+ZjlbKHMiWlmkxnG5SfT4nLMgpd0YhRoAE9Uhu2q8HIVU8HzdlRG9dL1x7u3kJnnnkWjoH4UFTbRFue+hSJ7oiAW+dR1MgceDwBgVlNTv3zX852kXqWmk5Qsh3OR8vTPYfDzJKXsmJocbPl5oK05p5yAAS1sOiEtGv32WHZWhy0nJ/1g== 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: Thu, 20 Feb 2025 15:32:00 +0100 Message-ID: <20250220143411.258158-3-arighi@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220143411.258158-1-arighi@nvidia.com> References: <20250220143411.258158-1-arighi@nvidia.com> X-ClientProxiedBy: LO4P265CA0119.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2c6::6) To DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB6424:EE_|CH2PR12MB4183:EE_ X-MS-Office365-Filtering-Correlation-Id: 78f250db-502e-4196-b6aa-08dd51bbaccd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1+Ti7E1G7XTLgs+hhpZKBAaNuT4WiCPB5tnueB3oR+pqDNCVpYHvDmj3wgtN?= =?us-ascii?Q?iWpLjm+llFEb4R67a8uQW5xjo8O1Bb7sixu0LcQrMqq6Phaqc7BJab31anfC?= =?us-ascii?Q?IX3jOWOVVuuzYRTwoRhVAwqkdBcv/mUCYsHiUC5pUF4xiO58J9EO+x4PsSLF?= =?us-ascii?Q?fFG4wlNsqy+u7VC5IhQE5H2xSNxcDyvvDrtAFxrOVGwL9m1xDi08I32PKfbd?= =?us-ascii?Q?vC+26Y+o9vJx8Jvo1xYRU1vqGZgGGqPInED/tXJ/xM+t/nx2pvhsAebxpQyZ?= =?us-ascii?Q?rveo+c/eQQc+Slj95dNYyOlH0rOQX6pQsYBZLGQGXyqDeQ8Q1Lwn380mE85J?= =?us-ascii?Q?r/kML/BVaVamepWU5EXx5Aw63Wpe+A9BiO9NUD4dRDxcDhAHqxffpXruYHKA?= =?us-ascii?Q?V35RzrSzx/DXBFJuHxoIfp2x4jd53xkyINN+rljQHyxwfo/q7P2mWT3rcQdC?= =?us-ascii?Q?0i3cwq1tv8DN+1FDZ+J42jbkGVGW66SQhLxEZI/Q+lSeSrPAPXD8QGgUQ6ed?= =?us-ascii?Q?0dBbED5fz51dbHC/28WAn9SF+SBuI4IZSIoF17dRXle9YU5zYyPU1WFu9Anv?= =?us-ascii?Q?Hq1q8qgcmkiy0fNtoNxAceUgpptUgAF9RVosF9lnyID+GPWIZeoeBur0YOhi?= =?us-ascii?Q?ZLCnkva/qZoTftvRjW/d+nN7QWYI2QdeF0saw6LyJgEJ8roaSBhmQfdfH7gG?= =?us-ascii?Q?v73fZb9eLsSX3Q9V4Qh1p5nO50hiQqwqVFdx3AJOMUNKZXJVnXDLFqtsyiex?= =?us-ascii?Q?BigJSPxrpqV8KAew8ERuocJYEgR3DmJUkgUit7D4bGfNSH4ePRT/k3usubyz?= =?us-ascii?Q?KoBNtY5f0oC9EcINxIhQf1yZ4yh1fpgFMMpyFuj8h+6WEG5LbGGCILo5Ijof?= =?us-ascii?Q?PpPkDwPAOdRuAs4CfOfyxajH/Cz0bBz1zOrA+iti5RGWJeD0MDpdCV1OmQb7?= =?us-ascii?Q?eui/6qHzsZLFGqkTM9TUSCMY88YoDziJ0FCJzjNgt6i5vUC6U2p4ArDrvG+E?= =?us-ascii?Q?tnwF5iErP+J1Pxymdk0rAUSslinZKl2Jc5lXXKWhJeGxv2cNc2nMslVs2jzR?= =?us-ascii?Q?uX/kua/CM45UpJQOAea7j0Q6EIKNgyrgVfR+uxNIWEz6PpKv/U4kM54XY94K?= =?us-ascii?Q?NoNEn5b0vje0EDAzHWNjES1tDnBYxX8RlUB61S73b6lTu1Rv3ZXhoaKaV2fY?= =?us-ascii?Q?QreglvpRwRGKV/xdHhCFu7dcmz7fdCJsaofuH1z9Vnnapy88Af3NP3aCar2Y?= =?us-ascii?Q?EkDF0+CdprLwNh3rPtTeV1xaWabPeUZ3et+CvxHeVQ7qI3nCwNbZnBYNvBDV?= =?us-ascii?Q?ZQTt0CWQMgBU+2tSCrtWBpW7h4L117s1V1cqQC90AcBgeePfGtAtxf12OWru?= =?us-ascii?Q?TslgOWCFy/R1un8BW54NDWIWbutC?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6424.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?007WBEazO3Rtmxz6QaPGd8ik76TGV7lSIFZlO9DI5bscFCIeKsFkj2XwT0AT?= =?us-ascii?Q?vsT8lXV7A9va84Jlg4wdbRA908S2MoKiOdjIUnHdi6J98PFcDd5NE05Wfknv?= =?us-ascii?Q?0uCTrTPvEYxhhVVJ3OhvP0CrYxvhyCiORJRyiTVe6+Wv+WEP5wVtcQ/eZ2bc?= =?us-ascii?Q?YgGEkyqhckpwjFXuRC+J+pvh03CQd7p04h0eSSX3NCyKfEvunnQfazPHqARb?= =?us-ascii?Q?Hz/PM6YvC2wVEgoA2IDClDneFrPHhhiLcxLMbsGhsDC6XlLSyiVhs+W2uZzs?= =?us-ascii?Q?fAFP09xZ/qUEULKZt0aIhh/tH+gp5ZRaP6VrNNCk7KGzUigNFpD30IN1wlph?= =?us-ascii?Q?z5si7WWSIW1YaUj+/f/pgsxHh5mwDgcmXmEb5QlUH1OhcYrQCYG48cO9TO7I?= =?us-ascii?Q?vkDRdeSoVBPH2SbdbQ+RbokAUqeQi7ydRGJXROdXw/W1D2SUMvXOrIAuQhzK?= =?us-ascii?Q?H4fgZwNT+L6oGOpHyLscOyWHPOmbK6Pr8B99zXbJ5LD3CMTSBOe6dyKorQO2?= =?us-ascii?Q?v98Ddwh/e04WZ9/2W/w5nRJ7iU2xfMhgDCyrqKx+Fm6XYqXzLO6MyrfPImev?= =?us-ascii?Q?kpVgcJklrugO2pnuZ07uekC3eB1/jy6RkLM5lA0OPvnxcKXmXAL6aXX4LEzq?= =?us-ascii?Q?kYcE3+2uEcCjn9v8oPqiO+Ojj2rzB0jwCSvkOedNT9WkTTPLxkVKuVGW2IPA?= =?us-ascii?Q?A/hCT2HBhsfrrQVplIs1ZElCrBPRA0t/UK6RdzqVj5wJUdvtIVeoSbeZhcBJ?= =?us-ascii?Q?13BsBhte+FL2RZCMn5ftSlYN5We+RRt/kjv4Yqjf4KhiqwP8hM2++rMjtB6O?= =?us-ascii?Q?RzJvkfTni7Wm3eoygr0IAC6q7kfKt3uzxHS+hHvRSwxLangGW57LDip+sKTO?= =?us-ascii?Q?ZwnVvGDYz52G1H1tn2v21NfBXH2XFp7Yq107o6aeX0tXF8kjiB+hLaHiG6tX?= =?us-ascii?Q?xTkO9ILpabNEGy7xFUF2FP7l4US7l/ehga59sKRfNqjGzQ2qQjItst7Ipy7P?= =?us-ascii?Q?vWqaQ89MfCPa8iBugfA2uXXeGWoLwaFC+Wu9p0jhWDBfJh7JIx+RYeMTz2MF?= =?us-ascii?Q?VRcXTt+gElB+Gleapl8T/6d70dSlTspfd2i4fzkwtaPdP9fnA30tHpHQLTrD?= =?us-ascii?Q?YFqnOP5tvxQmF+R5MWYWpjnceGKE4/lub4EtclwzHU9BSf3lKvRdOKd9ekUp?= =?us-ascii?Q?CBCGKMD4Sxk5DtCMG1gukjP7HVwgw1JnK6sIczeieWq/P1fOQZfX5lqQoZDJ?= =?us-ascii?Q?dV57q/91sA+WJlLNNXBnicinSF3n0lJe/+1Kr1z5vh08a0cCLHYZQy1CiV5N?= =?us-ascii?Q?hJqSJpiRmr2Zb/Aku1ha0yGrLQYzrFJ/2XbDbN4I4f9s2vbxKJSkSP3uUmbe?= =?us-ascii?Q?+ZE+G+3F2rw8l2RO0anOtJ4Do6c9L+N2fbaqJyi8yTSpLZgb+6IC3OinER8H?= =?us-ascii?Q?QkXKAhsyNj0HO61JExzIl1WQ33vWDHL8wZVBH6jgcYeI3d9hdVfkeIGAh/e1?= =?us-ascii?Q?3qx5qmgn/TmabKiI/o3gxsdIMHj68k9EfTokuTCQJsS1aSgWma5Gl6Zkdy3x?= =?us-ascii?Q?wmlrwNqyTjEMAjpEYoVqX488Jpquf9sNi8xtNsjV?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78f250db-502e-4196-b6aa-08dd51bbaccd X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6424.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 14:34:25.8647 (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: lQ8ffs8jCiWEXXjLaGXn9rraKbrLLXn6vC+qBfHJaa6ALAnvShGMJrgESvKGxelePP5a4sbvzY/Z9WsMDFhX/w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4183 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: RQCH7YKCAV2HZUH5HVBPRLKT7QUYAAN2 X-Message-ID-Hash: RQCH7YKCAV2HZUH5HVBPRLKT7QUYAAN2 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: 1740062203665019000 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 | 128 +++++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 1 + src/conf/domain_postparse.c | 1 + src/conf/domain_validate.c | 40 +++++++++++ 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 ++ 15 files changed, 204 insertions(+) diff --git a/src/ch/ch_domain.c b/src/ch/ch_domain.c index 4f5966adce..224a97bd79 100644 --- a/src/ch/ch_domain.c +++ b/src/ch/ch_domain.c @@ -159,6 +159,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 3d5836ee0e..576f617153 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, @@ -3704,6 +3705,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; @@ -4630,6 +4634,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: @@ -4738,6 +4744,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; @@ -4963,6 +4972,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; @@ -5023,6 +5039,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 @@ -13402,6 +13419,60 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xm= lopt, } =20 =20 +static virDomainAcpiInitiatorDef * +virDomainAcpiInitiatorDefParseXML(virDomainXMLOption *xmlopt, + xmlNodePtr node, + xmlXPathContextPtr ctxt, + unsigned int flags) +{ + virDomainAcpiInitiatorDef *def; + xmlNodePtr cur; + + VIR_XPATH_NODE_AUTORESTORE(ctxt) + + ctxt->node =3D node; + + if (!(def =3D virDomainAcpiInitiatorDefNew())) + goto error; + + for (cur =3D node->children; cur; cur =3D cur->next) { + if (cur->type !=3D XML_ELEMENT_NODE) + continue; + + if (xmlStrEqual(cur->name, BAD_CAST "alias")) { + def->name =3D virXMLPropString(cur, "name"); + if (!def->name) + goto error; + } else if (xmlStrEqual(cur->name, BAD_CAST "pci-dev")) { + def->pciDev =3D virXMLNodeContentString(cur); + if (!def->pciDev) + goto error; + } else if (xmlStrEqual(cur->name, BAD_CAST "numa-node")) { + xmlChar *content =3D xmlNodeGetContent(cur); + + if (!content) + goto error; + if (virStrToLong_i((const char *)content, NULL, 10, &def->numa= Node) < 0) { + xmlFree(content); + goto error; + } + xmlFree(content); + } + } + + if (def->info->type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) { + if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, def->info, + flags) < 0) + goto error; + } + return def; + + error: + virDomainAcpiInitiatorDefFree(def); + return NULL; +} + + static virDomainRedirdevDef * virDomainRedirdevDefParseXML(virDomainXMLOption *xmlopt, xmlNodePtr node, @@ -14403,6 +14474,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; @@ -19822,6 +19899,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; @@ -20749,6 +20843,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) @@ -22097,6 +22202,11 @@ 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, @@ -22267,6 +22377,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 @@ -28313,6 +28424,19 @@ virDomainPstoreDefFormat(virBuffer *buf, return 0; } =20 +static void +virDomainAcpiInitiatorDefFormat(virBuffer *buf, + virDomainAcpiInitiatorDef *acpiinitiator) +{ + g_auto(virBuffer) attrBuf =3D VIR_BUFFER_INITIALIZER; + g_auto(virBuffer) childBuf =3D VIR_BUFFER_INIT_CHILD(buf); + + virBufferAsprintf(&childBuf, "\n", acpiinitiato= r->name); + virBufferAsprintf(&childBuf, "%s\n", acpiinitiator-= >pciDev); + virBufferAsprintf(&childBuf, "%d\n", acpiinitia= tor->numaNode); + + virXMLFormatElement(buf, "acpi-generic-initiator", &attrBuf, &childBuf= ); +} =20 int virDomainDefFormatInternal(virDomainDef *def, @@ -28788,6 +28912,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 @@ -28948,6 +29075,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 74840cdb39..6917ba35ba 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 563558d920..69f92d15eb 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2281,6 +2281,43 @@ 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); + size_t i; + + if (!nodeCount) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("No NUMA node defined")); + return -1; + } + + for (i =3D 0; i < nodeCount; i++) + if (acpiinitiator->numaNode =3D=3D i) + break; + if (i =3D=3D nodeCount) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("acpi-generic-initiator must have a valid NUMA node")); + return -1; + } + + if (acpiinitiator->name[0] =3D=3D '\0') { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("acpi-generic-initiator must have a name")); + return -1; + } + + if (acpiinitiator->pciDev[0] =3D=3D '\0') { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("acpi-generic-initiator must have a PCI device assigned")= ); + return -1; + } + + return 0; +} + /** * virDomainMemoryGetMappedSize: * @mem: memory device definition @@ -3199,6 +3236,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/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index edf7b37581..1c9e57305d 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -3495,6 +3495,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)); @@ -3603,6 +3604,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; @@ -3972,6 +3974,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)); @@ -4063,6 +4066,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; @@ -4126,6 +4130,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)); @@ -4189,6 +4194,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 22266c1ab6..4caf75af2f 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -3024,6 +3024,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; @@ -3090,6 +3091,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; @@ -3172,6 +3174,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; @@ -3274,6 +3277,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); @@ -3950,6 +3954,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)); @@ -4368,6 +4373,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 54130ac4f0..acae9240f7 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -991,6 +991,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 df1ed0223d..008748227d 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -8721,6 +8721,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 @@ -10655,6 +10656,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 970ae3949d..aac0ca7ece 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 1d0da1028f..1ab0e6c0c5 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6877,6 +6877,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"), @@ -7096,6 +7097,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"), @@ -7222,6 +7224,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 28ca321c5c..d043623767 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3534,6 +3534,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"), @@ -5453,6 +5454,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; @@ -5558,6 +5560,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"), @@ -6453,6 +6456,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"), @@ -7445,6 +7449,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 49009ae2e4..3ec1514943 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 3e3e368da3..d92770dc68 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5527,6 +5527,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.48.1 From nobody Sun Feb 8 12:52:57 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 174006223615569.69496654737475; Thu, 20 Feb 2025 06:37:16 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 59D9021AC; Thu, 20 Feb 2025 09:37:15 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 657C821A3; Thu, 20 Feb 2025 09:34:46 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 6D3DD2173; Thu, 20 Feb 2025 09:34:41 -0500 (EST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2046.outbound.protection.outlook.com [40.107.92.46]) (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 DE74D2184 for ; Thu, 20 Feb 2025 09:34:30 -0500 (EST) Received: from DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) by CH2PR12MB4183.namprd12.prod.outlook.com (2603:10b6:610:7a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Thu, 20 Feb 2025 14:34:29 +0000 Received: from DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793]) by DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793%7]) with mapi id 15.20.8466.013; Thu, 20 Feb 2025 14:34:29 +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=UaaZ6Fic5uYZ40imPfH/+JlaeBqy9iLpC8Uj064cRNUF4lI+y5TZFKt3Z/gkaH6QvxP9cqX2wZO8vOuMD3pXYBgtfD67ulgbHsV0VSBde+tmuWR31j6j8/7aCUwcARK8FfIUHPFNJQTwILjO80AkfbN9DW7UrOa+rHybNjwgA/ZCx8ugn0Z59M+XM3Q3gw+mm7QgSPyefV7RPIIegnYhDqGNGp7J/NAcGw4hyMYPTASsDAf719v6j1E15bBQKakuuWetJVVf78eb7DU4mgS9a9f0FZhhaY1wb11+hxEEvZB0O9+Krk9RAk2v23UrlEPRF3DvNsD0dHkInov+1G0hGQ== 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=36r+QXfKWGlCpq49WHwAnHY42YRntiN0ANtmboZ/gkM=; b=sBVdpyWp4dufQOsqoPDoR8Ddel46BgEmOJwVBmliFQU8KXqE+YNbOb0ExZm2ATww736ZHqzDvzpRWErHt9g22y8D/NyxK3c8VYd7wbMorCENq8O79sBmKoca15/BO1FPFmq6LMj38oaaohYjVw5Qd/+lCwqnIIKHihYJjvOi7d1g9cEiTBtPGNBCMGUSkTFhdWwUiEkxDhIwm1SxqN6OSvk2LlPTjqdssBI/MCrQltpymIzDHpL68FJtuqamNhT1A/iuWmHEaXoGtCUTMxm/m4/2LaQMyvKHWqTRHxyybA/KzG6Sm8C9GbVM5FK+R9NRumW3hxaudlebWkgo3Tv2cg== 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=36r+QXfKWGlCpq49WHwAnHY42YRntiN0ANtmboZ/gkM=; b=YncpTQNe0b1ZAojT3F5yL4BXt2bq88WowAGEWFs1opHOAD53eEiwOhPVMCFH3iU91m71XFiG9YBV08IRa9P+muFsBKfVqeMaHl19fK0eiJnn9Ht8GmxveRQMH3w0zBkdFqLpevpejX4dRWS2n6rQzS8E10lQQP3bBT+/pHCigsaEUYoBOq3N1WnKNbIPb9aJy1YQpi9xtmJPetnnjTlZ3yEvSLCtdtqrNC6YbPyaaXiXH73550c+otSswpisu3oTQlKCE1129ik0/zq6JYwRyu8HIj0CHJYyvqRYcIpnOen3/g02G4By0H9zPofiPx8zlO3bhQpAAoghS5Vhm6LX+g== 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: Thu, 20 Feb 2025 15:32:01 +0100 Message-ID: <20250220143411.258158-4-arighi@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220143411.258158-1-arighi@nvidia.com> References: <20250220143411.258158-1-arighi@nvidia.com> X-ClientProxiedBy: LO6P123CA0029.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:313::14) To DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB6424:EE_|CH2PR12MB4183:EE_ X-MS-Office365-Filtering-Correlation-Id: 219771d6-6fcf-4cbe-050d-08dd51bbaec9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?OXRlEaiDflYu4vpoR/bVdRbCAtgz/v3Kzq+aOP7fvcBZw3qZOqlQwzvEO8lL?= =?us-ascii?Q?KJnx2KpFeLhjVWRIGxbdMVIMEouG0u+bwY8puVNZFz5lp2XHuJFP53pOB+Lr?= =?us-ascii?Q?QVTTBj73hmXHVAQCYbHJfRl54yYkrsDVx5vaBYQnjhQR3+b1lm0Absspp/V4?= =?us-ascii?Q?oKfHIXFnbn+ahI86OKklNxj9BOKrFgAjTeyR1QPHbSeHFb0D/f76j0Gye0NI?= =?us-ascii?Q?YCeVpHtSsihek3rcqckCUg2R5ycMBj310NMhQIvlliifylB2Bic9oi4KPOpS?= =?us-ascii?Q?8FNG5rnKzWKWrbSTTI7ShW30piBON0cc9z8+kKpIUPo/mxaudZWhhGSvRReK?= =?us-ascii?Q?QoAhOiI00I2zQWlBZ11Oqpa02NhZ8wSXd39TCWuEqbas/VBoce8NcoKXah3C?= =?us-ascii?Q?D8YMeHMjKlj1wfuInDkgP7w44DRa3MYLX6JNo2A2lDzafNHooGzzoT+2mCFp?= =?us-ascii?Q?OZ6hUOPK4/IWh2kiTwWdZ+CCYWUketnqRq6fwrH9feUWJMOlmyinyaLXSDgz?= =?us-ascii?Q?2gSHkmqQqZIF0o+Jag14c2YDMXxEhaSSJcp1gyp612O+CR+DeuCWmMM9YWlM?= =?us-ascii?Q?ObZVvBGLgNR68IdLqbC3JrrjL7SYnz4vcj7XSQF0Coby9OYWpvo4pvHZ494F?= =?us-ascii?Q?dG0IzEBL6TvFn+IL7Af99UdD6oFlvP8pr4nduny6bQuGHiQ0jH7mY4nVOR5b?= =?us-ascii?Q?49uMRqQ3I0t3o+EGJlYMdMp/ZQNr7sOUJId+0KGU52i0LyFg8wRifm2rYJqj?= =?us-ascii?Q?Xd89gXCMdq7KmUli99ZWS3ozPMugtGZ6Moh7R47OzkYMrynFp10V+bUiumHq?= =?us-ascii?Q?ltsUOpvZSsi1g05zWzW5GCFk5t15QiS5khpozFJQqFqE13lihzbq/hvwmg3A?= =?us-ascii?Q?djV078KxOd1UDjPnEytNwLWr9i8U6kdXse2bE5SKYY0OxuEg66J8UOpYpH9F?= =?us-ascii?Q?fD+Yw+RzhQWeWjq1QGO05MzjUDhruAdYewG24FtlXE4QUMlr/jAHLdWKqq4k?= =?us-ascii?Q?2Zf3bjxiN4k95ZKWpm8J30ivv/G4oQUhmEoV9P3oLuz50B4tx2j3DtoKtXHL?= =?us-ascii?Q?vrPhD8pGQkx29IAoNEDD7PuwSUYdbBqSlExL/6CC7TAR3qMq9eW4fZVFa8Qq?= =?us-ascii?Q?qIQ7Rye8Rr0E69os411eCTbKRknrV3kbsT8TlycRMO363IqSiHuF4S+sum30?= =?us-ascii?Q?UJ03+wK6gVmp/q2CPznGZF5lDPmOWNWXzT6BWyeGaF0eaJmIr+L01uK/WK6S?= =?us-ascii?Q?axSPRNw/b1dt392GlvJSsDpSMoZsFfO0MW8q6U17lc/tJDfqoPlLrf4Onl1S?= =?us-ascii?Q?fqJKeDNXYk1tpGc7opt0/EwwYnVRiuPlIcFJehWw7urvHfTLaJ7wqmi3OTUj?= =?us-ascii?Q?yIYdezMHgH/tLGzLpq2WviNlOdU/?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6424.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?r1m06wZcmgtfZmK9jQibI5WPiTmpNiR0M5De7pHENmZNGkWZyd9INyWBXruA?= =?us-ascii?Q?x1X3ARiU0dZiFbxR2bV8HbSsB/o56/0pTvBVjVno3ko8bt/2bdHmPTJg8FTb?= =?us-ascii?Q?JpGBpslQunlEJknMabJMWFo+9SRsDxzheou0HBE19QbvHbotpPL1lbeYPMqu?= =?us-ascii?Q?99LbU1kvCcehV/EyAhGM5zqoNa1SXfwxZjLCLSIejF+Mxz5uNJxh5hbfIoaP?= =?us-ascii?Q?BRt3voKejuz6tNvHltWAN3gP3ZT4DRLnNxvLjQR1bWdChH82VE57k4oPUzt2?= =?us-ascii?Q?o3O/qX/ka02QzU6snczLfVwmBNswyigQebYAwnIF4+4myDMvVwBIZJlQnm6C?= =?us-ascii?Q?kXNyGZyiJnIENRKQmS0Y6+XvGepyKQIzDMtwU4zPpmUOMWgnXu5mtnXIMYm8?= =?us-ascii?Q?FqwMSMpEf70m3Gv0tpcBWvuZxyoKrrMMwgo59oTRDxTq0cCRJlQgc2Mu3buu?= =?us-ascii?Q?e+vBkDgXYM9LVmr9n1IezN37u1kSF0vxzULtW83IUUPSgiaGxsBwrCCQYhsk?= =?us-ascii?Q?omK3i9hbGBK+n6Y6d5ILxqhyqVGIUvGEQ9U9RW1W6q+bBjZqTZ80CrmJMm91?= =?us-ascii?Q?8X50aSZbmq1pOZJ5WTgF9gkBxcPQ+ZsJAugoCXC/epBnMDAsLILNfE6+2PAa?= =?us-ascii?Q?Yim/OhNumqB3QQiyE32JqKTpYc6u7RruFVMojX7bcbB81bW8PGZ74gYCsdPm?= =?us-ascii?Q?6dt5L1Yn1mjQB+4kpm99L+qsyeDy6lvFum/oBZvep1t/aIq+X9Sfl4RCPony?= =?us-ascii?Q?/mRn+HIbVZXHxtwhdc4lJPtD0lpS5v5kgjw8iLzHMum5qaIetGJFGVOnX4iC?= =?us-ascii?Q?BXIxglVJvrAcOa2runt3vOtnZaou3vJp5VG3AVaNvnKvAmCOXs97hx1u6nNQ?= =?us-ascii?Q?kjShThgjib4U6qZ9pho1eQlD5Lw24VR6gQTtVqgmMHIXemfw4JuxXlarKhiM?= =?us-ascii?Q?wM4PaVOZus2SrLofH1PRwNwZ+ylmb7p/O0YhgpYxzAgDXmNLQymcc4/MEKYs?= =?us-ascii?Q?kask6VwYi1TrE6DA3RnOVjy8QRy6l50P6L8OqN1mUQw425qU9mqScCSiPy8S?= =?us-ascii?Q?4v0rR4SviYCZ597zK7zkMTLPtRyGA6h8ZR8fOvmUQWf0IacurzRIpi9zAmak?= =?us-ascii?Q?nHQwyuujZ1hBwSAPjiD3OQxEWqsS51qtPmZTgEBDbEl1ftURi4uhZvpwjEcM?= =?us-ascii?Q?vwq9BWvQBAo8OaWQ8mAxx0hQONx8pN2u2Nu6t/qwRWcX97Hy/GP1f72A2Y4A?= =?us-ascii?Q?/ktE+lUKdeRNMT2qFpW8TZIlz+g57JF+Z7MlGTwhuQ5gOqCJzpeWEmfQDbv4?= =?us-ascii?Q?+/PpaZZdZc3ulDjgaflDwLegCI3V146R8arps1GCySGaterOMNs5/noqjOl8?= =?us-ascii?Q?MqZ7uxUfTN794je0xTkcuF0I2Bf9VuhA5RRPE077X4CskhlwHtRmmzVvvoKf?= =?us-ascii?Q?EVb9+h32FMpWavPxSw66BfV+D+ngBaUSczLcExrgl/i/7yYi0LMV3l4Hkd9b?= =?us-ascii?Q?AS5C4ll6ClaXEQnJoRzFcENE6lo9pKN/avbJHUJ/9KuNTuUOU9ZJql7clk6x?= =?us-ascii?Q?OsdHUy5/QEWJK/jQ8JcliAHfpBePx1BVBHDJXpeQ?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 219771d6-6fcf-4cbe-050d-08dd51bbaec9 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6424.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 14:34:29.0984 (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: /qMR3P+55ANa4mvpxqjxXHnxd8uCKfr9G0e71k85bYXXG0WcjjTu9VlWNR9N8TpevMfrQ6IrEMHyXokYSGrscQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4183 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: H3NDPDAX4EGJDKGXQAJQNZTTNH2HSLTV X-Message-ID-Hash: H3NDPDAX4EGJDKGXQAJQNZTTNH2HSLTV 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: 1740062237846019000 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 | 22 ++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index 0a0e2911f7..0b311c9416 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -1498,6 +1498,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 acae9240f7..3972b85fe2 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7568,16 +7568,20 @@ 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")); + _("At least one NUMA node has to have CPUs")); goto cleanup; } =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], @@ -7607,11 +7611,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.48.1 From nobody Sun Feb 8 12:52:57 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 1740062262656392.9942827599035; Thu, 20 Feb 2025 06:37:42 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 9914321C5; Thu, 20 Feb 2025 09:37:41 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id C624021D1; Thu, 20 Feb 2025 09:34:59 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id DBBF62177; Thu, 20 Feb 2025 09:34:53 -0500 (EST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2063.outbound.protection.outlook.com [40.107.94.63]) (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 8CDC121C2 for ; Thu, 20 Feb 2025 09:34:36 -0500 (EST) Received: from DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) by CH2PR12MB4183.namprd12.prod.outlook.com (2603:10b6:610:7a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Thu, 20 Feb 2025 14:34:32 +0000 Received: from DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793]) by DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793%7]) with mapi id 15.20.8466.013; Thu, 20 Feb 2025 14:34:32 +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=qz7KQhwDthoOm3P40LJxL/p+4Gbplhk9yXS6Qc6qojKdR4JfAvSD2k9wwr0Midq8OXlOV/+pGDJ/JCXbFVfGgOWQhFm5cJgopAvlD4r+vlyn9L9biCpvzFqnQx064OAwbMl75Hwz8tsFmvI00jKqRhUSRl2qsaqgq9HZDQLsSUvHfEMqPOnMrko8PNbdc4sPIpoDAr32hS9LHOB6nsfoyfn/ziqqdOM0NPLmdXJiBl8WVpV4qLRrH8x3XdaDwnI2fWB7wG4ngcoabNBC6DQurFmFd9775bhokUTpt9dQmqSj3/w0QRJnB2ek140QqqsCEiLZdG39yXO2ZzlGbWUTFg== 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=YS3C+oZqX5/CKIHoc5Bxg6dl1wEfrpB597zXNHM44xo=; b=wNQ1J/0RO8B4DE/CuZoKaOEmcG9myTeisQpcCEP3RaRltW4F1bBVbjIIbIytqmpmY5tT9laZs8yxXIHBT7w0TgYbPo2Mhjit/iqN7vZL5xrUEgpkiHH/LIFATw1XApumSw28xIEhmXsiM9lwNoJ9KRsHW0qrGCyXJHTw0ARzuiuUevJhWSC14NRk7SdZo4JyJat2DDF+bht/ylzaNhcGgRESKHRlurTm7S7L0TePwqc0tj6ec8K1vyu/M7WevUWd/Bj1gVguyskWVvbGQKS89htg0Szm4MgwNAeU6pcCFpnFI44c3ETrReL5y4tRNkJWq6ml24//Cv0Uidk6XcF5bA== 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=YS3C+oZqX5/CKIHoc5Bxg6dl1wEfrpB597zXNHM44xo=; b=CrkSCYaTHYWhxuKSTKU0nPdC6tdYMz9uOzXY/PeNnTcVZi65ESgsCwy3xiftSseGwyjX/VkyYpwS7d6Rb3J2oUtmrRs6KiQuwRH0Shy7yYsRRCXFg4ZWJMIvTgMx2NGRKMOa5TwBAgPP5BOY1+UpaQYgR3JaYdXYCatRTswe6JbfYNWl1vkLb4KPU62PtUM9NkJW4U7JbXtoec/n6FE6gS2w6R+sTG6pRagYpejmXasoLSW8aAWObU6Ff9b6igCOzoTIIUyEUroopfMSlfJWXrjZzA0jyuCGB7DiNpbEuEXe9SWH6681HP1wOSXz0iPXzC840uqjzESPEaxBcDeQbw== 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: Thu, 20 Feb 2025 15:32:02 +0100 Message-ID: <20250220143411.258158-5-arighi@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220143411.258158-1-arighi@nvidia.com> References: <20250220143411.258158-1-arighi@nvidia.com> X-ClientProxiedBy: LO4P123CA0402.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:189::11) To DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB6424:EE_|CH2PR12MB4183:EE_ X-MS-Office365-Filtering-Correlation-Id: d932e7f8-e1b1-4672-1f51-08dd51bbb0fd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?A6xxBr3418Zdo4liHqBDAtglx4LmLg1h32zAYQFKHLwZmFTu/xQ9e+/axm6m?= =?us-ascii?Q?Br+TCvUyS1ERJw37067EQa1h+YqO/24Hp4fsIMRjQ28V05jMuRYfPquhrLTV?= =?us-ascii?Q?2morDMzLXWySrSA5iL+4kgoHGd/uBcJW3lvpmYq5sCuNL/+2EdqYHVkco9Ve?= =?us-ascii?Q?LOfEC230OlTbvMuaBrjPPRG00qABOl6xs6SdzDBMtrZHjkvixF791tjZ7hmE?= =?us-ascii?Q?S863Tvf6pMqih5IEeCsZNseOLFYazSAGas+/UTXgHMs8/NDiMyCM2Qg197W2?= =?us-ascii?Q?+rJ/LgGqPQbE9CjKsPt04E2bHd1JHRJnd6Rkc3cEEnyVq5EGTrclRCuIlshT?= =?us-ascii?Q?YfcT7tBh01eFntFlBEakrtxivQcaz/D2Zu7dtcBKNyW3drk118+rvn/dKAGr?= =?us-ascii?Q?HEbDUVksyUs77z3uFABVqbJ37RCEWDVq8HFRDvBQhOM5F8DBfW4Xs8fDjizL?= =?us-ascii?Q?xv/eXnUnpFb2jb84TZi7YlqVX8ab3UMxi/qLnfToakK65rcx3EcqjdUEnhOc?= =?us-ascii?Q?CXpbNtIw7+33zooIe1MADJDbsu1BhH9igkHFNFRt4ZkYNhhiHBSl6gECyvQQ?= =?us-ascii?Q?4au/zU3KyrZYoMD8fm22C0Jtm5pf20rEbBh+oKTmxxH4IKv+wvF5Cp6kY3nX?= =?us-ascii?Q?bWwUtkqbut2Y9kz+++lwDn24dTovEN4dMFTqze8rPDCUX6krUHMDBUb+botP?= =?us-ascii?Q?yL9SdP+3ir2LTq41xYnYlGSP1rY1Tk/1iKRAUzvIt+OH+02CpsNI8J1CVfoP?= =?us-ascii?Q?0ry5m4D3KOT2Gz4/Se/c1+SdYAuhyLOrPrI6sJopmSYiRg0NmHHopFM160G0?= =?us-ascii?Q?zbLbeuSpnmLu0Nij2IK0yV7qdprgUsJwj2RWlZMUGsSOUO4JNoYAv9NRHiD5?= =?us-ascii?Q?USkDopV3MU/1hVjV4u+eJSnVyPe5gNNi+KQ74NiR6f2H8REScpp4+Ia5WzQG?= =?us-ascii?Q?8fOkxW3tWBU15zKQFyaKi/UOSayDRnVBX8izoCM8FwZpb9wZ9FmnZKqaOgH1?= =?us-ascii?Q?p515snq6DdtmCV8C1YCLEcf14aYbmNx5qfrcdbmiew0o25+L5GGeXOGaCFMY?= =?us-ascii?Q?ShFp2k3+BpVRHOCchM1eB5umAkjQ4SFUDFsCEDKDblBSqJdW1h9YZK1/xtI6?= =?us-ascii?Q?/zaDlqovbQ5HQ4Nr0W8/+7vSDWgDwJF55Lt8Lden6wpxss6kYI4wllb4QZWV?= =?us-ascii?Q?sNP0cV+amIukdr2NhvHxww03358uscP9EBMeOU0MdYiJy3bl9mSOLT1Rk9bG?= =?us-ascii?Q?3+lfRqa7eSkb4rpinaytpgiPDZ8a1MGEo/6zVwSO6XOcdxy86FpdOr8swGfR?= =?us-ascii?Q?srK8SmBFUSR4gs2vzfzzUPkciuKHQpraHlNyVA3UMTpGEwShylE1pPe38j3v?= =?us-ascii?Q?AADpH1UKbll59HbsultsEqAneCoo?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6424.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cGIui9yoKlTuyBgIIQ2DlbC4de5WfnxO8zc5ZLIsulG7YdYQclrLOzTp2wtt?= =?us-ascii?Q?qPz7EMGiX06xXBV9dGmXgtXoyHErpMHMDhf81pyP+Dj+UQWQi41QX4vthET+?= =?us-ascii?Q?CO0ohFi7pQ9JSBofOgligwsBuxJ7krF3msg5XigKq1QhG29nFcMSYpw4tkCw?= =?us-ascii?Q?wShWCMcAvvYR5dcu29n32IFh7h9tSA5p+7DjFHk/vQQ8eXt8rP4/CPIk4536?= =?us-ascii?Q?9yyT7eAB8P4rWhIlSwdqCblQe199l++aXSggN4NC9uC4wvJY6f6IhDDi/Idj?= =?us-ascii?Q?RzN+1j9YPvuhGpv2Ecl8sbfTqSJaKbxAwTVSgQpRJVgbGdqxWR7+xv8ukbjv?= =?us-ascii?Q?I1pOhKWz/4L1uCCLehz1R3Il5LwcM8Pq2mKVTL1oZCzjO8tUxEHRtbqXrYpn?= =?us-ascii?Q?c0yyJQQoNJoOJnjzNDFQCLV0OFQCTMrsSbaIz8V7gPhctLxotEzbZqHvVya3?= =?us-ascii?Q?PbmPG7nKpSyQ1iHNPyQm5dPro/AbD5WMxsz4RkaxqwjjuND0Ew44wnrB+5ei?= =?us-ascii?Q?9Bm05Omn17zwPT/IE14glDIn/imCRwdmJbTnr8ipBShH3dNv+NPMblJE+Vm5?= =?us-ascii?Q?LMKfpJvsWvw/zqFfq7e3qvp+5aUlNIXVTauwKb9HXqoM+bJkZxx19TEsCpVf?= =?us-ascii?Q?feXak4A9A5/rKnOynIGkvbhZ9rMtrKA8kv7+GCOqBsuCKz3oNKNXvI+euojC?= =?us-ascii?Q?vIGaaFl8XpZ/dRhzpeU6KqliOM3dwyv4Q2RsnxI3Er0S+1YzUmcld4zjJrjz?= =?us-ascii?Q?h1stIGgSd3kDweWQkC+mV5MNWCYXzXLpGussuinncR15PkYgsu+wOd6hi2lm?= =?us-ascii?Q?7ZdF20aDcGtW2GFpj3jc5Rdmfk7+z25Sz9LJ0ZN5doWEf1c4uanE/i/Y8M5H?= =?us-ascii?Q?sga9yFTiKasB9ujTBHdyzCPOjsbXuv+WLU1ME4/O7WAk0vUxiQR2cgmp1c1M?= =?us-ascii?Q?AdDXT1VrLyis2rj1RYCkpxpNpW5GTfjZpRUtyK50wQ8q4lIIT0s5x8KRH5Rj?= =?us-ascii?Q?Py0kX/GSu+E3WfNGecKc63auWNjuENPRKLUP5ip0ztWJ87KlDeg0dtK8mT1p?= =?us-ascii?Q?Q3uqovplsQCIYmMbeGOjwuv8CkNmNqMKzPIUUI+SSACLCdvGxXEQVxcEGIi0?= =?us-ascii?Q?+x1Qwma9dSiu7T7+sWU1GtG9Z9BbmKd3g2DsOr1/Sr9HAGhhYba+sDVEO1w8?= =?us-ascii?Q?xKyzuAQck3fvVgn3Wun37Xw4J1Yjt60Jlr47I9E5oUNIuiqS+akbuhvM7MYm?= =?us-ascii?Q?2kkwhCh5X9hH2fXfiOrk4gfnawwEpiiYiWNNviKZl4K55LjGgaqN95RgjDyj?= =?us-ascii?Q?LtxlHTHf3s0EaLO8l6E7zadTsR1BIOw5JqHWpctNFedQxo3zLp0f/FaxB8uh?= =?us-ascii?Q?sxmadyHOv1OssnWyjauO2ePQ3z3VPeZzCMtC0/l7EG3CsHQkNu09LTbVqJEs?= =?us-ascii?Q?kLU/M4yYOm4U1sTwwonv+grMHqpPQZYAc2ot3jknQvzA/6v7BheB3IZ7d0zU?= =?us-ascii?Q?uuA6jY0ZNXUrO19P+zeq82z+Mzi7S4YO9DvEdPNW0KKHWNnJny++a04zrcNi?= =?us-ascii?Q?hfHw8w875qatMSTDBp0cyVez7O9Cf5ei29cqgTTr?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d932e7f8-e1b1-4672-1f51-08dd51bbb0fd X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6424.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 14:34:32.7873 (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: HbfqS4e5cSUUeZ1jqiyhCwfS0RvfNzttuOFoqpypxubi+HH0b/WeFLyEfY9sr9tlMKESbe18CdQ18vP0FHXkeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4183 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 6KB23WMOL6R2IJCOS4RMTUOCSSWIIVG4 X-Message-ID-Hash: 6KB23WMOL6R2IJCOS4RMTUOCSSWIIVG4 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: 1740062264732019100 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.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_x86_64.xml | 1 + 7 files changed, 8 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 23b466c36e..b80dee1c17 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -728,6 +728,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "machine.virt.aia", /* QEMU_CAPS_MACHINE_VIRT_AIA */ "virtio-mem-ccw", /* QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW */ "blockdev-set-active", /* QEMU_CAPS_BLOCKDEV_SET_ACTIVE */ + "acpi-generic-initiator", /* QEMU_CAPS_ACPI_GENERIC_INITIATO= R */ ); =20 =20 @@ -1418,6 +1419,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 ee71331a09..455bd30cb9 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -707,6 +707,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ QEMU_CAPS_MACHINE_VIRT_AIA, /* -machine virt,aia=3D(none|aplic|aplic-i= msic), RISC-V only */ QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW, /* -device virtio-mem-ccw */ QEMU_CAPS_BLOCKDEV_SET_ACTIVE, /* blockdev-set-active QMP command supp= orted */ + 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.xml b/tests/qemu= capabilitiesdata/caps_10.0.0_x86_64.xml index b1cf477bdc..a494d46651 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml @@ -212,6 +212,7 @@ + 9002050 43100285 v9.2.0-1636-gffaf7f0376 diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.0.0_x86_64.xml index 4b64547b11..aa1c51f628 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -210,6 +210,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 ccc7673ba9..2ed486a034 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml @@ -170,6 +170,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 196bab7797..4026092d12 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -209,6 +209,7 @@ + 9001000 43100246 v9.1.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 824504dba0..a6beb19a69 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml @@ -211,6 +211,7 @@ + 9002000 43100247 v9.2.0 --=20 2.48.1 From nobody Sun Feb 8 12:52:57 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 1740062281139785.7687667841872; Thu, 20 Feb 2025 06:38:01 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 823EF21D0; Thu, 20 Feb 2025 09:38:00 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id A099E21DF; Thu, 20 Feb 2025 09:35:01 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id DAA472195; Thu, 20 Feb 2025 09:34:57 -0500 (EST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2089.outbound.protection.outlook.com [40.107.223.89]) (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 CFB062174 for ; Thu, 20 Feb 2025 09:34:39 -0500 (EST) Received: from DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) by CH2PR12MB4183.namprd12.prod.outlook.com (2603:10b6:610:7a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Thu, 20 Feb 2025 14:34:36 +0000 Received: from DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793]) by DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793%7]) with mapi id 15.20.8466.013; Thu, 20 Feb 2025 14:34:36 +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=KDmhWLyJzb/sTxxbi+CVeCAGTZyhd1J2MnULJhqzUUOAofFAUaBiOSbuIewcYUJ24h+1TM3gVYcq4vg50W9Xw0JXGcvwKhbOEfwWv1M5rMl0ZAckCaYuHl+NL4Upd9pzpsu84Ih8iEMUPX8KrL7FCMivxbbtufhRjHSKXGm8uNBvU0TS2rz2rJn10Ajf7oSEda1CIRZx3gOjp8nC+uUzM0xM5sc79iugKHNomuxQKmgdl4D2Rt3JBIuOfM3Ka8qLy8+t9Oi5qNEhBNqu76BvVUeZ6sijt00+UZown4KVayVuzCZ3ZQqZT79APtuFEp0NGd/2SN6H1XZ/8sWBP9ukTg== 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=UDRWTVhp7YGh+1FvVDO9GwBB3Bt7adrHjhOcsZIAr8U=; b=UT9uYa6rlA7xlY1Jgx0/5kCdUbD9HoMOnMHr7mOmht9V5ZdrJyG+DeLoWje5mriHC1xA3eTHhSMCmxCpCM9ftVPLZCTej1nZnCqiJOz1Ly3Ic3MvZCBCmGTLmII3fV8ZY15qK4tGmIWjCCVxlP0uYyFKClxQ9shigp87zskMXxeAwwO2gD7B4K6+iJZUteRuZCVFTjKbHc7SSCp31pdnydnXRI9lRQrTPEUAUUy64b+XH34TxJVcZqLyJ1AkUXIDBLVPhY7CrxnEQJu16OJ7WHZ3vQkFAmVupP+06l+iUqGpBJlZoVxYPsXt1P5YWyGUO0wLgLFApJqc5ypS4RW8aA== 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=UDRWTVhp7YGh+1FvVDO9GwBB3Bt7adrHjhOcsZIAr8U=; b=D+XCMaE8StHmyKQGH6KHpVAK/XcAgjDbE+ejJGarSy5U6t9iq4pB1UDGICyoUx3yjq8PRL48dEABJ9EShGXUe5ZS8EC7kZ1Tiz2/wDwpV5n5rOwWUZXiO7kT0eScTmy55L0og5GDdi0xWpRA1aqmAee23Vu+JwJP00HBAuzKUCksYNSojso+amxRr46MmdWMn/JwHxbANeP7jb+eHzpQv492vhwb5TcE56byS4SI28FCN+KPYiDfTU6Vcbh08H06K6RhvCJ5FadDBnFGEUi5AqrCvN5SZ5Fp9yszVtMCCqvZdscwKwo14/ujYv6wMtx1hGzBOoC/OBK72AlArvVzRg== 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: Thu, 20 Feb 2025 15:32:03 +0100 Message-ID: <20250220143411.258158-6-arighi@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220143411.258158-1-arighi@nvidia.com> References: <20250220143411.258158-1-arighi@nvidia.com> X-ClientProxiedBy: LO4P265CA0121.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2c6::9) To DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB6424:EE_|CH2PR12MB4183:EE_ X-MS-Office365-Filtering-Correlation-Id: 3df481e0-220b-4021-b7d7-08dd51bbb2fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Q0XHdftS87uFzPfxXQOoHQstiwP12xSzsOwrGMoctHTvo335ahqfiuLC4eeJ?= =?us-ascii?Q?lR8+9F4+m84Pi0syCYyVweafpdjqmM/rsrd+JH5DZ9Btz+kJgWKAMIz4wIWR?= =?us-ascii?Q?tLfFE7uwgz/YrfoZrmXzj4aV7HbiOenytBbOb32o1BAVIZ8xs1y9IALh4R1d?= =?us-ascii?Q?x7xs4iTUCeMoTUK8Drkc4SemxMXkw3+MGXmNPSg5+cnsEajoHanyaAFxtUYQ?= =?us-ascii?Q?a8L1vDl9ZC3nauD8IlIYuRGVUPoDV8CdWgNRhTxW+yBfPItBW+XvbcNgS7oL?= =?us-ascii?Q?lZaLivdn7jDS63Gko24Ejv+sTBp1aCvSzOpHrGMfuxT8VjmwWd3TVS3CvoY9?= =?us-ascii?Q?G3Kl47G43wfUOvadg7O5qCsl99dYMawhIE3IkRDDERzwcEsNEack2HbXpfKc?= =?us-ascii?Q?KDN7Sl5nTYLq/9peZmGkl8ZZ3ldjLIgQGnXRxHLjSdSH1N3ICTpq8p8H+10j?= =?us-ascii?Q?wlrbruwk+PYrx0oKizFFYXrAmjkAiq1nUWb+yv88JcdvXXeBrWatE6Hp4yCJ?= =?us-ascii?Q?vN6hn3IRMNexeFZX71Zegk/Nd9SUdcQQJJp0iZMJs6bwZs9OVb0OLZEXjbSC?= =?us-ascii?Q?g3wc/KMb0tvqRZbztOHYhpNBhZIisiFLyzkF5AyH7rIpCJsUkhH0GVLJC7Pw?= =?us-ascii?Q?mO0Za4oZaJZVHNAwYOMHq3+1bz7+3O9v8Beoo9uSUbFQ1xmN/rn3vVvSfs1U?= =?us-ascii?Q?INlo2d998edwcmxQNCghX1jc7Ex40/R+BDcB9FEqSvQZ0tcrZDvM4WjgGqQQ?= =?us-ascii?Q?Hv2xhmMhBL7L4qMUj4qdAzZm6R/IoOh0KNtQulhCYBaXM4fYe7u52fFCxEDB?= =?us-ascii?Q?xkVdihjpCG7P3INepTWaQjPihf4VckUlmp8aST/a2hY2BtxP3mCAcpOxwIiD?= =?us-ascii?Q?7NA2ZU07UXJDD3EP/7EALoDN4TGKkmcMDCpzMm5UNW7PifLTTx1NgN/ZcjbF?= =?us-ascii?Q?AqNqGLx3H/qnA6Iwz5+VV49PK2FG14tcL/uvKaT3+C/83+0RMaTp7X3v+MEK?= =?us-ascii?Q?TfLRe50sEBO6i82Hm+OWDOSfNB93xZPkOF3ETt0dhXVJpaDuM11xMc/ExXqn?= =?us-ascii?Q?4OoBzSpEmj/HRSR1H1RSKcllCRQ82FqB3ZbJtXX79Ka/yA9tWjACiOE7BguJ?= =?us-ascii?Q?1LJ/TO8aYasH6ZwCXLQJ9HpR28vqqgNVpHvYKbpRqHwn/S1uA82AAykKI+uW?= =?us-ascii?Q?DlU/CXNOvBIrRzVnd8wjTH+AcV3lOdDaw2UxNAGsS17a2C57nJUNT92exKBb?= =?us-ascii?Q?NmWsNvqL3J9zH9WUFHi0jJTTfkOy77iqeCvNvDyc5eBhlhVW7FNyWs+a8j34?= =?us-ascii?Q?1Fau6r7AZfb9i9FLdmN3EH/mkBNZj16GWGGI2USccbCarwWIYSB0LARD0Phc?= =?us-ascii?Q?avRCrekExPLmMyiVWvY35Z03iyU3?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6424.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XfE+pZcdy0e/ULw8LhPaw8voDMtyx9rL0Ez6EKX5BXJoeqbrcX/uGcK7T9H/?= =?us-ascii?Q?/gJP/9rpAI3uUO59/s8hw0/JqDnkJGAwWE941x1sIcnR2CHywKcY9wk8ORtp?= =?us-ascii?Q?s+CpFdwSbW/F3HWxNItAYJX9DLLJSHy0hjYYvI2HF1I8yfrfhSVB3BtH+OSX?= =?us-ascii?Q?2ior7yyOCUOeDtF5VfcifhuO+U+2rtdRtJ3DNf30/Qgjxkbnw293Qq8ZSQgd?= =?us-ascii?Q?3dN+BBfHjUmhwRU07okQUd0ZRXAXXBHcnB08kxEeewzQkptnqccNa5T9SDFa?= =?us-ascii?Q?Mm+9uOmNDqSasPSvSD5ZcLV4DN4j8YP7fjFrcie3X2ZSveRGZiHdEuFcIl6n?= =?us-ascii?Q?98fb0++0wUmDycQ96OibFfpzdAShkgq/kZhtGlU2p0FPB3zX7FNI3NjDf9Xa?= =?us-ascii?Q?xB9obWZcKnV2H3ogmKLD0LSVkVpf5GaLEB76fsZL3RzJrCfmXuABcfCkHxtN?= =?us-ascii?Q?UPYAUIZWIq9x1wopxsq0YEVvGSVFlId+i26vFQb+7zzWHqlhbZlRz44MjEBy?= =?us-ascii?Q?saznguCeZoQKtL2l/EKPTi+55oQWXfISeysOQXuLHOVZY8HZuNoJmeMo2FJC?= =?us-ascii?Q?/ZoV2xCuc+zX5gEyhaG/4eAJFhbE3qkxWTRboHvg7wGGagJP7ind5BZ2fB2N?= =?us-ascii?Q?XfjkXUpR5OVOVIFYd9gmHZsDh94qq673NHEcMzglNpsuvp3Ho+4e76h2LXco?= =?us-ascii?Q?Qk4H7r4avlY0iFavaCNWJqOuW3hgdSitt9SFL7KueS37cxq8tPFCifFokOml?= =?us-ascii?Q?qsluwwtykt5u3vDviDn/1sFPI3Rwm2+9umPHiMF19TgAhztzplumZk/A0ebE?= =?us-ascii?Q?LomdLzwUo7wSpe/0dzqI3H8ee5bQiBefsB/KCYF5D7Vc4764rnvY5vEAR/hx?= =?us-ascii?Q?vB92fYa0dGWl0NipsuesQlFvADBRkCkGPWSXyzOw+d6u/NaqZMtLKmhLtID1?= =?us-ascii?Q?D+KVI+m8ur6jgcCsvZYc2Z8hMwffdhn2MxGtgqCO32avaSSttLBkNbc/pCFr?= =?us-ascii?Q?5p5x7t0xV2g6jbhC68hDmFCNvkosKZDnFDWn4UXAuN4sK5/CF68FQvZ/6WS+?= =?us-ascii?Q?Gv0Mo8sUc4DqZWX2NEJep/hJop3WfxiepKcWOWNpkuAqMMT+hs4aNp0nmnFI?= =?us-ascii?Q?nYJ47nIjFqPU3shWAKt+uaJRXimDoxhT9F4Yhs08Bxk0XZBLrIcR3YMTtTHh?= =?us-ascii?Q?9mw4eZt0Of0uUyRYeySXxa5eyEMA4rdpOum8ts9exACnQw7gWnGtnPWPIZQr?= =?us-ascii?Q?7B7yEhR1MggdO1s63TEEEhqeQMY0o1WaX5WnNqAn4ZPe0E0FDcGGoRMpi17Z?= =?us-ascii?Q?MlmZ+vk6aFGdzphyTgVbHNPIp/IAUfOeCbAadySleFTESjPFqQLg2M7k9d+Y?= =?us-ascii?Q?ojaHAFJ+XJZS0okNrLpGRsy9jP1djN3rGFDTqMsmad3oN3Sf5gfiv0cawcVX?= =?us-ascii?Q?3jdPOgTGVGWynQNWHNbJvb5UKDbj4i1RTx5TI5U2B12CcujVPFXFOzQs9PvL?= =?us-ascii?Q?LTP40tRk73jicCBLX0HnC77p5+6jDD0xsKR3aFfPpuqQdBIqNihLovK4UuRP?= =?us-ascii?Q?NiN40sNjXA5GU/CjRhFcfvtMPr6FfCJZgWrtMVje?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3df481e0-220b-4021-b7d7-08dd51bbb2fe X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6424.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 14:34:36.1261 (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: Txql6b2mONbyYB/IAvnPORe/h5Sv9U79imgUImJEOqCVWs1rB7Yl9VBTL8xbiwGqJVSfslS4tacqghnTUatJKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4183 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: V3BDCJZJLO2TB4YXB5FNAREZNCQYS2OT X-Message-ID-Hash: V3BDCJZJLO2TB4YXB5FNAREZNCQYS2OT 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: 1740062282098019000 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 | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3972b85fe2..b926b0189c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -10292,6 +10292,26 @@ qemuBuildPstoreCommandLine(virCommand *cmd, return 0; } =20 +static int +qemuBuildAcpiInitiatorCommandLine(virCommand *cmd, + const virDomainAcpiInitiatorDef *acpiini= tiator, + virQEMUCaps *qemuCaps) +{ + g_autoptr(virJSONValue) props =3D NULL; + + 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, qemuCaps) < 0) + return -1; + + return 0; +} =20 static int qemuBuildAsyncTeardownCommandLine(virCommand *cmd, @@ -10658,6 +10678,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.48.1 From nobody Sun Feb 8 12:52:57 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 174006236255161.7788907065318; Thu, 20 Feb 2025 06:39:22 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id E19872122; Thu, 20 Feb 2025 09:39:21 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 52157218F; Thu, 20 Feb 2025 09:35:14 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 1E32F20FC; Thu, 20 Feb 2025 09:35:10 -0500 (EST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2049.outbound.protection.outlook.com [40.107.93.49]) (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 CC9AC2171 for ; Thu, 20 Feb 2025 09:34:46 -0500 (EST) Received: from DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) by CY8PR12MB7196.namprd12.prod.outlook.com (2603:10b6:930:58::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Thu, 20 Feb 2025 14:34:44 +0000 Received: from DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793]) by DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793%7]) with mapi id 15.20.8466.013; Thu, 20 Feb 2025 14:34:43 +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=gH9YSGcIjizESiLCMOPv9IVAZujbbVVagKyP3D18wnp2oRtrtjHmjl8ofGO0pRizf7zZXsvrkZIw4i6C3XMLbks6ObynHp8mmJNELxElKrFcxXCk+8XTVduKfyaJLHcTgIff0h6PJLa8tVb8FsH8fu5T+7/TK0l+1o+gstWH1VhRnTbFyltgdieb0WPVX+MxK6DzCNY3LrKSNdRy7OBJq4hy7CM0alnoAbU7OQG+taeDdwW5aODRM69WgiwVkm/Dr7+EIM6OBsBKR9hIfuLCizHshCMUJ0DQAq7d0vrsntR9uFm2SKA1IDsLjvPf+H0O5Ds7j5azi123RTYzikTTKg== 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=BBAXjsMEAJ1Okptc1HVPmqVwuRdaLKrGQJNxuuO7fvs=; b=ZKo6TXc36Y03qKDTzxebE/Rf/fkc5VoDVfGLCXIaLO+uPU4NVlitFiRUYshJ3FBzY7rVfo8zROtoxqSpu7xI1PLuHFac8IlfT0lzXTl4viQTvBrNVItLcg5jd4XL3d9b5b5QRxEkeTeenO00BsviKnXliJuaVSx1+vNt9br4iod4t1E0lYXZ/LBX8QkdGN/mxCCXbU1lbXaBQxenZVAYCLGwc9tABokSThr8Kx75qV6XinXUM37sZdhdL1hI4jCd4dsxNblmZFtbZBCtKZ29nyjaPBRicRpZFI73Rs9fNWDdNKauhUu4oLwaesbVaPd7s1J2VCEb/953ig2CTpBarQ== 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=BBAXjsMEAJ1Okptc1HVPmqVwuRdaLKrGQJNxuuO7fvs=; b=LH3NPAuUlaQoWytru2hjooX7ETGjRzyyXmjWjoLO34c03MLdCQRCo+YMLxqlZDEvEtyEuMNtD7xRIxoglDdO6vwoNDLIq1bbD3R28YZ/d53EQBpSaYUULmXJAdrZbp68Id4mu7oNRAMcwWZBsosAqKqFRsL6NrTO3b73JM1Q6IGDCsL7pZLtnSSDgAFt9n55SSdCC5UsfUJkuIj95C6f7FiJqJVWpeYKQnw7FySLuNbgFX2IBcuBZ6uEyrPJWDrq70Weu734qYfNVMClPVKyZC72NSMVLrYLbWUQr2UZ4xu8TRkC3jDs2yOwjO0mVOLqgvYDHd1sEffi/M/H8QGj0w== 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: Thu, 20 Feb 2025 15:32:05 +0100 Message-ID: <20250220143411.258158-8-arighi@nvidia.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250220143411.258158-1-arighi@nvidia.com> References: <20250220143411.258158-1-arighi@nvidia.com> X-ClientProxiedBy: LO4P123CA0326.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18c::7) To DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB6424:EE_|CY8PR12MB7196:EE_ X-MS-Office365-Filtering-Correlation-Id: e8e7f64a-1d56-4000-d692-08dd51bbb73a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nYY4IeRPNm9+D+Y1vOppyY7o3tRTG4DGAT12UENTh+V0zIf1I36cFF89bSZF?= =?us-ascii?Q?GoE8NK/ci15m4s1kdBJ3rXOQjjmnmAB5e7LDPChrZPvzIRulxPuo6vr1C24J?= =?us-ascii?Q?LWbuX5SAwNx/x6AXRQHPkloNQzHIPgY9zwop2lYhRbIMs1TALH4NrafvJrdw?= =?us-ascii?Q?mULFMWlosFjMzJJWi6oVoQgCHEgwOxJlHH+lr2/6jOEYdtwCynDK2dQtyqjg?= =?us-ascii?Q?lPFuFzy+pejrli1gWEsRQpi20Ju9f0LH016ma4CotaU5976TfHGInmcMCV9u?= =?us-ascii?Q?/3YLH9yIFG4Dq+oFeE+HnjZZ7+68+l2i0bHuA046raTuc7rpNtgz9CegiJdT?= =?us-ascii?Q?CVo9nhYypMTsAlB6gXu5yAEAXqMnx0iWjt7D54rtp7aJYUkmHNI5MsEZlmBl?= =?us-ascii?Q?cm6flWj4/p/pC4E4h/MXfqqod4biIOnJZxUGW8PAmrEFLQcYJnBOUazR/pGm?= =?us-ascii?Q?LSD0VcnEn1jVmWOHA0C/yQsw5FG3YLxaIGV92+OH7arwa5D7rDJht8qBputr?= =?us-ascii?Q?cZ/8Mc+9FuL9xaM53MNJk1te/2w/9lmRF4fGUEEoh0V1MoTuQetflpBOKPpP?= =?us-ascii?Q?YUxOWE3VOPuTih0/GGlhYBR0OvaBUnzR960VYU3TrVFojJvq5whMVkqe3axQ?= =?us-ascii?Q?uKH6kK+u3RAmDBhUHX0VO4HMj2dwMzvIpA24a+cm01BhU7MK1yo5Wv2OFIsC?= =?us-ascii?Q?11tpF8OudV2IsNxY/jb4PE5ZDEglPXQjrp7ToSic22v5FiN7NggbyFXIFjxw?= =?us-ascii?Q?brzCzDvyv/FzH+8noCXcodnI9DotrlcHboCGEks7Lxm41HL9kMCmbFY5i7h7?= =?us-ascii?Q?bRTDjjoWT3VWZpb8U57mfdhH5x4t10FCLuyp6AWHoBFXFCk5Zy3Wdw9za8eD?= =?us-ascii?Q?Jc7IG+jkrP0Uz9fXj1AgxGLUq3fwJ+952LJDqYxGMyFGzxRLs9+LljI3xsjA?= =?us-ascii?Q?ZvNN83Jx9AZbwZWpEBJj8F7q1yKLC3jNrg96uiK2uw5bD1I/5JswN7zN5C8/?= =?us-ascii?Q?cxafuJSW2IVoBkE0e5l81qHsPuNF2ywZe1xSd05Pl0IDMOXrjy0kDM8BwZFS?= =?us-ascii?Q?Gunf+EM0cpmJp3W0QAx1nkZmKP9o8MGeOT+/x4uCD5mxpUIraGbNM30ZV69a?= =?us-ascii?Q?0+t1X0f95J5q3sSZSex2tdgzp5nA67ghW/bcinZSmsq5iZ4SeVRmdLG2Kaar?= =?us-ascii?Q?AxIw/JGB+XXfIPcjj4Hem27YsYrjtDY+Leg2lKy2O70wI6J7X9+2Kr4kHkOU?= =?us-ascii?Q?WNLvm2f4K2QuCTo4piSDUxO6NSpKSqdwInfgQuhBMTD8kG1n6L9EhMXZn8sq?= =?us-ascii?Q?cUsB+KvPqzafe3kxEib6w+dIlO9Df8ClaIHL4lYOKCkpoeQCvBxClJiNAaY6?= =?us-ascii?Q?do6cGXA2gYwr7bDnEURNBJbWKvIW?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6424.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5sPw2hLGc3XxOoGasyiKTFqQt2bInYHmIgcGLlNZVU+VJbgdnMOb3Go8JMFM?= =?us-ascii?Q?DMPvsrp8cg3V8H0E7XTD8CmKuB5SL/836KPxSXHXWykThcOrBxAdCciib4zt?= =?us-ascii?Q?uk1qbonWomWp318p2CUyyhywh11QA0iRMmskEXnUR0CPx374J/iCp+JqhADS?= =?us-ascii?Q?JqrZFrT4nTj4Vhh7Wg85qK8mk6l6lb2LHMFMy/exsouY/eWHqCwsKayR8dvC?= =?us-ascii?Q?YBxBY1samYTL9TSuyw7i1muS0Msq7K/eZSYX4o0Ye71pWn4M1kwnDSh++My7?= =?us-ascii?Q?l1gx8QPuIWcDv25uHf0wjPeVhpCLcizwbT5MbwuGQY5AEyCLjRsnXYDR4CMi?= =?us-ascii?Q?W2eRbO61a4XpE9jzO1C6ZW5gZGI7xW8ex85oFgyh8u1D6yvvWMFHyfsEKP4D?= =?us-ascii?Q?pigdZ85C3GLcXywj9qk0cpJSnzxHmUZGzqBYZEbwoqX1wJu5d8V0Piv9y9HT?= =?us-ascii?Q?f1WjgCsO85mUlCpXTM2ZcmJp2RSDZYF7/V0WF0BG6nqYJvtWlccUhk7PQL5c?= =?us-ascii?Q?RE+nJQx1loKFpFOh/XO1qtip6v9dFbI2lD3dhKpL6ysWs9U5RQodNYcR72lH?= =?us-ascii?Q?Kwn814vPcN7/6JAoPWS8hpNqG78iQc7doqOx7SbBGLEH+2xYSE7aclmAQinX?= =?us-ascii?Q?zGZz4B8arYDoHKZmdLq32IRpTw7wsuqtwY8i/GptMBZ++7nlFRiG2Zlkl/IY?= =?us-ascii?Q?SXfgE5rEsvNniMQd82NNBFb7y0VegM6DhBqcmTTeII8hfaLoCUrsppxv8+Jx?= =?us-ascii?Q?8ZumKnqnoDuca8cTBQ6s8pWKfJZb9UZpwLAiu4XLV0mdch2mozih0DuV/wie?= =?us-ascii?Q?S6O4U6XyTqc5D81Egii2mJctzqBiaMTdoAB40LEND4SayfVBv/1lqXTUj/y9?= =?us-ascii?Q?bqoh6/UuwAS8RM/AHYlC9aFFrKYSQ8hq2aQokfLEj5ALlNOftSkROonSp0Ye?= =?us-ascii?Q?2YYEo7u94paEVzLqh/gi+//F0Irxq8SZWOjZEP8cEcqIbXRcNCy6wQgpCKwi?= =?us-ascii?Q?0smOuZmieoj87uoJoM6gqipWe5dEmzi+nKiniXE4ZLxg+hCvh7QeJEzizHbs?= =?us-ascii?Q?owapuPGZbBYWQqOgd+9x6wh0c79neCRE2RmyqzNA9k22OlxyJ2HqHrYWpvqX?= =?us-ascii?Q?AIDr5TzDTz2c2nZQhootRJpAT7uT+oVIc/L53nTKk26v9ipfzFrWQIXlZzXZ?= =?us-ascii?Q?5P5nLwlKXq5gOc/st5Vh7dwNXyyuTptxo3minnW0ZCR9Qxmnv9PTN2I44q+4?= =?us-ascii?Q?0mwjuEDduhPgem/9vsmmUbGw9pP4LP6LC+z3+Rgd9wdh/I502Dts7vokDX+W?= =?us-ascii?Q?YKaUlmNd3Msaa+cGTIcGIrE8liVOvcan/SHcPLaDERoHhg5QbRKS6MQt0p69?= =?us-ascii?Q?3abvDinkuoWJl8qTpEY3MH+fWDZI+MMrj1KuKquxoSJ24ACbuQ0xK8vry1JV?= =?us-ascii?Q?DMgg2UF8Sb/MSK4FcTO+7Vb+VEVsmPQOWUStsBqr9twaCkok0YB/ltdNCbL8?= =?us-ascii?Q?Q79banT2ujvvFamTVj2gYZHNu/qv8fOuaFdaUvdo9n7H/9G/GIpNULJXF74J?= =?us-ascii?Q?bYF7JM4lfRMsA/w0c1eK5lnhDLay1x9Xk9WITlYg?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8e7f64a-1d56-4000-d692-08dd51bbb73a X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6424.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2025 14:34:43.4179 (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: hxbI7NL5haC5FRGzrtsnyfDf2gD0xrnMytrNJb2PexC9ySnCeriKAKSEmHNvOzSp7Ts4IbxuZBrUldSoADa6IQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7196 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: RJCRRDBFK5HVCCVDF6GL5BH6VJUDQNFU X-Message-ID-Hash: RJCRRDBFK5HVCCVDF6GL5BH6VJUDQNFU 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: 1740062364726019000 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..16b7090812 --- /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 + + + + +
+ + + + +
+ + +
+ + +
+ + + +