From nobody Tue Sep 9 02:54:54 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 1747268421950212.77826647173197; Wed, 14 May 2025 17:20:21 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 5422D1126; Wed, 14 May 2025 20:20:21 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id EBDA012B4; Wed, 14 May 2025 20:19:24 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id C1C4610F2; Wed, 14 May 2025 20:19:21 -0400 (EDT) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2045.outbound.protection.outlook.com [40.107.94.45]) (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 CA83F1126 for ; Wed, 14 May 2025 20:18:54 -0400 (EDT) Received: from MW6PR12MB8897.namprd12.prod.outlook.com (2603:10b6:303:24a::19) by DS7PR12MB5814.namprd12.prod.outlook.com (2603:10b6:8:76::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Thu, 15 May 2025 00:18:51 +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 00:18:51 +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=k7XTi9nnzzNFGsNSe6PGjQODUOdCmTlnKY8js6H/8St0OzNldWVw+4N96unI8ZVQOtGSDmmEmkeyRLERQnmkSgV+2uwsNMdGdKiiKphURUbtyKnjbSfF1oHPOLWlzQ6Q37qTvccx5NIvPmgPhB228GwwgKEPNlHv4gYvComu+HZzN0ZZfCqlQpX9vsjl5I9uTh9wIfLvCbBoAbSH4MLMb8kKuTDAxsxkJaYuEnUecKBYj6AdKUFyC6L1gu5ow9jUCp+6Nf6A53hrmkvxQUcR/a4StMROzPfcnmVaUIyP3tvuDaVDOlx35QnGdzmn8gWZfh9cTJTZmGum6bipjJC9Lw== 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=8RBj52Xs1KXPqdnjvU/mRNpN+SKzQMR6lgO7gSzB0Jk=; b=ke5Zt2YDbsRooQTxKV/tMcFPPHpoH8VdHA083xcRgSl/2PYyvzbyVmbr6VCPdwyDuziQiKLIz2rUeLqDHLyRTPD+8d7qCPLNVeo39CSy8aY1xyabcpE50ED9WWXpv5Oiuq3pWfCObJMFnH/SlSNP+zzztlQzICfl0i9a5ocCARMJNiTuaxouRJV9mu/BA0LTPBO6CPbBdRtKy9E3JiruQDAKCFdEcxIzTLgeBohLtZXY0o5lEhfbLGiewdyLuqSjD3KmFep3oFe3hF08IYhqdwZEf9YB1baKOwQyJ3S5YXFXY5HU33JlAIYbK3JSKjzEMuoubSa/6f56o1kty4PBuw== 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=8RBj52Xs1KXPqdnjvU/mRNpN+SKzQMR6lgO7gSzB0Jk=; b=pL/VMdLGBbeLvf3YrOfJkjVpRmG2cPH/Be6tgMblAJPI0iqK+n3oy89gHTANDAR90Y3uaYheDqIe7F4GRPagVSP+cJBLk02wpSxglAk7Yt0w1KuHVxVBHtpSM7dHt/jtgX4UGDecBwc4SN1EtPv0/lricFccbwNnvCfRB6MOTejc406WO+16FCo+8cW1u2kFOHl1F7ufhoBIojk5rgZS5YbXVH6VtysINIvjpAAsMugNxWxXTRl/n14WdtxFTGOYJV3GIYDFF8riVP0Z+F3PT3CtUSWEr0O3VaqStvINH6nYQNjBJxsxLa7WPz7OChVUJFOlLdfqiwLByGt0ZR2v9A== 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 v2 2/3] qemu: Add command line support for PCI high memory MMIO size Date: Wed, 14 May 2025 17:18:50 -0700 Message-ID: <20250515001850.2227536-1-mochs@nvidia.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20250515001814.2227195-1-mochs@nvidia.com> References: <20250515001814.2227195-1-mochs@nvidia.com> X-NVConfidentiality: public X-ClientProxiedBy: BY5PR04CA0003.namprd04.prod.outlook.com (2603:10b6:a03:1d0::13) To MW6PR12MB8897.namprd12.prod.outlook.com (2603:10b6:303:24a::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW6PR12MB8897:EE_|DS7PR12MB5814:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f65980e-d7eb-40dc-0c01-08dd934611b3 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?XDr1WOkx5DFabwb7CrNJQwATBiQHL3jMQvl+UtHsjkZrBsg0gbGAuEgl/vP0?= =?us-ascii?Q?HBmh/kRZxlI4cHtc1/XtwCbu4S+sYPMw3ttxsa+0LEKEUuNv+S3IbWKljoYF?= =?us-ascii?Q?xK5CKCq0QLJho8yYSKjXruWyIuJrBaAlLXYpm0bOm2qu9LkdBhV6MB8efs8s?= =?us-ascii?Q?Ocb23vLV2wI953xvNuXBYExCwMAY/MprJvKmZuLH+gK7QoogEl0xp2ZQRI1y?= =?us-ascii?Q?g0sHrYOBRD5NCKWSWCgV6KdsVGwA9M1bGT6IdfHfX++I/CFsVLSUnG5/mO2y?= =?us-ascii?Q?YGChEhtkvMphCLkdIkOojIGB3jGu94mfoeCaZgVMwmHN3gHtqnvX1XoFkqya?= =?us-ascii?Q?flfYw+tRivN92WfCauIyBClB1+X3eTlIg9nwdcH5YSz8CwlvSF8W28xtPhEl?= =?us-ascii?Q?Fey9jaGhAbarv7bVhk1nWClNH8C8igG9hH9jc4hY8pIyNAsMfpWmVINQiwj8?= =?us-ascii?Q?eV/7XSgBKTnV5p/LfGHWM9AG6qJFh7bKl0YIttPZZ/M5xvGp/HUKjWDwnWNd?= =?us-ascii?Q?muQaQnM6UbVtOc3+/D6WpR/gW5TYWK7qGpdtAz/b74CVIipa2ic9HQas7oqc?= =?us-ascii?Q?baRJQdQoGKSTFo+p9/jKUAJopScXibek+/4YEtSd0W/NKmRy2ss2r0em4Bmb?= =?us-ascii?Q?nt6UYgjpHc4Q6kCIkISg2OFT1as9pa/tbiJwg1mUeQT/8NGr5jKb/9l5ecbc?= =?us-ascii?Q?Zlc6Zx1/GXTGo2aj4wrDLnIG+FrVF6K6PPkLj56sx+Fta1yclgTkNt/FgiYX?= =?us-ascii?Q?6wl3AJbWRchIOZ1MlKwPl6P+gU1xjOW+oGep9aeN7MSqMQtiZWUo9TLEzDYa?= =?us-ascii?Q?BKJlTfpY2R+K09/2nkEG3JiQ5fpAKgntXXeLKmjXOkw6aqipzOLhUr6N+cCy?= =?us-ascii?Q?2R/lpBTkH3816Wz06Wqy6AwYSk/sp1vcUd7P0ypvkTOhxwOSPWqcp+OrPkHa?= =?us-ascii?Q?z8soJ/NAsOpEzt2Ysla6snqZDqk3o2nopQwTQmi6RWuuQjuuFRk/v2wltLT4?= =?us-ascii?Q?zBldFAjSEg/MegdxTNvpcIrjazFt32zAt9ClVrwDJ8iZWnsEk3APTS1nWakL?= =?us-ascii?Q?TKvRmRP/bWeGMohfe+0IJQqD1arH0+uh6siK2yo4NbbtXEu3nGO0Mf2md+5I?= =?us-ascii?Q?IRvGpnAP+uSFSVjYumrGqF8r6mNQI8hUCcawDT2OHFUdBtG9FTstpRiL5/Bg?= =?us-ascii?Q?fRU8UOx5Ey1D9X4t/D5rw9u7Vxlbdi36JLMNjX2qWUCF5iNjXguILFECFe4j?= =?us-ascii?Q?yUUPTbwWrmJVc6fhJfsBhcA/s7gHoH5lzTCDJi/PviKQdsryAGXA0Gaq04ni?= =?us-ascii?Q?mOLOZCsxpavdHjXljbi6LMa0wYXGHjK7I0WUpPzA0anXR9cONwKuWDiAP2Rh?= =?us-ascii?Q?Alw7ElxBMMl6h0vEFq56N+og8AfKlxHjYmtTppaJUyEQDEBimPfC8sRPdcCv?= =?us-ascii?Q?dbl4FkIfN/I=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)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?m5YdjocnIBpIUP6HBUNKirFY4VP3AUeNg2oKezoD9IjrPWoFeaXQ2ni4svYK?= =?us-ascii?Q?MUdVGmJCTp0tKE88xhhmPelteMWInoafvpCMou8Ggb5o3bV32CBIwAKfmpMm?= =?us-ascii?Q?l7kBhSxeLX8DTY1yodTl7f5WBo6wnZ2eumYEjlp/9FbdvGXIzqhnAqMmGblk?= =?us-ascii?Q?NJuxtlT1bNU9r5a9fJ+IeyaKsWJz/tZ6ceLeyUuDfJh15/pa+2xNlp5bqYoj?= =?us-ascii?Q?X/Aduh0cmABkjLm/dr32d8ul8N2l4yppO/R76oMi+c0sp8i4N9BrsdQ5zvGu?= =?us-ascii?Q?sYVVK9G4hGFkdjQS3Yh687HMsMDq9CXzBZFIsNG0gWsLzGXGJBHMEwExHTo5?= =?us-ascii?Q?jf/7pAYBGLspr3aqA4immgiDBu3xqaenj9eB2aQcCzHifR7eaX7H9Y9vwAif?= =?us-ascii?Q?qi8wcTFc4kKCXlsLlhs5fuHVGCGh6gj4qnRxO9D5xniRLINo0BsRmtQKP1ZL?= =?us-ascii?Q?qRHVW9vNXKDKsGCK4g6Ft2i/TCjnDXZzos5sWp2Kcs+fL0WXylCiIufpTdj6?= =?us-ascii?Q?4LylnbyAj428s4IEpbu+3WAvQWmIFy18NSqj4VdozspWA17RgRFLrjIAZCF4?= =?us-ascii?Q?bB3tvLLWz5KIgYTsKwsdO6Iz4YCYI6NyWyf2bxvPuBtsTjU0HaA59udLDwFG?= =?us-ascii?Q?KN9DlHUMgCqMjoT39RCsXPMrSbfBwC/Lr8En29mxpqoWXNT22011qd6JuADJ?= =?us-ascii?Q?1X6SxsK7Kq7rFzoekpXqa9XvQkXBoadYGCEqCa4kAvK3JDCbVsSSkrztlt81?= =?us-ascii?Q?DDa79oOGqssU8qX4bdVFi5VK8NgLCVgzIY1p5e8qAcpPtNngADDXZVJLhgjO?= =?us-ascii?Q?85o/zbD/BoiO+RFDJwsRPw3BV82QJaXd50sgO9zUZjRuFp+2kF/IsJ9DKfOO?= =?us-ascii?Q?emfUMjyD0qkY77r1Nw0jbQ+SM0AFOlI6oONuH1tLZrDaWl6N2JgP9Tzn9dAL?= =?us-ascii?Q?gseO1Awea5KzbDifysDOMzUMMZeBPSiisyRfBykt1cUMpJLziC4eD/jODB9D?= =?us-ascii?Q?YMUWD0WYBzOo60E5P3rWI4M36xloC04r+PstOS6I2QxEbNTWVgfRCjz3PRDK?= =?us-ascii?Q?ZsbKYTzu6AzngLR3kC04etiY79v0U/lGVyOgbC6RFuMyc83dhiO9Pp7AuDAb?= =?us-ascii?Q?6ozgDk3sN+9KOpSfoFE3cTCQvG8n2ofcwaW6CYTkpWg/bZGsuKXPPtFtXiEE?= =?us-ascii?Q?pUnj/XuAEctEEzxWC35GF/RSgmnbM6Z8M7IAedVmTbrYltFrH+7HsxE934eE?= =?us-ascii?Q?m+6RMIPimbPQ9DZboJQYEMVbiy9Da7lnd6WWegELZxKuw21JbCiP9pelwliB?= =?us-ascii?Q?6adg14DTZcsb1JXpmgrD454AYFkzrsW9Wc0HZmFIlymbsyULCMgA9A8CDKwl?= =?us-ascii?Q?t+NEkEXUgM5GJuv3QDnPNqG+XeCCNLD/EyyivlpZitDsQg+heuTmFMsIWx5n?= =?us-ascii?Q?MBPO13GYXFb3JSTJLf5TBiuxrqZ+UjYl0ww6x/M8W28B1lcRixHf4f9D/Cn4?= =?us-ascii?Q?6icjdKRV27p/4zFmwmTMXSHw+9Ppi45DgYtCVNb2D5ycH/zUjOvUcgHfZabE?= =?us-ascii?Q?wAYq5/LYnbothIrHJakY2FRAbHVNUS73ZMRqVZ4z?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f65980e-d7eb-40dc-0c01-08dd934611b3 X-MS-Exchange-CrossTenant-AuthSource: MW6PR12MB8897.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2025 00:18:51.1741 (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: qc8QXzwuXALw00ACIeaQeuYM3BiW05i8Mys7ySamsW1tNe1b/FNR2IR04+DUxm6HRKWua5QWLgQPxeqUps8hLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5814 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LRQPJ2GLFULHZ2KKBAQTIQ2CAN3TIQ5P X-Message-ID-Hash: LRQPJ2GLFULHZ2KKBAQTIQ2CAN3TIQ5P 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: 1747268423431019000 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 | 8 ++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index e6d308534f87..1386b2772a55 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 && + !qemuDomainIsARMVirt(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..f808aac1063a 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4074,7 +4074,9 @@ qemuValidateDomainDeviceDefControllerPCI(const virDom= ainControllerDef *cont, switch ((virDomainControllerModelPCI) cont->model) { case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT: if (pciopts->pcihole64 || pciopts->pcihole64size !=3D 0) { - if (!qemuDomainIsI440FX(def)) { + if (!qemuDomainIsI440FX(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); @@ -4085,7 +4087,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