From nobody Wed Mar 12 17:49:16 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 1741392988049993.733171664901; Fri, 7 Mar 2025 16:16:28 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 0095C1B64; Fri, 7 Mar 2025 19:16:26 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 6A0DF1ADD; Fri, 7 Mar 2025 19:15:19 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 34D5D19F2; Fri, 7 Mar 2025 19:15:13 -0500 (EST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2046.outbound.protection.outlook.com [40.107.237.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 19BEA197E for ; Fri, 7 Mar 2025 19:15:03 -0500 (EST) Received: from MW6PR12MB8897.namprd12.prod.outlook.com (2603:10b6:303:24a::19) by SJ0PR12MB5610.namprd12.prod.outlook.com (2603:10b6:a03:423::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.17; Sat, 8 Mar 2025 00:15:00 +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.8511.017; Sat, 8 Mar 2025 00:15:00 +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_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=xaPv2QP1BD9+e2pYQkPofIuciUPm5B53nweNPPiderMSUXbDFNUbRI9+et3mzTF8CBtmxux8lbNEuCBJOzcClz0EIYbKKOMsuCb4x+VV7b3lAtIJL4xGWC17P8lQNvWACuwpjmqdr9oksZaxL4dxBzUag+2sdayDCvnohVlb+8fdGwnZtmMVCa33YCC2qjOjGpXMoV77oxynewyhIQ8faf/t1rvPJ/c0L/M2YpKaXIYknv+dwhW4+1RamKX33jKky4AxvLdqlm6/aGLqYflkx5QCLFA4XPbkik7vemWSaNAD6UNZ82JAOxgdhmN99Ku+5PUtN/mJJZ4PSNBf6afNyA== 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=yx5GS/1YXFvuIqtI4AXNPFThz1OqA0+hlA9Sh/REAfM=; b=cQ7sZCEEvJfnF0fI/dKqfb7jXXhjZL7TAQIQZeJDjj+iFzfHrMORG62l4myXJLh3PtnU5ftveKDD6tzjHt5nD42f6T1a/Juj2pTNcSdJWKdKWpYuC3SES5WvEpl6RxB+tPVUkP6014393eCn4irOBrZSNDDJeeEdgS4k5RQFh2bA9fxyWJqaIGqPA9tvGLD/mErV/4jCDQOlwOQcw9sHHQs3do4m/Q6xssE5mNOkdiE7VT48bH/otXtNQPgDksNX4BfwIOyhpNExk3oiocwE/eEok5Vd2h7y6aCwacQ0Ez8gE+loYlwbTCwHzMNiw7Uqzm4XqWjVnjBz0p+dclvZ9g== 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=yx5GS/1YXFvuIqtI4AXNPFThz1OqA0+hlA9Sh/REAfM=; b=CqvxNVeeU6NR6N1s9/eOTPnrqrMpXMit3MKkPG+wLs0k9Uf9LmbjdTAu8Q1Ubhrvx/pN/Uc+sYPmBkddt3tlok0w1/INfS1ERBlSkxVvVLgFtVJhRC6U9EQOEcj17wHOPyWODa2CcEvkSMRTbuJpgbme5a2xiJ+jlLe6B30O7rMwWkJIGVH9i3B7FQrAEHPVWBnQG1vIZb0bD1hZnyBHpL2Lz/ioTxEx7d6YnO21BQZztWoB843oJtTmE4YPHkINDjH0e6jEVpbVXQ/tM57ZRkMLB2hwglmD7Izma/gGHBJlnqtoRkmivpdJyZS8PCyUQfeFV0nvkhjAJ+IuEsSz0w== 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 RESEND 5/6] qemu: Add command line support for PCI high memory MMIO size Date: Fri, 7 Mar 2025 16:15:00 -0800 Message-ID: <20250308001500.1312580-1-mochs@nvidia.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20250308001331.1311347-1-mochs@nvidia.com> References: <20250308001331.1311347-1-mochs@nvidia.com> X-NVConfidentiality: public X-ClientProxiedBy: SJ0PR13CA0179.namprd13.prod.outlook.com (2603:10b6:a03:2c7::34) To MW6PR12MB8897.namprd12.prod.outlook.com (2603:10b6:303:24a::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW6PR12MB8897:EE_|SJ0PR12MB5610:EE_ X-MS-Office365-Filtering-Correlation-Id: 7101e0c1-4086-43f0-ad3d-08dd5dd64448 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?Jyov/9dibktL6Zvj92LR6G9ZLR84gwStAWNEzAamMqUfV4LnyZmIE/Z4LHmX?= =?us-ascii?Q?GqLtbv0yfUo3WmSU1xVXGV1PIRC9ZgGzD3AOKGOFUeGcUsYaNTElPjmwZoGj?= =?us-ascii?Q?SD667mTqYsElsDFZ0Y4MG7c0ZkI9HSnoLvSRpZ2Ax+Q4xeLxkKpK1+D2GUrl?= =?us-ascii?Q?s9+v/z16Agf4Eu+cd+nXbwDpoFXg/GdZhD3W5iY2E0LZSTVH5cP+nOzRcdQA?= =?us-ascii?Q?EYnLMKPMNAoJG6IdLMG5iYgYSPEcOIoIq+vzmv9cyf1qqtnCLtX/fhjnFNs0?= =?us-ascii?Q?XququsqLdcpIpUOPB6Ui7iTI5m0EyoTVJ+PkCKv/86K59+m6oDGVC/iZeD0e?= =?us-ascii?Q?Af54iwDTPFuyb2K+t/mnUlKjuHy0S1PETJ8atFaklyGaKm+s1SQLIMnFO+fU?= =?us-ascii?Q?vqlqOXk2JmOhfmb+T6bDytDO/RypjZj7HlIyX6ywcsvlBn65Irdcn0thnm5n?= =?us-ascii?Q?ycW+KL9H0dtRCjdqFlLCX34vcpUo5yG6J2PsW/pxWDfYl42nhwMNcvPSaFNT?= =?us-ascii?Q?GDsBFr/HRNMbgmOW9pxNzDd5wT5/CEOva5EhdrNA/dXS1Tw61jhItdX+Lv6h?= =?us-ascii?Q?E7JErf9es4RCtP2J/XMeHpW9J0riNAb+EEPENQ/4GdEDQ2laXeQyszLSwgyv?= =?us-ascii?Q?Dr2QQ4vLKW3ZGc20F6lGFiXCSfL0pQw6h48f465RUYkh3u6PKyCmNw/xEXQW?= =?us-ascii?Q?l8C12lbx30e3BVuJXDTDw+m6i257uZefeK/oyqJC/w1WaN5jCX7pbVBTqcms?= =?us-ascii?Q?7fNNA1yWF0Gau9t1iOIVK5D0H1m5WL6QGu0P8xL0WibCzX6Nx5IIItEDlSYl?= =?us-ascii?Q?TuO/HAnamuvj5gy7dutXz86TiAwvHmSNMg1FHJd9H1XuXs8BnYLnr7fe+uCA?= =?us-ascii?Q?eAwYYo2+3Sr3k+uSJqkZWgSgJ1azh6QGc/xmKf0hFt7Bf+gfEv2bSss7pXXN?= =?us-ascii?Q?ojAjAknSwSCjYHuhWkJvmDnWzfL8xrq4Mqcdv9EL9X0j+n0KZs2ssQiGbCTg?= =?us-ascii?Q?D9H35qKsg6w6jakGM53yo+vhxa8yCRYb2fIZSLAiDeHwp8iRLEBJe9rjny+j?= =?us-ascii?Q?KVq0irhOnp6o9LJgUN5oRK9nQayhPcGt0mBYLTG1tcrHk/wxUgtjLymTsmog?= =?us-ascii?Q?I3rEALKeB3bcxQCBbEh1DEVR91/Fj6sCKj19jRHBC+tHIiokOlYKkFaJRb16?= =?us-ascii?Q?zf2rqnh4wZHcDc7K+kHWewSH9RiT/zbRQ8NVTmojHefLcJAguc77/ImX3BwA?= =?us-ascii?Q?sJFCvHG5DVUo0KK+OiQnZDTBEuj/ZY9DclcEBP8YBh5kyruT/FF2USyE9u++?= =?us-ascii?Q?OD0gp78fJ9Huq8bZOVKHaF47OeL0bP1lYOOot0UK0dpbTRsXX8chIR3la1xg?= =?us-ascii?Q?vGOjF4QVVzre6M15Sal7OaEKcTuS?= 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)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fU6gxqnmG9k241/mWht43GpWwStA06mTBJtZufzSc/olO6mv2u53XwaD95JO?= =?us-ascii?Q?gkQ+w02+hIPgeZm6erlyjgkt0n8wrojxUqk6oqNO4FJHdlAeWQYSWenSuQSC?= =?us-ascii?Q?epvOD4DqYkD6GK0AZ/NXDe8plpfkTajuy1X58shKhqWcPKVKGOS3jAfb5iRF?= =?us-ascii?Q?Z+S6/FJ0ENNm+3iXFlIxY+Bs06FCSflEqHRqNpVB8kk/EjjI9lFIgOCIErjL?= =?us-ascii?Q?t6XE79oLPBU0I0xMHcw5ZiceR5Mj/Ryb4Lenzg/ztCzJwf3UaFTROumXHfct?= =?us-ascii?Q?mz2rCPTwdZsfeMXGOcZF5bNFFmudgOh2bpYk7mfud7nP6BtuL6L1eyg6SHm/?= =?us-ascii?Q?NbHmey1KV2Dhuu3xp/EaMKCVMsZrpI0B5QKgdjGMsCHnvz57CyCkOLkbTztk?= =?us-ascii?Q?80xNusnNJ29WHPaq5jOgPVm7fweweZ0TsyAoesiHlqpuRSV/cgJwfidSreXc?= =?us-ascii?Q?W9l8O5K0ze5scrNjOTlrafSDEPbkYi/a4Ma+J4u1Oo0iXZCAUIhE3EwL52v9?= =?us-ascii?Q?BbBefrU9MmQNydEj7RWKbnFBu5co/evNAqIxKhaysNT0fwtY5KQiRu5l/CB2?= =?us-ascii?Q?F16xbgn7b6I+Og0nAj8Yl5uy1lVLpREEnvgtwyN5FvdsQoWY7t6kJeooeyLH?= =?us-ascii?Q?6IPSxlNzAQkK0FD2V9uQ/m8HslnZtIffcI3jucwVMzGS6MK88kiGxmkgBicS?= =?us-ascii?Q?1nRlV6vBsdixojqQAx9h7j8f62FGlyijyJiyxEhogsDW2kq4109EIqqHv5Gc?= =?us-ascii?Q?CJsCv+LpQQumlwXMYnMjhFiB29cTo8Kvex2m9Ddl8/OTcpzzXwsQGX4ol6iG?= =?us-ascii?Q?7fujCsKrAK6UV87HWsu/OlSVntWvM9jO6ETdjfBifowaHSXgRAFO49dOLl+z?= =?us-ascii?Q?3txhIeO788x/7EAlaft0kdvqgC83oTr6RWgb56GL+S0vsjfuoCFHJl6yHiyY?= =?us-ascii?Q?hqX44KuYQd0pNfb7xlTkrFTdMM39QcD5FezXir4CSvQ01tQtDNyOrp/ECi3I?= =?us-ascii?Q?v0s+j642lez0YH6VaA5ZW6fKfrY/A6mJhiyi+DIAP+SC/hIk0O0f5yJHPv7H?= =?us-ascii?Q?vozYSMPOOMR3+fgPOFY6DZhrFI5Q48v1fJVn8lPxUsyYel0rMuoqaVkDeonV?= =?us-ascii?Q?WBh4TQ2plOS3qjdRQRALsqSCrOp28TS5Pkidd9GJHoB6sTG6udLPph9xGXTv?= =?us-ascii?Q?Uo5eDwjcUhv52qjM1rBXFOHhk5QT58gY3aRJyRvvjimf7IpWE37JeKp4xrgC?= =?us-ascii?Q?VRZYkUj0/iQm2qFCtiOWL49wjBm54rCpvFbzlRJ6WZKwzSzuCd4nZtfQmE5C?= =?us-ascii?Q?yLg7V+KneJTc6PsDUdNb+Vl6LDaAuxiFMQ13NBnjLSNWlhik5pCcKMz/xLzM?= =?us-ascii?Q?wBmeVNGIQhg0/HPWj723VKpoRDmQDAEkYErk8PGGZNe/TkOSpWieamo7xqUZ?= =?us-ascii?Q?UJyzodw2LW0lRgvR7tuKTYRheVUPC5E/ZOOL5EXYbhxTUwGP5ZHFVel3J2/W?= =?us-ascii?Q?3UUAuZgjdhmFkrw/uiRBiwfbv6Txj3dMORetDFvjuDjff4WSaw8PMlKwL5j8?= =?us-ascii?Q?+Rg94J2kR0JaakDs9iGnHgTp7kXDUEuc7VjOlP9V?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7101e0c1-4086-43f0-ad3d-08dd5dd64448 X-MS-Exchange-CrossTenant-AuthSource: MW6PR12MB8897.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2025 00:15:00.7325 (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: ySePdx7Gbuj7ZihtK9kUii8bsUtWzQ6IfJKsSi/Krv5PxzsjbMKy7qa/4R1YMpNPZxHT5ItfNBdKk8i4v+ndVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5610 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: YBK32BDG7BTJVJU66XIAV4WU7DTTZA7E X-Message-ID-Hash: YBK32BDG7BTJVJU66XIAV4WU7DTTZA7E 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: 1741392990542019100 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 - Add validation for aarch64/virt machine type requirement - Add capability check for QEMU support - Add feature validation in qemu_validate.c This enables configuring the PCI high memory MMIO window size for aarch64 virt machine types. Signed-off-by: Matthew R. Ochs --- src/qemu/qemu_command.c | 6 ++++++ src/qemu/qemu_validate.c | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7370711918b6..bf29cf74530f 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6773,6 +6773,12 @@ qemuAppendDomainFeaturesMachineParam(virBuffer *buf, virBufferAsprintf(buf, ",aia=3D%s", str); } =20 + if (def->features[VIR_DOMAIN_FEATURE_PCI] =3D=3D VIR_TRISTATE_SWITCH_O= N) { + if (def->pci && def->pci->highmemMMIOSize > 0) { + virBufferAsprintf(buf, ",highmem-mmio-size=3D%lluG", + def->pci->highmemMMIOSize / (1024 * 1024 * 1= 024)); + } + } return 0; } =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 76f2eafe4955..9476dee49451 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -279,6 +279,21 @@ qemuValidateDomainDefFeatures(const virDomainDef *def, } break; =20 + case VIR_DOMAIN_FEATURE_PCI: + if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ABSENT && + !qemuDomainIsARMVirt(def)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("features/pci is only supported with aarch= 64 virt machines")); + return -1; + } + if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ABSENT && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VIRT_HIGHMEM_M= MIO_SIZE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("features/pci is not supported with this Q= EMU binary")); + return -1; + } + break; + case VIR_DOMAIN_FEATURE_SMM: case VIR_DOMAIN_FEATURE_KVM: case VIR_DOMAIN_FEATURE_XEN: --=20 2.46.0