From nobody Wed Mar 12 17:31:53 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 174099069762289.19769167659354; Mon, 3 Mar 2025 00:31:37 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id E827F1369; Mon, 3 Mar 2025 03:31:36 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id A472313FA; Mon, 3 Mar 2025 03:29:00 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 642EE1426; Fri, 28 Feb 2025 18:01:17 -0500 (EST) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2069.outbound.protection.outlook.com [40.107.101.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 DD2AEA52 for ; Fri, 28 Feb 2025 18:01:16 -0500 (EST) Received: from MW6PR12MB8897.namprd12.prod.outlook.com (2603:10b6:303:24a::19) by CH3PR12MB8971.namprd12.prod.outlook.com (2603:10b6:610:177::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.22; Fri, 28 Feb 2025 23:01:14 +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.8489.021; Fri, 28 Feb 2025 23:01:13 +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.7 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=unavailable autolearn_force=no version=3.4.4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OUO4Ra8+lRVlEhrUrR/KRW65kE5O5AjpuZe/kek2Xb3xe3oZWvCndqznEXowllvr4HUlKiEY+/RaJQm/3YQd0488xQ10qEzFIcpHuW/dDHNeDEXTOGaOsuCrdVQUS5E+6rrdpu1iNckLdgkmFXGBRQEcD+VpsCsSgzHsk7A+XuNAvb6LJirntS9fseQBVyVCMndyqRGpuHGEV3S+B0Dmm81Tq/O0t4lt2tZrRC0Mz3aR9OwZUHRBkVbzT0pohdlTMW+nDaTVCNVNZkiKZnfiAxUJExCTplac5X8I3iDGF1PozBw5yC5oWsn/lq18NDt+15HXhAGOZljgaAfsX5ys1w== 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=b33sqS79VH46FQ/X1d3CMas3qIhQi68pFN9UVLFKtL5dvn9QmkLiRvsgfe+RU9jSsG7t/CEWBFtnUgr5H5IdlO0Tp861E2+l+F6GY7s+ZA8v5ZrjVwF0K1/WGWb+QKJbA20a27FRQScJOKGLt6Ic9/3dop4rPcMhmpWAVmQL9aPvqhp3F+ZeessqPNvjWmMRk9dr6/IjZ+MFE9G63E9aR7avqQyI1u5Tt1/MSnuYJ2YMtbyUvH9OKAQNsnyydBaZRMzJZI66QUKWlp80btbljiCZpBblvkjuDReMuXiEhgFTwmdAVZXozDqXBUgTIRYKUJ34ErKK1eHn0vBrRql6Ug== 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=kiaHuqvLE4Q3z6Jv6hgMVZZmv9kcIOFJ1r5etnmaSQFOy1qqaUOm8S5PcTelpvGwn2rQ7Izcl5Tadi3VaEelZ4kb23gxCeosQBAWMU1tBgAqeadbORC5mUCoCrTSbMPHEQQSbEr+kb0RS3qktrDlr/RomITawFiMOz1AO9mPZxYgO4iUbPqfoCZ3jRAEQcNBhQ7kLWMQ/JlmNAIVZJ0g82Yya7Njd3u41OMWn0xE5P+5ZNqfsRgMd5ocnhM4ZV1/O8ocQHL3DIm2FtyDahD27a5i9UYY/G2nfQBWd8ZAWV7GZkNnIiC+yohhIRqlEWZTvTJoD6Uj+rdHUHra0e5g8A== 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: Add command line support for PCI high memory MMIO size Date: Fri, 28 Feb 2025 15:01:13 -0800 Message-ID: <20250228230113.3218261-1-mochs@nvidia.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20250228225934.3213582-1-mochs@nvidia.com> References: <20250228225934.3213582-1-mochs@nvidia.com> X-NVConfidentiality: public X-ClientProxiedBy: SJ0PR05CA0031.namprd05.prod.outlook.com (2603:10b6:a03:33f::6) To MW6PR12MB8897.namprd12.prod.outlook.com (2603:10b6:303:24a::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW6PR12MB8897:EE_|CH3PR12MB8971:EE_ X-MS-Office365-Filtering-Correlation-Id: 114cf756-0479-48e1-2452-08dd584bccc5 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?4jKOE8u+rOgIwvFKuDEFyuQwtjSzi3Q4lhX8vwMHFGkWGehSnqsmNFKjc+Aq?= =?us-ascii?Q?A9UatRLPsTFYDxBj2GEeyD8cZmfr0jACU6+xvpUuv+TAYYj2T/iU5u3GaAmH?= =?us-ascii?Q?lpLqLDGYolxSVfRkGixGQ0v2VAqhYBbX5vALyBzQZbdAQu7LDaBqmEQOHMnW?= =?us-ascii?Q?x8uTlUi0bSDazBtzMhhTDRsdqXgJwrR6iTvYRMJapib8CH7uPNK7lVjf21QE?= =?us-ascii?Q?NlmIdpyeBAsbZlU2mBWfohFiR0RyUk0elBPhXiwnvRNcyWvhagGKC0JriwQ8?= =?us-ascii?Q?7d70O23r4rgZSGpNCFNqkv1UqXuOZlN2UGzYk2wXefxlUH/htQmSeu88wAvH?= =?us-ascii?Q?GSFjJdWVGsN8yzP0xDx9DggdtICQ0pOSfilPHaAGrMMlb6opVQCUbOu7nBOR?= =?us-ascii?Q?GXrhAEN3c0jpVdVjrxPxjZL6q2yXRMXkr9Rvrg/1+TYwlCW9AyrLJxXVO8uq?= =?us-ascii?Q?A6cLdAAN3BLmc+rASRr4h8t7q73pNEG3Cv02PhBet1U232qgCA+oLc5vd/2Y?= =?us-ascii?Q?ooQz5kTm5spwiPQWTsJwwtwi66ySf6Jz2yxVxYJTFJAt8sHx/XtsDcnUc5u3?= =?us-ascii?Q?Eu/tmyo/cdlDCl6XWt1KcHcChq3dyhh/GGwAxApl+JuI16FG+/668qA4xcv8?= =?us-ascii?Q?0FqIO/eBiH2ve0dKBJTkqhCYJvD3NAk9O+qkSs0OmEfPkrwujPsitiBzpGIR?= =?us-ascii?Q?Hbm+X6TKLyIdEql6KKowCRy+8qCmM8FV9Zb4Eyb/QECYg8JjcDKzdGs0o8XW?= =?us-ascii?Q?HhNCDrPoMGoEPXkZzDsPRyXYo988KHiERbXLdFgsM4ufYp1vxI5ZvrbdmBsX?= =?us-ascii?Q?rAQWAoSafQuiJLjcc8ORbg6DLVFhawCciulbT78bnVp0NX/5p5z2NJ7guLjw?= =?us-ascii?Q?kWXEj+pfuSln6LmCF7ZDXvueGuehIZSfNZ2z5gJAsiq6haSkw3An1Cs6pDOe?= =?us-ascii?Q?A4aIDwFBjBmQPNuukExYdQ90f78Qfdywc2TGP0prMNfU/v4nxbiYoFjyPpHG?= =?us-ascii?Q?yUS5Q3iv2u0Sz8RjFPmeoYPvC26nbzb/b04FS7nWrV4zfNm/HC4kIaLsJPfJ?= =?us-ascii?Q?WPLowlZTG/U1LJ1G60pEJZrryQ2esncMpr0NvWlriA7Z904QQZN9CyOH0fl/?= =?us-ascii?Q?miDdpHTYxgOzBJWKzkWPRiNMUqRRx2QD1c9oCUst5vLk4mSO8jAM8PD5C/JZ?= =?us-ascii?Q?vpeY1SeITGUYOaT8K/KU3Qt/02ROLPhxzKL1ywTCBKYA3lo9Ln/Reiva1HtN?= =?us-ascii?Q?XgdUC143ImTvh2x6kMKQwbOF3fpjiUWZJ58SLCYqsrVoFLpJ1/K/O6hvGkrr?= =?us-ascii?Q?oB6yExs4da+468sPpfQvOH7Jzto7edGgKIyRj/+d0i/0O2HmitwjeBP1B9kI?= =?us-ascii?Q?2Vgle8UfWn8kyAnPK1W/WK+A/8RE?= 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?p7m/9dWivCik9sM0Je9R5xbCdGggstEa/yqWOzI8LqN9RKWCNk+Je1whyPTl?= =?us-ascii?Q?E7DtF+9ulNDhJUUrOVppXB2WLNC/oqj2zP6hxzObHPDtCejhsG4zfZsttS1D?= =?us-ascii?Q?tMR2h7XAHD/GFvrcHQRUBgScWMlO676F7A136zvQUSg6+uu40FtAHNTFf7v1?= =?us-ascii?Q?dk9RDECW87752QPP+RpNnZ5GqW1WWNTsXqv6Qyk/pb2Lzs0yoa/lcxK/muAd?= =?us-ascii?Q?y5t2vp9Dsx7K6QkjtoV3C+4zUASRb90NkI3T1xCKCuTlFoQBg0M06HA8dL8d?= =?us-ascii?Q?qFmDiXmRwoo9US5xsRIczaIlR8iRiTc7Zt8/cvGz2GK67gXjFXARyTzOPTEs?= =?us-ascii?Q?jJaHAimhe94TgkIiodt/pJLVZv2MOQj45rNmdzWJ9LSI7XfWXmbS2LLs1Y92?= =?us-ascii?Q?n0s+SAYa/HlFhI6hLMdKufT/Cbj6KYXb0MdSGCzAhwesGU8kDNrMJduMXLHM?= =?us-ascii?Q?u9qtN2U7ljcDL0X/Yeu2toe6xkiB5fTZl3fuAdlCssqHjqpn8mAXtRRKHav+?= =?us-ascii?Q?cZeWR9KUXmq+xtZp6E3YlH9+w9O9rAbVPZcGpE/V+tAEeq0f5NawPavu0Jtb?= =?us-ascii?Q?t/3XKZVuEyZkcK++ddnU8MSv6bQ/Ab/RN259cJht4AxuxKsMxKsAnc3lwaC2?= =?us-ascii?Q?XYW75PL0V4jzFY/7hWETojp5nh8H50EwDT/sQOzI5ZIvvThsPsY6R0c+y6lK?= =?us-ascii?Q?2MgLnKvKIZyY1L4azpMRSEYBeHA68a4Vi6dJ6BxfUliGxqCOOxSjLK3SAEPU?= =?us-ascii?Q?LrUHfvomzb36BCkVH6qGnwG5dFvEhGPaJeg/5o77564Gd99K0pJQY3WdoKoc?= =?us-ascii?Q?u1JEl+2JARP9tb79/0P9IVuoiov9NpHKowU4ZNQy1AlPv3Pw54BPzMLHcE3H?= =?us-ascii?Q?Y2b8NA6bu7fzssoyctzVXK9pbzpi4mslx/5IHe0GH9eso2BFAqTJY1/aJ4gp?= =?us-ascii?Q?MU6dtzqhqALRF0kG63ycBaRZEo6unZIU1O7VqlaeweKwAaObjk8r9S5LXUYM?= =?us-ascii?Q?rhTTZD/YXi+zS75VhrSBnUe+XXcWQ3vKu+qJ3y2QvnkUHa3hmNBF3MX5abCq?= =?us-ascii?Q?oUaHVaMu3QaMqoIG9Ru6sCQ5OKozcEYiAlznTvmpSWSNzhVDmUX5mDjFD0us?= =?us-ascii?Q?AYhz37YKK2+v0PKhrhX5nfDqBhcY50f85rHgRwzg9L8er/7TefzHcVYDDaZ2?= =?us-ascii?Q?S3jbNNjrczY3kh2snExvP/SuQDmLHvxaH8ljIQGaxvEWwpkLhopQi629YTF+?= =?us-ascii?Q?j8mStHR8R8P9uPj5DvIFrGAE26eG1ryTh8jjQffeG5f+T3HJVTxJtJNbfoDJ?= =?us-ascii?Q?7ZwtjPRLsCAGiaeEe4Ngq1XmItjmCao5FSrJn/8oqFD0gL9aW5SLzRREXS3g?= =?us-ascii?Q?tS3njJRcexyMEAVVze0qgoaRspqqSzxkdMamCsP2ZhjA/r04LqnB4mYFw3PN?= =?us-ascii?Q?yo/lglyz0TrkSoKpFeQ89No2kx7B4uXVvgFeoHDmThFj2tC1mzCRJ442kcPt?= =?us-ascii?Q?9V8x1dA7ksA6dYWNJImQYx5qGWOU/gxNf2aa7DHp7E3XOiATeRibZRkpO6If?= =?us-ascii?Q?N1Sq/zGxf8LX3ziVqtQas0VY5MsrDBJ/1rkQbocy?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 114cf756-0479-48e1-2452-08dd584bccc5 X-MS-Exchange-CrossTenant-AuthSource: MW6PR12MB8897.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2025 23:01:13.9396 (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: j+4dsXOehpvpCh8lrVyeWG+HfEoz1R43eKASqzAt5tdewSqiKnlgmaopTw90J3n+XfuTd3qwmN3nj1+Wk0zUfg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8971 Content-Transfer-Encoding: quoted-printable X-MailFrom: mochs@nvidia.com X-Mailman-Rule-Hits: nonmember-moderation 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 Message-ID-Hash: GJDPHFDJU4I4XDAIAXYPLMA3HZOJMBLH X-Message-ID-Hash: GJDPHFDJU4I4XDAIAXYPLMA3HZOJMBLH X-Mailman-Approved-At: Mon, 03 Mar 2025 08:28:44 -0500 CC: nathanc@nvidia.com 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: 1740990698496019000 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