From nobody Fri Dec 19 17:17:02 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 (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 1747320571977292.6790800227486; Thu, 15 May 2025 07:49:31 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 0BC411295; Thu, 15 May 2025 10:49:31 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id B218112C7; Thu, 15 May 2025 10:49:07 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 1FE0F1262; Thu, 15 May 2025 10:49:04 -0400 (EDT) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2070.outbound.protection.outlook.com [40.107.92.70]) (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 D6A6913C3 for ; Thu, 15 May 2025 10:48:51 -0400 (EDT) Received: from MW6PR12MB8897.namprd12.prod.outlook.com (2603:10b6:303:24a::19) by IA1PR12MB9032.namprd12.prod.outlook.com (2603:10b6:208:3f3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.30; Thu, 15 May 2025 14:48:49 +0000 Received: from MW6PR12MB8897.namprd12.prod.outlook.com ([fe80::7c55:5a45:be80:e971]) by MW6PR12MB8897.namprd12.prod.outlook.com ([fe80::7c55:5a45:be80:e971%4]) with mapi id 15.20.8722.021; Thu, 15 May 2025 14:48:48 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iGLS5VVfwBHBp+pul7jGXBJYjh5obtdeB1RmWGOztVwkhCTGpgQ7xnal7n3FqflE9eFotI/jqsYYdWDFEy49ZZRHRHZSOjfdukl/X9bBhbFDrksRK4G5ndxTiPQBVepYVjTG2vuGVwkR7rr1Zf9GvmXyXiiScKDQlsMCZOfOdexlPuJvZS+11kw9JPrmL/WUfKlzp1+I/1yTKTj8ITmCmssAJd54E+kKNLGn6DzIOjBH+wHPDZAO24/7cbTRXRTgEVXsXqWgAoXbV6CI1BkC73O3DyTZs95yC1MbiMJWGQmrYeuuFdVicrg5gcGw77K+n/KWpYHBmVr5Z1eKtPcirQ== 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=H7MLUOh3w1zlWqmWgvwZAy51bG0os5VjM32z/EGsdzs=; b=lIgqpaUqu60PxA0w2MScXoHUtABhxNKVLjXxW344D2e8PPK9fmPpm3n0hgHO1AQCM2axEKZnPlvCdGmok3s/q86Yer22ALyVnwVhv3wtGh4us4ovL5dGcB89ulLOcOoH+InhtcVVgz2P8vPZDMyhAAJ0feXhzbIzHq14FfHYYfRg5q+1v9iYTyXPHcVi4tK8tob2a65fojasyHUV8Ck9CjV/cr9zlC9A/DNOsKQNlT0v3uYMBuWcBwEFhEClnGJtVUA++FjMALUb0rPJXhIH2r4yKDbsAD3OmeMxXMH28HSbmeaCVFPY6O2RG8mX92N0TGcBmhq2a1lBxGS05ERaaA== 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=H7MLUOh3w1zlWqmWgvwZAy51bG0os5VjM32z/EGsdzs=; b=WRw+24sUs3+L/evZP1VjDrV8GV0AE3D6k/Ta0ZJzznbAbYbfFrsxb1TMEsjcKm+2vCoEsAPaEdjZnzc4W83/4uy4vSW3bIzWDZv1X14HdyH89iA/BjH8nIKLxk/82I3jr+ENe7lpdacSPDR0L3k+OV0HQTdsF8qt24cNyjldDeAfnoZw+KpiZXS96gekwLo+wASTrUILAVRRBm29/SWnOJFvJnb+zhbuEUXYzeZXSXChOWG23bOxy8Sb1gn7LUH9DxvJ/TpP1LGo/1RRt0xE2ZR6TR5AoUdUhfejCxHA3qnGeW5mmLovnsk5S+O1OflSHNVpp9S25Nrou+RgNyrlVg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Cc: berrange@redhat.com Subject: [PATCH v3 2/3] qemu: Add command line support for PCI high memory MMIO size Date: Thu, 15 May 2025 07:48:47 -0700 Message-ID: <20250515144847.2744966-1-mochs@nvidia.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20250515144807.2744583-1-mochs@nvidia.com> References: <20250515144807.2744583-1-mochs@nvidia.com> X-NVConfidentiality: public X-ClientProxiedBy: PH8PR21CA0010.namprd21.prod.outlook.com (2603:10b6:510:2ce::10) To MW6PR12MB8897.namprd12.prod.outlook.com (2603:10b6:303:24a::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW6PR12MB8897:EE_|IA1PR12MB9032:EE_ X-MS-Office365-Filtering-Correlation-Id: 8cb0e331-bc34-489f-3e0e-08dd93bf99f5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rHv/s0yVVFwr0GNtTHVAva7nNrkG9PcTWRcR2F2h1dO5W/XJYwdmPjgY45rl?= =?us-ascii?Q?8ZZKMuykPOTUjc3D9GD34IwThEyabZpFy0KdbOsQP+Hq9q1ODyysRvj4ZNkA?= =?us-ascii?Q?5+5bvmtkkWkK9pBYi7JD+FLRkzIR1EMX4Q0WBFt13m36avMSRkvuao3V0xnp?= =?us-ascii?Q?AfXZsH9T4Zv2ZxvSx5weyGjbKEwJQY9NQHK2oBFahEo2Ak+WKZobo+/PRI+/?= =?us-ascii?Q?hDFMvquEv/S+XU0GGgii7RJUBRqBf0No2a/hP72sItssK4eHUempyLQjxqSa?= =?us-ascii?Q?OnBTCPMnAW+UeHu3CXov+W2eMtVIo0PFn+MYXZsXOzUU1BvNhKSLnKUBD2HA?= =?us-ascii?Q?t9hQyg+IGmfIt9d46Owk5Bl8ab3DHuHw0pboLKFIxmnP7Vl7Y7YPhIiJZ2l9?= =?us-ascii?Q?1QUlEO3XtIgOJHzX/hmepDmqWWMiR1XLw8fcgbZ6JK0vvrDlYOYaX2Tkp5n7?= =?us-ascii?Q?xU8erbcRa3RVDuRq43zqTAk6w1ViHGwqBLzsxAOKryMUgZJ0OpXXG3D8PgNZ?= =?us-ascii?Q?2MRjodAoBlWbqe/6uMcJTPcR39aMvLfAdxpSscCunAPqDMMzlUo25KQ+Xb/X?= =?us-ascii?Q?PiuI6CxspRIhfGz/p9IdEyfS7ZkgZLk9NemXOHW3cOm12A018usSmfIuIOOD?= =?us-ascii?Q?EvuxeQpgM0a/S1Iqhcs5jJOP63n+d2LGFTeWjbgK7K8PwEBIzmmqgZ+nbRSa?= =?us-ascii?Q?GGpScyB8ddIuQeEoCYfYakgteYcsP9G32O1m1cbvBhTNST1IZ+VIJ8Ps/xyI?= =?us-ascii?Q?EPQ3h7kp7qWuOeKWa2nTWwWke7XFZP/VOBX4kIwgjw5b2XLr2OJNVDd+8Fnf?= =?us-ascii?Q?Xzh31CX6Wep6mB7vUlxUKj3ijJskQXVteiszMxqGr2ZMVXE+FDU/nfTjXkkP?= =?us-ascii?Q?MbegtWRsCEj9NgoRJ+pt49tyDS4ZzZaG/nf6IKO32Tw7id4do5o2OSpw7X0p?= =?us-ascii?Q?2gYchACdoLR34/WL6q1C/whTvt+tDJrk2xg9k3KuCXwj736x6O4ixKjYfwiF?= =?us-ascii?Q?+wz1nSkbwvRbXq1PfKsUGBL/IRSFjeaGLiow02NznwATUmU+oT+HSp5caLsh?= =?us-ascii?Q?ItYzIZPQki7kHGt7uIogQgTPpRk4heMdOH1ZL6y7oW6CfwWftJ8R3NWe1T+o?= =?us-ascii?Q?lZrtrmNq31oa5GgaaYCi8uJEUnOSw2b1s8ZJyXMjGEKtjaeEnGNGc8H5Smu4?= =?us-ascii?Q?RldLFnRv3QXsN5M7szLP/hXKwRFew3ADjbPk72dAR7HupdkoIug/biKPGfGP?= =?us-ascii?Q?5IEj7crQGgfF+KcCNpffGlRfcqHF/im1gPj7RgNcYCU9CNjVz61Di0u4dZT8?= =?us-ascii?Q?lf/5PWlgBiSo5ztsXZnjnPCtcVebs1g3aCyuLtmvN1C+0zetP4/6nh5Kaizs?= =?us-ascii?Q?9OHuHQY/lBmFjJEFfknzJH49LAuWFfQjJnVuJhtl92Dw88jkh8gY7BHy9VBA?= =?us-ascii?Q?zkdffS+CVts=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW6PR12MB8897.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VB1nyxb5GHwAe29fPduAf5j0riHaTzAegfpe5ibe1z4O8hXo9tNFsa39yvlx?= =?us-ascii?Q?4PKno5/8ra4ZWRpQ9agN4nyvaqKKZao9ThpH/ghgdRRSXpv2+IbTsxja9naQ?= =?us-ascii?Q?qJ68vIl3t1qe3n8HTlW0pOoPeDV6wvMk1Vku7YLm6ZhOTpghYalSK12yq1Mz?= =?us-ascii?Q?jUX+58LNbcSYaXzKk2Y4XSuRRGcZtXAKGEJ5pJgLpJ8bYz5tXo+uPP+iQWxe?= =?us-ascii?Q?FrWjSqiW3h2Rm15uyuR17Z5IE8wzg4ZDMervEq79RUxOp0ulj8QnYlnKqiUb?= =?us-ascii?Q?JtU+iCCL0ZcqBGB45U8wzQAoOasizP3X1wkB4y+43eWjyUk9Hha645bqAFuD?= =?us-ascii?Q?DOrQnJ2s2qi2K6BYPECWyEZyPH8yZkBDlkTyLZjjz2nXd5fSKCV7g6BHEcvc?= =?us-ascii?Q?FC1Q5WqIKFYr0vr3Hhib0pVBE0EHSi198fP09tCrkj2+P//P/zEJPxSL5jXa?= =?us-ascii?Q?jp8WWn98XvBVUxSe/tj2cVVL6TO2l7VQDDK+lVg42nHAWpJhAkEr9V/if7hy?= =?us-ascii?Q?3l+FCXvdIvo5cIr6p6IJMOwSYNJM2ILTidCSYudgL5IKkgpWVudYM014/YXo?= =?us-ascii?Q?UMIt5/TIc7d7nTEO2/ieELRgP20/6B4GDfsBO0da3gtgB0e+NQOoeVXWgNdN?= =?us-ascii?Q?/xIUEMwFTD3EaYDPLWcEaKsm6Ihae2pkUMgli3Ig8MskTYl1f6tgpeJJfHye?= =?us-ascii?Q?J0GuZuNtHHGVkxG4sn9IIYWpudnJo3p6/smzt+NPV0nFU49B7zVTDO9vZ19Y?= =?us-ascii?Q?a+9eNeO6mtfwPIznigMU9giNd1CtQ/Ezfq+lIKcEIqx88FeWSjZilispB5gj?= =?us-ascii?Q?50h4QBYgBB6v6sTiK4lKDZDJo0Hty1PckxlAPYRA7I/Olo3rlpH98w2vuJvZ?= =?us-ascii?Q?y/Ryap0UMc4T3OHp2TvJuNVTGnqlMywT0RHEL5XG0ZU0EdH1dabN7EI7g0xR?= =?us-ascii?Q?brZ6k9W9fRtb5sklqxRecwv9faeMZh/pHy0+j/ZSLgmDpEzHj67qvrdT0OVP?= =?us-ascii?Q?sN1fGPl7Tw1xdVcxnZ4R3QTD20AVgTZDWFegAkSpnLjttPsV9s36XtsRVyfB?= =?us-ascii?Q?Z4+TgmMdfnaNFfmuWt4Xyl3fz/N1wDwWjsznyH3485RcCfkKqvUoLZprOMqB?= =?us-ascii?Q?eDglIRkXLLHYC3UFCOs01W7KREtfB+dy1QQL8xd+527YTOFEAdCvJa1x8Y8R?= =?us-ascii?Q?/F3LS+mfJl6aOm8HiFZL0eHhrQknK5pjbUWHntCwgfDk8fyyK8m20LX11FPf?= =?us-ascii?Q?7NApEQZ7LMcT5j3fKEJF3hucfmZyan3W5pUGt7D6fUHAoiIRPqnGDoO1aEHK?= =?us-ascii?Q?RCV+d/MdMIzcHdAKrQ1GxMAQKudXPE4QjzVLoRKDN4mQuxpxEoyuB3ZNhEc0?= =?us-ascii?Q?qBtu8ePGjZzrsUVm1ORn4TI5Vsln4VjxLlUZfh27qXsfcCPiiFQpzbS5Cf+f?= =?us-ascii?Q?GIQaERkDloXLgSwFEPO7mPdBMNM9N9Q4DfkT1HTlLyoQsKuqngDaCqPqXFrE?= =?us-ascii?Q?abymIC2ePiOaJBtnokx8d4Yp9YliNkGRgcb3BeYGkrD07Xa2nxG6U6+SzUIz?= =?us-ascii?Q?NRZSYZCra3n+x8z3ub6pbDCQp4Ffaj7ypKpUCjZi?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8cb0e331-bc34-489f-3e0e-08dd93bf99f5 X-MS-Exchange-CrossTenant-AuthSource: MW6PR12MB8897.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2025 14:48:48.8584 (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: Isuu7k5FigoZKU5jNLuQLhftg6W0ZwtYKHOwkcH+sNYAz90gIa+FuseJaT2wMGxKMZZN97VNqwpRGyqRm3+7yQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9032 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: IXJ4XFCLYEJ4BKPAEBULQXAKO4KTM5RB X-Message-ID-Hash: IXJ4XFCLYEJ4BKPAEBULQXAKO4KTM5RB X-MailFrom: mochs@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: "Matthew R. Ochs via Devel" Reply-To: "Matthew R. Ochs" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1747320572478116600 Content-Type: text/plain; charset="utf-8" Add support for generating QEMU command line with PCI high memory MMIO size: - Add highmem-mmio-size to machine command line generation using size conveyed through pcihole64 - Add validation for aarch64/virt machine type requirement - Add capability check for QEMU support This enables configuring the PCI high memory MMIO window size for aarch64 virt machine types using the existing pcihole64 element. Signed-off-by: Matthew R. Ochs --- src/qemu/qemu_command.c | 14 +++++++++++++- src/qemu/qemu_validate.c | 4 +++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index e6d308534f87..d1ebb4cdf9e7 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6195,7 +6195,8 @@ qemuBuildGlobalControllerCommandLine(virCommand *cmd, for (i =3D 0; i < def->ncontrollers; i++) { virDomainControllerDef *cont =3D def->controllers[i]; if (cont->type =3D=3D VIR_DOMAIN_CONTROLLER_TYPE_PCI && - cont->opts.pciopts.pcihole64) { + cont->opts.pciopts.pcihole64 && + (qemuDomainIsQ35(def) || qemuDomainIsI440FX(def))) { const char *hoststr =3D NULL; =20 switch (cont->model) { @@ -7112,6 +7113,17 @@ qemuBuildMachineCommandLine(virCommand *cmd, =20 qemuBuildMachineACPI(&buf, def, qemuCaps); =20 + if (qemuDomainIsARMVirt(def)) { + for (i =3D 0; i < def->ncontrollers; i++) { + virDomainControllerDef *cont =3D def->controllers[i]; + if (cont->type =3D=3D VIR_DOMAIN_CONTROLLER_TYPE_PCI && + cont->opts.pciopts.pcihole64) { + virBufferAsprintf(&buf, ",highmem-mmio-size=3D%lluK", cont= ->opts.pciopts.pcihole64size); + break; + } + } + } + virCommandAddArgBuffer(cmd, &buf); =20 return 0; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index b2c3c9e2f631..87588024ced4 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4085,7 +4085,9 @@ qemuValidateDomainDeviceDefControllerPCI(const virDom= ainControllerDef *cont, =20 case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT: if (pciopts->pcihole64 || pciopts->pcihole64size !=3D 0) { - if (!qemuDomainIsQ35(def)) { + if (!qemuDomainIsQ35(def) && + !(qemuDomainIsARMVirt(def) && virQEMUCapsGet(qemuCaps, + QEMU_CAPS_MAC= HINE_VIRT_HIGHMEM_MMIO_SIZE))) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Setting the 64-bit PCI hole size is not = supported for machine '%1$s'"), def->os.machine); --=20 2.46.0