From nobody Mon Sep 8 17:06:10 2025 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 (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1757164829279797.7854233476797; Sat, 6 Sep 2025 06:20:29 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 4DD8244448; Sat, 6 Sep 2025 09:20:28 -0400 (EDT) Received: from [172.19.199.3] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 5E54644453; Sat, 6 Sep 2025 09:15:50 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 1845444466; Sat, 6 Sep 2025 09:15:42 -0400 (EDT) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2069.outbound.protection.outlook.com [40.107.212.69]) (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 173754448C for ; Sat, 6 Sep 2025 09:14:31 -0400 (EDT) Received: from LV8PR12MB9620.namprd12.prod.outlook.com (2603:10b6:408:2a1::19) by BL3PR12MB6379.namprd12.prod.outlook.com (2603:10b6:208:3b2::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.27; Sat, 6 Sep 2025 13:14:28 +0000 Received: from LV8PR12MB9620.namprd12.prod.outlook.com ([fe80::1b59:c8a2:4c00:8a2c]) by LV8PR12MB9620.namprd12.prod.outlook.com ([fe80::1b59:c8a2:4c00:8a2c%5]) with mapi id 15.20.9094.018; Sat, 6 Sep 2025 13:14:28 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=ARC_SIGNED,ARC_VALID, DKIM_INVALID,DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=b4DPIf9d41OHJOYjMsKMHTcZcuHcCPvGaIBqzsHV8Fcjpq85WSUdjSTHP6n+zGeGGuP1xwarfZ1NL67glDhGlnJYhUmtwppq1/GrUWbTQhjYvNp37ragt9E+21Moo40V4GfHGmzd87PJ8W1BIKF+kDX5UDFWarWvWAs9IlR714tSWE+bLtBSqnClCHQDtSTNyC6AWEXFp/UftIo5kZjuaG1FdyNvxCi6QKimYO4Y7f0oD/O1ZuExVjgXOW8yL7/VHhKlyDGfJ6iDnLM70UIAkqB7orN4uRDOONwcjYd+z96idHp6BP3ZFuB9PZoKMx+VXk/bauypiiKV4uJcgWr9Mw== 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=VlLKQUXWTPCQvdaG1YIYGeMHM/o/t1Vfngs6MfAKZzI=; b=GpX9ewcYLjna4IUTOdlPtZDR9ocvKnxx0DFaCTny6CE6Y3oc3tN4kYwJqr3+XJ5VMK8vaycg7OQiIrkP5hj3HzmozWfYxC9ncKWIZN/WXqA1HIPLlgCASknRfUbzwjoQNqe7rQcVQ+u0FugbqoDNC63dXqXUbRTjKGZ5mhRDhzQGv4U3rPn7wBy++9GIf86UWcegas5xEolNIAsRERRfkKI/MztDFgzpsE8P+nKTD5j6oqv2wNnblAD8ycpSP+pv8nWN4aXdHx/DALkgMWQPUC6q8+XziLFds2Qzq6msBjBWrNgQoFQRjNp2zwwrUQQkkfoWzAtrUnCdLNKESQQJcQ== 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=VlLKQUXWTPCQvdaG1YIYGeMHM/o/t1Vfngs6MfAKZzI=; b=LgVBYEiUEUfHZyYrvgYbZ0xpRU5CN7s/lKQT6LRR028e2MONB8cYsw1xmJaL3FVHQIkfXibNb4Gzw9fcTbHuq510fEeMQ4T3WYhevha6+9MhlpIArrAbPawcHRPuXBhrSHRUx3jjDpDBRt9mbNTo06cgOe+DFsA3xQwBrTigzOq5T05+pxy5D5+eiouG0ezBE+F0FPyiXnj1k+Q1sTQalx1vxxprXJo39mpgPOeCuXjTRI7/8o/0wjlzAPag67qVi7nBmEy242YR7VDh2b/J1wTtvqI8dzPYa7K3msridHg2ASEaeK+/nV2h2rnYXD9iNeNgGqHTYtoN/osigatPTg== 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/8] qemu: Generate acpi-generic-initiator command from acpi nodeset Date: Sat, 6 Sep 2025 15:09:00 +0200 Message-ID: <20250906131214.654188-6-arighi@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250906131214.654188-1-arighi@nvidia.com> References: <20250906131214.654188-1-arighi@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MR2P264CA0138.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:30::30) To LV8PR12MB9620.namprd12.prod.outlook.com (2603:10b6:408:2a1::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV8PR12MB9620:EE_|BL3PR12MB6379:EE_ X-MS-Office365-Filtering-Correlation-Id: ee48a964-0974-4d2f-4375-08dded474f40 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0mPc0JIdBdjycaSkabtCQuSxzHe2W4drzebpaYPVlN8CXvASy00lpp1cL60z?= =?us-ascii?Q?AHv8ItQXNTss/JT94gfYXKwElNCO5xVtByh2tFc60ae3NRVSJqGjWdAySHca?= =?us-ascii?Q?yVBQm46WNj+yElu2nIIg0bRx48Tyyat793Gf3LQqMJEmD58dKO9ffIwl2Ulx?= =?us-ascii?Q?1ANMFp2c1ocRApBUQsetfVq6FIghutMkRGRAOVjPPfzv/QGS/pnOxyMjzB92?= =?us-ascii?Q?K1t94XjMTFV1oU3tHbEBehKyk61ZgVsCUHAlIy0FCf43J5BuO4j8bmoXHKbf?= =?us-ascii?Q?6e+IFdNM77SJDuv5WnUV7PaFhYa8xzp88aL+QiCg90QgiPyUqgXxia7fwTs8?= =?us-ascii?Q?3D5QBIrzs6Z4QbYSl0I+CAKALOwfRJ15WW6r8RPLE6e2zfS0u/hzDR8Hp6pa?= =?us-ascii?Q?9aJxV8xaxED7SmRftt8bU4qDqCE9/tXuKb819MyNRRoWiHgYHxgV54XTFvF6?= =?us-ascii?Q?Z1R5cru7Jr7bIEB2BBuUiXYwfiwC6SVBOzlP0tETKK4J9ARSnJb+tj5/OxMA?= =?us-ascii?Q?8sHg/SnrQxBOY364LkwX7WS2QKTHAC77sQNa/Oe/8pHrbBWEjHtKwH57IJfX?= =?us-ascii?Q?AdDUvA07zqagFWxLZW9BzHIdJpIVToWBo5RqxPz2sg4H+Q6CDZn6fy8yUkKg?= =?us-ascii?Q?cFw6QepxHCMFrn5+IasWQ2ukTk0cDIMtjKFkz9xHGbnoKs6//ppn/CKzJK+a?= =?us-ascii?Q?iE7pT6Nqs+3iPVc/2FHDqcSWpkYcQHVNj3i4RuOxcAYZ+giEBgzcl5Xr5ELx?= =?us-ascii?Q?4pi4ywPgCRcq+l1q1uFCWy1wr4yLb9eg2B2iCkiiiOAb8ryqZgu3H+1qT2nu?= =?us-ascii?Q?BjpSryQS77WZvo8w+OJTVUNhutB7ueQiT8tlZXEPfrJww3i/S4MQqNZncmVe?= =?us-ascii?Q?PVhvdqB5vFkTbyvdR+3e7hS/9BoqXEbHXMq3raWu+KsVwYqfyplIzA/+01+T?= =?us-ascii?Q?4f7J9pC/vwL7914nQQvFmJuT1LGWYBvcDbes763xdNhjkBK4Kfp0KR3TlPgz?= =?us-ascii?Q?FmlqHrH/bb1Y85BUKiXhnLee9VDeP1QSraIgoGoHKVnfQeZGu8adFL2wZnKq?= =?us-ascii?Q?MPb4aKJVd7Yfd8kNU8giDIgjFGh7wpAWLYy4GhnNrzEHePlKL9/kCNdrMLDL?= =?us-ascii?Q?hXEYZPcFvgwVqHVNPiSXhbjkm9TO1LgA5hEEmCm3II2OiTtnLd9dogmO919e?= =?us-ascii?Q?lub0Ft+va9T/5bHCSGhaIK5XojKLpT/zx6jw0RWdNzmykbXCqbRJ9MSkhIAB?= =?us-ascii?Q?fmd16RwlTSYNqHVWC6qtsgE76EJqeL25hK5dlGolG7rPLQ3cZLuT2rZAOsuR?= =?us-ascii?Q?UKaCCv9NA7ZmexH8J4bk4H0Jm8AsboUDGAMQnAC6waiI9b3mqgIThn4aM8mL?= =?us-ascii?Q?5Fv7g29E8F0/KFcNFhfb9IJx5WuP3p+NCuoCERLyyMkYMRo599CRlMt6poLF?= =?us-ascii?Q?Ne1SiMrT1NM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV8PR12MB9620.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MCAED3MPP7uusRyCjas6QA3YWrWrvuqhhz1YloZFeaWt7X6RH0AVGsuaQcNn?= =?us-ascii?Q?saKBsiZi1KuZwaN4py1DaX22KUUd2Y4YRIajyLl/Mfw4KFgJrYVX8Sv15pSR?= =?us-ascii?Q?eIpPOnUiGIlX2VFYC+E2iQxDhRZhBiDJMSGdveWtYxE3K/6Jfik0Wn4VEHCL?= =?us-ascii?Q?qke+XBL1/Lka0euYcW01P4Ctu4HxcPVuyS4CJseDTr1D2muRx9gt2Pp/+JNN?= =?us-ascii?Q?ykU3aon0ld31VCX6g2xYCPLkXSw5Q4TkuTE+eCzWwniKhmFX5nLmKLlw14fJ?= =?us-ascii?Q?HihHypDv3xp41DtVBFu+tynXHmMh2KxbM9A95vFsEi8tyuuWBQsCGk0ybrXc?= =?us-ascii?Q?2VKvD/EhyW79JtlS31hSMCO75aveHk6RfuY1utDitV/t2J0osJDL1GBqTcDF?= =?us-ascii?Q?A+vFofOpn2t7kpi6TPX1El+4ax9EISI702xkMXPq7Dxhcy3loMg3L0HXKtN2?= =?us-ascii?Q?YXF2tQnDrpBNUEQuWras6k2VX/cLdV7hscZdDe8KsL26mJfg6Gzy1JdlNK4v?= =?us-ascii?Q?VY0WsiuM4hM8aUu04s1rqNJK0Lgsm+mLjxVAomTH+qsYdGlVpX0cQrkPeJGZ?= =?us-ascii?Q?H+y3AmOlXKION+H39udC5pBtPRixKD7dzMCqHjkNHRAq2+YYlsv70yZynjwY?= =?us-ascii?Q?UO5q/aiBGmlzigKR5raL0NkN0fAtLvQOO5ed4dk+6/2OiIgxdBA4NVEQKPVE?= =?us-ascii?Q?fGcX32c507K3FolyfvxFptps49dGHO6iUT9ruY1LwdMBajA/N27iC2AbaJ4g?= =?us-ascii?Q?TLrlHylCoYNdU3y9GCtPavbgznnkzOOcghNkQSmktnka9gsSkAusEsmamRbW?= =?us-ascii?Q?gzeKnf5n3Ird77CyfxSsMR0bvcxBjCMKfducohl6oDcwkr1DVxwPzLT+5akB?= =?us-ascii?Q?qTWYVDSIRFJ1whP+k28DfnJW/+zwDsHqdLPLhWnrxKx3mEZ9jRMfzueDT2Jl?= =?us-ascii?Q?OqQqMz5wNjAaEnasw1EMlJWB+PZ//45sAavs3QHfks7g2CgpQXzBJYyHBFgE?= =?us-ascii?Q?QT+mwQO85h+49nXu9aiRmLDuKLPwnyG32zvnQ7w65jpEpFgfwgnHIFVfDE4P?= =?us-ascii?Q?dJqlzJ1Gz24p3cYmw77sh/SBV8wO83lZSPbBnKt0PVyXdskGqmSK5ynr7sVD?= =?us-ascii?Q?+8m4iq+NlaKzsqbZTANSTY8GKulUtKVHiB7SERmgwNaSjZtHc/cUOo5o37gZ?= =?us-ascii?Q?ynJBpAWKtLB2m31GLUHEUddhD6qLQ6tjvXxWdniawYx/49H4BvNficboY/VG?= =?us-ascii?Q?b9qDThS4f2+22P/02dHLEIcsTpeW9Q67RlN48/A9QcvLNLnjh/HNC3eecrrp?= =?us-ascii?Q?etcbI9vmwmm0g0Km3771RgoDKqOJtoN+jGvMt4+kPK6RzkQTiWJaYgdYh3Ml?= =?us-ascii?Q?0aPZFpcqrW2/q/8RZxgPgbcKb2wyrq8uxGJJ+mmgIkaBJ2Xiw4NdIuVJ34pV?= =?us-ascii?Q?skubPyWZ3SC51E0qzVG8WTAzgkmgV5eGWJdRkaPQFea+30VaxE/TDpkfalH9?= =?us-ascii?Q?vXxqVGdiuRr7VfnHYnzi+dcRSCnpP8q/RxiYr/nRlpHuk99G/5wE/L4lgRoM?= =?us-ascii?Q?zR5u8xf2C3/vH5W2QDhG2S57jLf0xnSfP589C7/i?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee48a964-0974-4d2f-4375-08dded474f40 X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2025 13:14:28.5555 (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: JR7awlPxsbbeuZfiQQfZDt7DS5+W9gdzcfkm9MYsWzT+G9Zz+MAmEIIwdAho/NUGu4HEibVkOODg+i0nXC7UTg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6379 Message-ID-Hash: AEFDNFO7TOCAC5VANFNCEF2TOX3IGOAE X-Message-ID-Hash: AEFDNFO7TOCAC5VANFNCEF2TOX3IGOAE X-MailFrom: arighi@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Michal Privoznik X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Righi via Devel Reply-To: Andrea Righi X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1757164831500116600 Content-Type: text/plain; charset="utf-8" Signed-off-by: Andrea Righi --- src/qemu/qemu_command.c | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3f9b583985..9ca0847789 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5222,6 +5222,47 @@ qemuBuildHostdevSCSICommandLine(virCommand *cmd, } =20 =20 +static int +qemuBuildAcpiNodesetProps(virCommand *cmd, + virDomainDeviceInfo *info, + virQEMUCaps *qemuCaps) +{ + static unsigned int giIndex; + int node =3D -1; + + if (!info->acpiNodeset) + return 0; + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_ACPI_GENERIC_INITIATOR)) + return -1; + + while ((node =3D virBitmapNextSetBit(info->acpiNodeset, node)) > -1) { + g_autoptr(virJSONValue) props =3D NULL; + g_autofree char *id =3D g_strdup_printf("gi%u", giIndex++); + + if (virJSONValueObjectAdd(&props, + "s:qom-type", "acpi-generic-initiator", + "s:id", id, + "s:pci-dev", info->alias, + "i:node", node, + NULL) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Failed to build acpi-generic-initiator prope= rties")); + + return -1; + } + + if (qemuBuildObjectCommandlineFromJSON(cmd, props) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Failed to build QEMU command line for acpi-g= eneric-initiator")); + return -1; + } + } + + return 0; +} + + static int qemuBuildHostdevCommandLine(virCommand *cmd, const virDomainDef *def, @@ -5264,6 +5305,10 @@ qemuBuildHostdevCommandLine(virCommand *cmd, =20 if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qem= uCaps) < 0) return -1; + + if (qemuBuildAcpiNodesetProps(cmd, hostdev->info, qemuCaps) < = 0) + return -1; + break; =20 /* SCSI */ --=20 2.51.0