From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11022108.outbound.protection.outlook.com [52.101.66.108]) by lore.virtuozzo.com (Postfix) with ESMTPS id BE04B80726 for ; Fri, 9 Oct 2026 14:04:48 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RilrECL2hdlyG5pnPJTcvdrXEZ8LDzR2HiJltzOwZ6Cc5gFBoMONvNvVUBk2NYeB5fNpyPIuSQyUdq2cz/6yh33SacQGt/AZNu6Z1lNuNCw4/0UmBTqePlvN3Eb3pDqUs52QQLcziIUid/QTnvJp4ZSjlUsPHueiVsNKTqigHkyc+gdn19dVoZzFxd8nH/Dj8Wf7Y0qxBgECjKG2w+iIpaLq5k1HGtjYIACBjECJotOaZOEwcuoh+kRaqvxG8XQd4BBGhh7A6odDcyX6k7cgCUq5PLV6yFp43c15cPrsEctQFm+L2nA8HwbrE1OM1p5j0L1RzPZoIpNqVcBMfA31hg== 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=gaky4fS84RDdDK70rNsF8DQo/7NSYCkC3icT/Z/jxos=; b=dfZ1oMwh9nfz1B5xVpN+BuIEqDNIL9dMALl0ihYcKumnJolSisgWfrrjq1yie8L0EG+kVyP2s/XCVg9O1TogGnqdTIq8M9z+1Rk/yWojNwhSgeFmaQFypwimWDiBtl5eIgBLdUuL6VrPYsvVrbYfemJ303xOAHWRcTmyba5RJTFqc0jJSawtlZO9VLl5cR9HPP3Wf7Rf8asCsVBs83YMi6QgYiKsdxhcVOI/fa7UnVVxM2NIek1BRrO3Lr5wGCNy6aU7ghpn5cZ/2ox6Fe2dWyAP1RuY3NtErukpSMH0rBmTCTc7GFWvW+I2Ilcfn1fy9eTDftiy1OhsBk5vw7RdVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gaky4fS84RDdDK70rNsF8DQo/7NSYCkC3icT/Z/jxos=; b=cQs7/Frfzi6nr3RtA/AFC+gyqdSVg83uApIyVwXpufg324OlRxNzTH7vz7NZ5hz04a35gW0uQX+4SjjvZDEIDuTIHFSYHVhyTZB3nT031sv12qLQOcbbNHYDCtkjpL7gPHi7AlFTWS99lZC/L5V7mjRD179NnPYJHV6JsaLon4LslYeqT20ckMRkphWNvm74JhN4MkKY4G5N0Pon1RRFJDVVWoL7zp7vaz6A3/crPQRDm2HkzTBg5ig5m4bMkUuM/Nl0I30jvFTHEH0HiLESTNVX0QjWViCgI+MeSWmGLbKzzeaEJ3autrKBovfsE5xYUTn7a4k5H7RPhQzkw2d5lw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by PR3PR08MB5802.eurprd08.prod.outlook.com (2603:10a6:102:8a::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.496.15; Fri, 9 Oct 2026 14:04:46 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0496.010; Fri, 9 Oct 2026 14:04:46 +0000 From: Andrey Drobyshev To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, efim.shevrin@virtuozzo.com, den@openvz.org Subject: [RFC HCI-8.1 PATCH 4/5] qemu: share auxiliary RAM of VMs with DMA-pinning devices #VSTOR-103860 Date: Fri, 9 Oct 2026 17:04:34 +0300 Message-ID: <20261009140435.483100-5-andrey.drobyshev@virtuozzo.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20261009140435.483100-1-andrey.drobyshev@virtuozzo.com> References: <20261009140435.483100-1-andrey.drobyshev@virtuozzo.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: VI1P194CA0026.EURP194.PROD.OUTLOOK.COM (2603:10a6:803:3c::15) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|PR3PR08MB5802:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e61305d-be73-46be-eb38-08df260e469a X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|366016|1800799024|376014|23010399003|5113699003|6133799003|22082099003|18002099003|3023799007|10067099003|260925021911599003|38350700014|260925021311599003|260925022911599003|56012099006|5023799004; X-Microsoft-Antispam-Message-Info: tCRQJRSaZlS1zYrwd6qGBAgOCMoTiLYnQUF9IvNrZOXUrq6DhdaLlO4JiC/bpq63ZBbaAeeI3EPevB45fw4PgXXQHd4SfNPE6pgFEpCiIGU18bv8ucKpXboQ8NwsUBRR95DPLYjBpuSK2DioKf7lz5XKUinExpzZG2N4SLs8s+wzg1FLdam7euT5CWO0mMS1TQbqjfHjQ0RZAkZj77ubHaTi7uvtIEc4F/YR3AkT/SGGeWpXsFimfQub88o5HHojqAq0Yoey38YDQdt0g2dIkvC00aZvUU3dwXgM3tcHVrFpEpNYebPmuzY+dA+RNi5Y5YPG6Rx87o24k7odf2w1U63Io95EsAd3PI5MoTCxFE+xyOnF93Uq3s74CgYadpQjJIr4zjVB8eCX8LMKZdfq98KpV3xONYs/HVxElQ8x1z5zsoKtPlE/Q5tOaDmkdORtpaFErG1oNIohY4Re+F5AzEjOOQKu8jIK6FX72xbfyPGisn60vMtk0Oa6Z4cWEgzTpvDrkv2VbU7GgOSJbsTJESVyJfCufkPZ0B1a1nbMRC/3BvxxUtedLRhLaR/opaIxqNVkSo2RG+/XoNRrM3ej20FSA+TO0oqSOcSp+aL6C3mF4uJKgPKcmOcSFvIKZQ+kgNY7wwdiOBrvfQIX1mrS87/e/1eH8uKudePlE9ZrV6ri4VX5pRObfsrju/mAFLRMGQysRTu/dP0NMKpQxZA/RD7r9e1biJPkDY4xVQBVKag= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(366016)(1800799024)(376014)(23010399003)(5113699003)(6133799003)(22082099003)(18002099003)(3023799007)(10067099003)(260925021911599003)(38350700014)(260925021311599003)(260925022911599003)(56012099006)(5023799004);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FTfsxDQNG49s6shgIQUxYWoENSG9rZkYQxmQilIdnIuR6YqJ/q/Mw6va1Eys?= =?us-ascii?Q?kjfEPaWAhfitsMCF+ulINC71k5KNVmb0qLTN5EGwkV4GOfCheYHD2ToaVsQn?= =?us-ascii?Q?fx5nhVydCh9jIDesC5e+CxZp68K2jBfIuszSqSfK0NYVtGsEQkahkzR+fPDM?= =?us-ascii?Q?7e/vZJMqmOdHWBrW05A0B1DEsngZkDowz6s4DUFIoqJhSLFcJX4TQ7rqj2QE?= =?us-ascii?Q?CiUNoohVHE5uJO5EEGcaNM/+XzUty77anksOSwswyWmlrMMXFJnfQUY6lxbN?= =?us-ascii?Q?hchcuC1oi2weAU1J7Ni09+oVCuMdnait7h+yIfi9F4oFWdfUjaWmzJ3jyX5C?= =?us-ascii?Q?xhLwVo/XLQcU6ZUfc2SlKJyGadQbSxBAkdaJJeJLCe6r3S0MAJjBmuIk7RQQ?= =?us-ascii?Q?LBJXKZZuNLEZOvliO8L0PhSLoGfniQBYGZe1uY0zFvieavOCeHbuknNm87MB?= =?us-ascii?Q?P5rqswU2dTM67OldOpj4H97tay2db+QJDjMTbBWD9FEHbTlBsSTGd3L1Ni0C?= =?us-ascii?Q?lT1MS3VAZKePlbR/Dyq1kXSRfB+igkpHIgd2HyhQPoIxXdyaQhew8oIPfMKP?= =?us-ascii?Q?npei0P8jcOuEwL5ZGAwcYbNxx1qRMzF72G8urgQpIqYNml825bqSIZq+3U7a?= =?us-ascii?Q?irmJFXxfyviRslAyOOk/bOynTiXdWBHEOUJdWrP5spFCNj+ya+L6bgz270h7?= =?us-ascii?Q?rfMwgq4/cEPP+v7P6WZUSnYzAAGkdPIViOPf1NhNfIogeIKrvIscQrR1yGno?= =?us-ascii?Q?BGI7QZot+PK79p7XV8S4RWSYD4nr/XpMP7PWf/jPIIbUdSq4/835GdAZ5EtZ?= =?us-ascii?Q?V8OYDweEsJNE/RVXhzBfDIRW4Z7qLijCdjD3VTf0qsfgUHV9g26nmSd1bSiS?= =?us-ascii?Q?6D5rnCnoBM6JmbhudxcBA0yPaZ5oDWNE+gC6cNGhDDZpW00mNM1/ew1tcyGu?= =?us-ascii?Q?HYAFALsP3jk1lvBqTxG/K8asUMkUWzWxjTVMXDv/IQNsfizFLiyj1M9VWMiZ?= =?us-ascii?Q?j9on0W/65OLoU8lCI2bz0Maz/G3Q2cTCRmLYveS+QabMl4VvSaCHDJxCjKFC?= =?us-ascii?Q?++zDmnva1geK/U5qbga4jD72a7yrj/zciYNN8fyQVnIPZFsLfBGe1QBoa5Jj?= =?us-ascii?Q?TN+kzheagJU+RYXP86g+rDgJfFwYTE2dTvvWW/hsyI/E8quirQm/lsLx2U+j?= =?us-ascii?Q?EGlMSLHFKZXUDGRKVtY8IM1uB+qn9tip5HM0HVBOl1qa5WXBKeVpl4/4TG9J?= =?us-ascii?Q?4+gDFHUIaJCfPGvjfe190AxM8igeEvsvrS6wvbROICJg9GpNZjHy44Co8gIK?= =?us-ascii?Q?jad2nXM6cH9tmCujfX/figW1e4iyNlJhsXh7Q6QPdH5J/mQ+taRGNIxmnlaz?= =?us-ascii?Q?mbk+C/qEZe8bfBQc7vvMHh5YcVTcJMv9Mzo3NI3zf8AGnudG65cpZn5nUK/R?= =?us-ascii?Q?59obdDc7wSwYqcQPVVvLUSBp9HVULxDZaSL+bLrf/JlTiZZfyvLOwwzG1EQv?= =?us-ascii?Q?PvlJ0g9/rEfG1k2UMU8m1Ddewfv05+glof0NYnMQztaaJ73/TmkCcDWLppNZ?= =?us-ascii?Q?fZyp/Bki5HE2eTMmdPxIRBKyNHxrOQx43veQQZmMGvvThVf2sDDwmUSw2Sr2?= =?us-ascii?Q?N8fGusFZJC0ePzdKrDYIho4f01z3yQkhaB4ZT0IgwsmbQn+5D6ghFaGESEQF?= =?us-ascii?Q?JHkUgIkh2OuLc48+Up2bZyxHYC/A8ILPNHon40iRVxDYUpbqZYLmVDAj8tg9?= =?us-ascii?Q?+aenizXluAgXmh1Sl2Q4A8yMUPTKjB4=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e61305d-be73-46be-eb38-08df260e469a X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2026 14:04:46.7846 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LUX9m4zz+lMUs6QR7jKb1Xeq62UveAV2Ij8putIspl4eA8Hhwn4ZoCXD0YSTb2qga/aA5WYNrlThYp+qPs1hJVuVH661HFwIMHbXWf6rR1c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5802 Besides guest RAM, VFIO also maps and pins auxiliary RAM that is visible in the guest address space: VGA VRAM, firmware and option ROMs. QEMU allocates it as anonymous private memory unless the machine property 'aux-ram-share' is on, so with shared memfd guest RAM from the previous commit it is the only memory left that qemu-update preserves with MADV_DOEXEC and that can thus diverge between the device and the guest. ROMs are never written after boot, so in practice only VRAM is at risk, and only if the device does DMA to it; still, close the gap. When a new domain starts with DMA-pinning devices and all of its guest RAM shared, and QEMU knows 'aux-ram-share', add aux-ram-share=on to -machine. The decision is taken once at start and kept in the domain private data ( in the status XML). The qemu-update command line is built from it rather than recomputed, because it must match the running QEMU even after a libvirt upgrade changed the rules. Incoming migration and restore don't share auxiliary RAM, as the source may not have. XML-to-argv outputs of the hostdev, mdev, NVMe and vDPA tests with QEMU 10.0 capabilities gain aux-ram-share=on; the status XML round-trip test covers the new element. Signed-off-by: Andrey Drobyshev --- src/qemu/qemu_command.c | 3 ++ src/qemu/qemu_domain.c | 36 +++++++++++++++++++ src/qemu/qemu_domain.h | 6 ++++ src/qemu/qemu_process.c | 36 ++++++++++++++++++- tests/qemustatusxml2xmldata/modern-in.xml | 1 + .../disk-nvme.x86_64-latest.args | 2 +- .../disk-slices.x86_64-latest.args | 2 +- ...tdev-mdev-display-ramfb.x86_64-latest.args | 2 +- ...play-spice-egl-headless.x86_64-latest.args | 2 +- ...ev-display-spice-opengl.x86_64-latest.args | 2 +- ...isplay-vnc-egl-headless.x86_64-latest.args | 2 +- ...ostdev-mdev-display-vnc.x86_64-latest.args | 2 +- .../hostdev-mdev-display.x86_64-latest.args | 2 +- ...hostdev-mdev-precreated.x86_64-latest.args | 2 +- ...tdev-pci-address-device.x86_64-latest.args | 2 +- ...-pci-address-unassigned.x86_64-latest.args | 2 +- .../hostdev-pci-address.x86_64-latest.args | 2 +- ...stdev-pci-display-ramfb.x86_64-latest.args | 2 +- ...stdev-pci-multifunction.x86_64-latest.args | 2 +- ...tdev-subsys-mdev-vfio-ap.s390x-latest.args | 2 +- ...ubsys-mdev-vfio-ccw-boot.s390x-latest.args | 2 +- ...dev-subsys-mdev-vfio-ccw.s390x-latest.args | 2 +- ...ostdev-vfio-multidomain.x86_64-latest.args | 2 +- ...o-zpci-autogenerate-fids.s390x-latest.args | 2 +- ...o-zpci-autogenerate-uids.s390x-latest.args | 2 +- ...v-vfio-zpci-autogenerate.s390x-latest.args | 2 +- ...dev-vfio-zpci-boundaries.s390x-latest.args | 2 +- ...vfio-zpci-ccw-memballoon.s390x-latest.args | 2 +- ...io-zpci-multidomain-many.s390x-latest.args | 2 +- .../hostdev-vfio-zpci.s390x-latest.args | 2 +- .../hostdev-vfio.x86_64-latest.args | 2 +- ...machine-loadparm-hostdev.s390x-latest.args | 2 +- .../net-hostdev-bootorder.x86_64-latest.args | 2 +- ...net-hostdev-multidomain.x86_64-latest.args | 2 +- ...ostdev-vfio-multidomain.x86_64-latest.args | 2 +- .../net-hostdev-vfio.x86_64-latest.args | 2 +- .../net-hostdev.x86_64-latest.args | 2 +- .../net-vdpa-multiqueue.x86_64-latest.args | 2 +- .../net-vdpa.x86_64-latest.args | 2 +- ...-virtio-teaming-hostdev.x86_64-latest.args | 2 +- ...-virtio-teaming-network.x86_64-latest.args | 2 +- .../net-virtio-teaming.x86_64-latest.args | 2 +- .../pci-rom.x86_64-latest.args | 2 +- .../pseries-hostdevs-1.ppc64-latest.args | 2 +- .../pseries-hostdevs-2.ppc64-latest.args | 2 +- .../pseries-hostdevs-3.ppc64-latest.args | 2 +- 46 files changed, 122 insertions(+), 42 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index fcc0a64ed0d..7c995a58b88 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7399,6 +7399,9 @@ qemuBuildMachineCommandLine(virCommand *cmd, if (qemuAppendDomainMemoryMachineParams(&buf, cfg, def, qemuCaps) < 0) return -1; + if (priv && priv->auxRamShare) + virBufferAddLit(&buf, ",aux-ram-share=on"); + if (cpu && cpu->model && cpu->mode == VIR_CPU_MODE_HOST_MODEL && qemuDomainIsPSeries(def)) { diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 551c214c774..791c833fc13 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1933,6 +1933,7 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivate *priv) g_clear_pointer(&priv->namespaces, virBitmapFree); priv->rememberOwner = false; + priv->auxRamShare = false; priv->reconnectBlockjobs = VIR_TRISTATE_BOOL_ABSENT; priv->allowReboot = VIR_TRISTATE_BOOL_ABSENT; @@ -2881,6 +2882,9 @@ qemuDomainObjPrivateXMLFormat(virBuffer *buf, if (priv->rememberOwner) virBufferAddLit(buf, "\n"); + if (priv->auxRamShare) + virBufferAddLit(buf, "\n"); + qemuDomainObjPrivateXMLFormatAllowReboot(buf, priv->allowReboot); qemuDomainObjPrivateXMLFormatPR(buf, priv); @@ -3605,6 +3609,7 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, } priv->rememberOwner = virXPathBoolean("count(./rememberOwner) > 0", ctxt); + priv->auxRamShare = virXPathBoolean("count(./auxRamShare) > 0", ctxt); if ((n = virXPathNodeSet("./vcpus/vcpu", ctxt, &nodes)) < 0) return -1; @@ -9421,6 +9426,37 @@ qemuDomainNeedsVFIO(const virDomainDef *def) } +/** + * qemuDomainDefGuestRAMIsShared: + * @def: domain definition + * + * Returns true if all guest RAM is shared, i.e. its memory access mode is + * 'shared' globally or for every guest NUMA node. Shared RAM is backed by + * a file or memfd mapped with MAP_SHARED. + */ +bool +qemuDomainDefGuestRAMIsShared(const virDomainDef *def) +{ + size_t nnodes = virDomainNumaGetNodeCount(def->numa); + size_t i; + + if (nnodes == 0) + return def->mem.access == VIR_DOMAIN_MEMORY_ACCESS_SHARED; + + for (i = 0; i < nnodes; i++) { + virDomainMemoryAccess access = + virDomainNumaGetNodeMemoryAccessMode(def->numa, i); + + if (access == VIR_DOMAIN_MEMORY_ACCESS_DEFAULT) + access = def->mem.access; + if (access != VIR_DOMAIN_MEMORY_ACCESS_SHARED) + return false; + } + + return true; +} + + /** * qemuDomainGetHostdevPath: * @dev: host device definition diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index c28ce473152..87b458ece38 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -293,6 +293,10 @@ struct _qemuDomainObjPrivate { /* true if libvirt remembers the original owner for files */ bool rememberOwner; + /* true if QEMU runs with -machine aux-ram-share=on; decided once when + * the domain starts and kept for qemu-update */ + bool auxRamShare; + /* true if global -mem-prealloc appears on cmd line */ bool memPrealloc; @@ -1103,6 +1107,8 @@ bool qemuDomainSupportsVideoVga(const virDomainVideoDef *video, bool qemuDomainNeedsVFIO(const virDomainDef *def); +bool qemuDomainDefGuestRAMIsShared(const virDomainDef *def); + int qemuDomainGetHostdevPath(virDomainHostdevDef *dev, char **path, int *perms); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index cea6957ad1a..b4859a5dba5 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -8025,6 +8025,34 @@ qemuProcessPrepareDomainMemoryBacking(virDomainObj *vm) } +/** + * qemuProcessPrepareDomainAuxRamShare: + * @vm: domain object + * + * Besides guest RAM, VFIO also maps and pins auxiliary RAM visible in the + * guest address space: VGA VRAM, firmware and option ROMs. QEMU allocates + * it as anonymous private memory unless -machine aux-ram-share=on is set, + * so it would keep the qemu-update problem described at + * qemuProcessPrepareDomainMemoryBacking() even with shared guest RAM. + * + * Decide whether to share it. The decision is kept in the status XML and + * reused for qemu-update, whose QEMU command line must match the running + * one regardless of what a newer libvirt would decide. + */ +static void +qemuProcessPrepareDomainAuxRamShare(virDomainObj *vm) +{ + virDomainDef *def = vm->def; + qemuDomainObjPrivate *priv = vm->privateData; + + priv->auxRamShare = (qemuDomainNeedsVFIO(def) || + virDomainDefHasVDPANet(def)) && + qemuDomainDefGuestRAMIsShared(def) && + virQEMUCapsGet(priv->qemuCaps, + QEMU_CAPS_MACHINE_AUX_RAM_SHARE); +} + + static int qemuProcessPrepareDomainHostdevs(virDomainObj *vm, qemuDomainObjPrivate *priv) @@ -8240,8 +8268,14 @@ qemuProcessPrepareDomain(virQEMUDriver *driver, return -1; /* Never on qemu-update: the new QEMU must match the running one. */ - if (!(flags & VIR_QEMU_PROCESS_START_X_QEMU_UPDATE)) + if (!(flags & VIR_QEMU_PROCESS_START_X_QEMU_UPDATE)) { qemuProcessPrepareDomainMemoryBacking(vm); + qemuProcessPrepareDomainAuxRamShare(vm); + } + } else if (!(flags & VIR_QEMU_PROCESS_START_X_QEMU_UPDATE)) { + /* Incoming migration or restore: keep QEMU's default, the source + * didn't necessarily share its auxiliary RAM either. */ + priv->auxRamShare = false; } for (i = 0; i < vm->def->nchannels; i++) { diff --git a/tests/qemustatusxml2xmldata/modern-in.xml b/tests/qemustatusxml2xmldata/modern-in.xml index 3b3e8317599..7fae6e82a14 100644 --- a/tests/qemustatusxml2xmldata/modern-in.xml +++ b/tests/qemustatusxml2xmldata/modern-in.xml @@ -260,6 +260,7 @@ + diff --git a/tests/qemuxmlconfdata/disk-nvme.x86_64-latest.args b/tests/qemuxmlconfdata/disk-nvme.x86_64-latest.args index 31fc6d517bf..a47609d454b 100644 --- a/tests/qemuxmlconfdata/disk-nvme.x86_64-latest.args +++ b/tests/qemuxmlconfdata/disk-nvme.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/disk-slices.x86_64-latest.args b/tests/qemuxmlconfdata/disk-slices.x86_64-latest.args index 2124e6b129e..8db12aac833 100644 --- a/tests/qemuxmlconfdata/disk-slices.x86_64-latest.args +++ b/tests/qemuxmlconfdata/disk-slices.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-ramfb.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-ramfb.x86_64-latest.args index ffcc5562b6d..23ac8d00dba 100644 --- a/tests/qemuxmlconfdata/hostdev-mdev-display-ramfb.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-mdev-display-ramfb.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-spice-egl-headless.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-spice-egl-headless.x86_64-latest.args index ef8c0121ff6..2a011750637 100644 --- a/tests/qemuxmlconfdata/hostdev-mdev-display-spice-egl-headless.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-mdev-display-spice-egl-headless.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-spice-opengl.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-spice-opengl.x86_64-latest.args index 4a863af3abd..fcd3a0ed3e4 100644 --- a/tests/qemuxmlconfdata/hostdev-mdev-display-spice-opengl.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-mdev-display-spice-opengl.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-vnc-egl-headless.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-vnc-egl-headless.x86_64-latest.args index a5ffde5a48e..4be783e8e02 100644 --- a/tests/qemuxmlconfdata/hostdev-mdev-display-vnc-egl-headless.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-mdev-display-vnc-egl-headless.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display-vnc.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display-vnc.x86_64-latest.args index c4b59a37c1a..f3305762ad3 100644 --- a/tests/qemuxmlconfdata/hostdev-mdev-display-vnc.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-mdev-display-vnc.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-mdev-display.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-display.x86_64-latest.args index c4b59a37c1a..f3305762ad3 100644 --- a/tests/qemuxmlconfdata/hostdev-mdev-display.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-mdev-display.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-mdev-precreated.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-mdev-precreated.x86_64-latest.args index 9c8064c7d3b..afcecdbd5f8 100644 --- a/tests/qemuxmlconfdata/hostdev-mdev-precreated.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-mdev-precreated.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-pci-address-device.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-address-device.x86_64-latest.args index 80970358b9c..0597b08ea4f 100644 --- a/tests/qemuxmlconfdata/hostdev-pci-address-device.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-pci-address-device.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-pci-address-unassigned.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-address-unassigned.x86_64-latest.args index 0328d441dce..3c7d7a54371 100644 --- a/tests/qemuxmlconfdata/hostdev-pci-address-unassigned.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-pci-address-unassigned.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-delete/.config \ -name guest=delete,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-delete/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel kvm \ -cpu qemu64 \ -m size=262144k \ diff --git a/tests/qemuxmlconfdata/hostdev-pci-address.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-address.x86_64-latest.args index 18dfa2d17d5..5961e551dc2 100644 --- a/tests/qemuxmlconfdata/hostdev-pci-address.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-pci-address.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args index 332fff8b84a..d1d31c04fc2 100644 --- a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-pci-multifunction.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-multifunction.x86_64-latest.args index 12d10aed715..990f700f968 100644 --- a/tests/qemuxmlconfdata/hostdev-pci-multifunction.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-pci-multifunction.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-delete/.config \ -name guest=delete,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-delete/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel kvm \ -cpu qemu64 \ -m size=262144k \ diff --git a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ap.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ap.s390x-latest.args index 7c923d99f10..5817f9ddacf 100644 --- a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ap.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ap.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=524288k \ diff --git a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw-boot.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw-boot.s390x-latest.args index 6ed62006e3a..03c038b537c 100644 --- a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw-boot.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw-boot.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=524288k \ diff --git a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw.s390x-latest.args index dc225816355..4a3a1ad9eeb 100644 --- a/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-subsys-mdev-vfio-ccw.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=524288k \ diff --git a/tests/qemuxmlconfdata/hostdev-vfio-multidomain.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-multidomain.x86_64-latest.args index ad08f942abe..000de5f65ff 100644 --- a/tests/qemuxmlconfdata/hostdev-vfio-multidomain.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-vfio-multidomain.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-fids.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-fids.s390x-latest.args index d6c1855a015..a688f06fd38 100644 --- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-fids.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-fids.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-uids.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-uids.s390x-latest.args index c71df6ab57f..ef9871783d9 100644 --- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-uids.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate-uids.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate.s390x-latest.args index 75bfe10700f..f22c212d403 100644 --- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-autogenerate.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-boundaries.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-boundaries.s390x-latest.args index 93f15c430b6..2b8f6590a6f 100644 --- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-boundaries.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-boundaries.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args index 37635a3e25c..bd28e8bcb9e 100644 --- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-KVMGuest1/.config \ -name guest=KVMGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-KVMGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel kvm \ -cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=on,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=on,ais=on,bpb=on,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=on,cmm=on,vxpdeh2=on \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci-multidomain-many.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci-multidomain-many.s390x-latest.args index 948bb876fed..6a4605310e3 100644 --- a/tests/qemuxmlconfdata/hostdev-vfio-zpci-multidomain-many.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci-multidomain-many.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-vfio-zpci.s390x-latest.args b/tests/qemuxmlconfdata/hostdev-vfio-zpci.s390x-latest.args index 1e923207ca5..e53d44129dd 100644 --- a/tests/qemuxmlconfdata/hostdev-vfio-zpci.s390x-latest.args +++ b/tests/qemuxmlconfdata/hostdev-vfio-zpci.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/hostdev-vfio.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-vfio.x86_64-latest.args index 7054582818e..48798b83553 100644 --- a/tests/qemuxmlconfdata/hostdev-vfio.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hostdev-vfio.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-latest.args b/tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-latest.args index fa4084739ed..31747c1e982 100644 --- a/tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-latest.args +++ b/tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \ +-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,aux-ram-share=on \ -accel tcg \ -cpu qemu \ -m size=524288k \ diff --git a/tests/qemuxmlconfdata/net-hostdev-bootorder.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev-bootorder.x86_64-latest.args index 432627f037f..40dd5309ba8 100644 --- a/tests/qemuxmlconfdata/net-hostdev-bootorder.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-hostdev-bootorder.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/net-hostdev-multidomain.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev-multidomain.x86_64-latest.args index f9c46a9df79..9a295d59ee4 100644 --- a/tests/qemuxmlconfdata/net-hostdev-multidomain.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-hostdev-multidomain.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/net-hostdev-vfio-multidomain.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev-vfio-multidomain.x86_64-latest.args index bd59a926816..e2a56874246 100644 --- a/tests/qemuxmlconfdata/net-hostdev-vfio-multidomain.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-hostdev-vfio-multidomain.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/net-hostdev-vfio.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev-vfio.x86_64-latest.args index 1f8d5357d95..77c56946978 100644 --- a/tests/qemuxmlconfdata/net-hostdev-vfio.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-hostdev-vfio.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/net-hostdev.x86_64-latest.args b/tests/qemuxmlconfdata/net-hostdev.x86_64-latest.args index 263811a3486..938ae3270f9 100644 --- a/tests/qemuxmlconfdata/net-hostdev.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-hostdev.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/net-vdpa-multiqueue.x86_64-latest.args b/tests/qemuxmlconfdata/net-vdpa-multiqueue.x86_64-latest.args index c4f618c1c06..91ccc9bf28a 100644 --- a/tests/qemuxmlconfdata/net-vdpa-multiqueue.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-vdpa-multiqueue.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/net-vdpa.x86_64-latest.args b/tests/qemuxmlconfdata/net-vdpa.x86_64-latest.args index 15e9cf0a341..65b50faf7f0 100644 --- a/tests/qemuxmlconfdata/net-vdpa.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-vdpa.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/net-virtio-teaming-hostdev.x86_64-latest.args b/tests/qemuxmlconfdata/net-virtio-teaming-hostdev.x86_64-latest.args index fe6521e61b1..ddc5acdb3a2 100644 --- a/tests/qemuxmlconfdata/net-virtio-teaming-hostdev.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-virtio-teaming-hostdev.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/net-virtio-teaming-network.x86_64-latest.args b/tests/qemuxmlconfdata/net-virtio-teaming-network.x86_64-latest.args index 0255d1b586d..9bd650f61b3 100644 --- a/tests/qemuxmlconfdata/net-virtio-teaming-network.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-virtio-teaming-network.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/net-virtio-teaming.x86_64-latest.args b/tests/qemuxmlconfdata/net-virtio-teaming.x86_64-latest.args index a4cf2b9db94..3027e6d3b95 100644 --- a/tests/qemuxmlconfdata/net-virtio-teaming.x86_64-latest.args +++ b/tests/qemuxmlconfdata/net-virtio-teaming.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -name guest=QEMUGuest1,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/pci-rom.x86_64-latest.args b/tests/qemuxmlconfdata/pci-rom.x86_64-latest.args index 70556423ac5..0f1a470f7dd 100644 --- a/tests/qemuxmlconfdata/pci-rom.x86_64-latest.args +++ b/tests/qemuxmlconfdata/pci-rom.x86_64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \ -name guest=QEMUGuest2,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest2/master-key.aes"}' \ --machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,aux-ram-share=on,acpi=off \ -accel tcg \ -cpu qemu64 \ -m size=219136k \ diff --git a/tests/qemuxmlconfdata/pseries-hostdevs-1.ppc64-latest.args b/tests/qemuxmlconfdata/pseries-hostdevs-1.ppc64-latest.args index 57fb8128b39..55227197ae2 100644 --- a/tests/qemuxmlconfdata/pseries-hostdevs-1.ppc64-latest.args +++ b/tests/qemuxmlconfdata/pseries-hostdevs-1.ppc64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \ -name guest=guest,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \ --machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \ +-machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram,aux-ram-share=on \ -accel tcg \ -cpu POWER10 \ -m size=524288k \ diff --git a/tests/qemuxmlconfdata/pseries-hostdevs-2.ppc64-latest.args b/tests/qemuxmlconfdata/pseries-hostdevs-2.ppc64-latest.args index d7c97f4dae8..7807414e174 100644 --- a/tests/qemuxmlconfdata/pseries-hostdevs-2.ppc64-latest.args +++ b/tests/qemuxmlconfdata/pseries-hostdevs-2.ppc64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \ -name guest=guest,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \ --machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \ +-machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram,aux-ram-share=on \ -accel tcg \ -cpu POWER10 \ -m size=524288k \ diff --git a/tests/qemuxmlconfdata/pseries-hostdevs-3.ppc64-latest.args b/tests/qemuxmlconfdata/pseries-hostdevs-3.ppc64-latest.args index 90157f61c25..6b5e7c4ce2e 100644 --- a/tests/qemuxmlconfdata/pseries-hostdevs-3.ppc64-latest.args +++ b/tests/qemuxmlconfdata/pseries-hostdevs-3.ppc64-latest.args @@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \ -name guest=guest,debug-threads=on \ -S \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \ --machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \ +-machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram,aux-ram-share=on \ -accel tcg \ -cpu POWER10 \ -m size=524288k \ -- 2.47.1