From nobody Sat Feb 7 18:46:29 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.74 as permitted sender) client-ip=63.128.21.74; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-74.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.74 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1584992503; cv=none; d=zohomail.com; s=zohoarc; b=Y53eT/wl0xyKneQiOSrzjcAGiaFqumFKCXaQSscNSfIbDvNn1ob42pjNbF08WkfQnot40lKtXDHS4BAJeS0GcE4QXymqxgVorrqFDbsfKfSl4CSfI7qxq4Cqf4vWvFG1+hTqJwLrtswMafuL8rK7YsAVmlIthbe/cVVwnaDrEzg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584992503; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TOjyp92k2z5Ap8yYBnv7mOY90SK2aTrQzxm/tmIKXTM=; b=RdXE4YC9xPm83tIknDLmD0d6/oNKj4iCDLYKxe4whQUekEempTvosqUNFtuuGzsI61tbpc93lCl5NY1DAgdtUuM8tCOm2ldGwA1WXxcYHriHrlhabWK0rHUguGr+W+kjRsN6maMfI/7VZfNDoWuFSKCP3IgdTOO2yRab3ov+WV4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.74 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-74.mimecast.com (us-smtp-delivery-74.mimecast.com [63.128.21.74]) by mx.zohomail.com with SMTPS id 1584992503875857.5822408840114; Mon, 23 Mar 2020 12:41:43 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-12-F5sLNDqFNVK-bLsTLVKHXw-1; Mon, 23 Mar 2020 15:41:40 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 15A3B1402; Mon, 23 Mar 2020 19:41:33 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DAD3160C63; Mon, 23 Mar 2020 19:41:32 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 90E2718089D5; Mon, 23 Mar 2020 19:41:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 02NJfLmD012004 for ; Mon, 23 Mar 2020 15:41:21 -0400 Received: by smtp.corp.redhat.com (Postfix) id 7A22FF9ABC; Mon, 23 Mar 2020 19:41:21 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7581CF18CE for ; Mon, 23 Mar 2020 19:41:19 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0332F800299 for ; Mon, 23 Mar 2020 19:41:19 +0000 (UTC) Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-158-4dHGEA8GNqCS0D1fagHLtg-1; Mon, 23 Mar 2020 15:41:16 -0400 Received: by mail-qt1-f193.google.com with SMTP id 10so12862183qtp.1; Mon, 23 Mar 2020 12:41:16 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:a54:94b:6faa:a6b0:6b1b]) by smtp.gmail.com with ESMTPSA id i1sm12803904qtg.31.2020.03.23.12.41.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2020 12:41:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584992502; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=TOjyp92k2z5Ap8yYBnv7mOY90SK2aTrQzxm/tmIKXTM=; b=ctX8tZ7JwbjD2CfkpNJkOQhZEMAkBeaNuf1pIm6Yvy4e7QxmppQ/vodbhULHPG5BnZz4YD WOJGdDE9n2iTi2k0P3Cp1lAbTVmZBRHXOhpY+Dglhi+SijVMDtf4i7s+gGRIJDTrPt32Wt uf+3zaHZgz3E0BzuXfZZn1CltHB/y3E= X-MC-Unique: F5sLNDqFNVK-bLsTLVKHXw-1 X-MC-Unique: 4dHGEA8GNqCS0D1fagHLtg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4pppcApHJU7gVATO6ZtdFqqKY6FYyTRNXls54pU2eY0=; b=BZ4Q4cpLcJtjwLZgGinHWArFn5ZHqV+PAxQtfx25DeT5mtbZE1cyURYkhiq0gBGCtv C5Daz1PO/jFBDZ+eKUAquieroZYQDRhuXDnYdydPrPVEEryco0IugOO9fRlNDjC8XX7Y 9XVKZOziiq0WXctFxxraKH/ttq3bM+UJp3wCDjQTdmtRYvwFyDPsA0/DWxIiBSAuipIx 6A2Lfqy+MFEQrTLWdJq9JNBJU2tKyMdfsRv+6/Kn8AFotJf8Fo6/fFhjEhUU2Fhll3gh YFs96lEYCDYINMjx29UKFaOEa0y8jpP/YkOjUXX/Y/BpI6QUiILi90mKCcFeKsg7p5eR xl0g== X-Gm-Message-State: ANhLgQ0F4Z2qpZl2AJMYPfGDsE/ZV2sXt7aOfG9WV37hc0Bme3Z5s4HG Ol9fw8SFdtHMlpAfjuHI6wnIMI3c X-Google-Smtp-Source: ADFU+vtetrKq9mIXD6qDQm3ovD8HVuqQEnBftOSWRnjEdQtrJ03PfWcdDWsc5R8ncVMU6hdRjYqEPw== X-Received: by 2002:aed:33a6:: with SMTP id v35mr22797939qtd.328.1584992475390; Mon, 23 Mar 2020 12:41:15 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v4 4/6] conf, qemu: enable NVDIMM support for ppc64 Date: Mon, 23 Mar 2020 16:40:49 -0300 Message-Id: <20200323194051.359406-5-danielhb413@gmail.com> In-Reply-To: <20200323194051.359406-1-danielhb413@gmail.com> References: <20200323194051.359406-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 02NJfLmD012004 X-loop: libvir-list@redhat.com Cc: mprivozn@redhat.com, shivaprasadbhat@gmail.com, Daniel Henrique Barboza X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Using the 'uuid' element for ppc64 NVDIMM memory added in the previous patch, use it in qemuBuildMemoryDeviceStr() to pass it over to QEMU. Another ppc64 restriction is the necessity of a mem->labelsize, given than ppc64 only support label-area backed NVDIMMs. Finally, we don't want ppc64 NVDIMMs to align up due to the high risk of going beyond the end of file with a 256MiB increment that the user didn't predict. Align it down instead. If target size is less than the minimum of 256MiB + labelsize, error out since QEMU will error out if we attempt to round it up to the minimum. Signed-off-by: Daniel Henrique Barboza --- src/conf/domain_conf.c | 12 +++- src/qemu/qemu_command.c | 7 +++ src/qemu/qemu_domain.c | 63 +++++++++++++++++-- src/qemu/qemu_domain.h | 4 +- src/qemu/qemu_hotplug.c | 6 +- .../memory-hotplug-nvdimm-ppc64.args | 32 ++++++++++ ...ory-hotplug-nvdimm-ppc64.ppc64-latest.args | 36 +++++++++++ .../memory-hotplug-nvdimm-ppc64.xml | 5 +- tests/qemuxml2argvtest.c | 1 + .../memory-hotplug-nvdimm-ppc64.xml | 5 +- 10 files changed, 159 insertions(+), 12 deletions(-) create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.args create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.ppc6= 4-latest.args diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 43643b93a1..040a75dca8 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6580,7 +6580,8 @@ virDomainVideoDefValidate(const virDomainVideoDef *vi= deo, =20 =20 static int -virDomainMemoryDefValidate(const virDomainMemoryDef *mem) +virDomainMemoryDefValidate(const virDomainMemoryDef *mem, + const virDomainDef *def) { if (mem->model =3D=3D VIR_DOMAIN_MEMORY_MODEL_NVDIMM && mem->discard =3D=3D VIR_TRISTATE_BOOL_YES) { @@ -6589,6 +6590,13 @@ virDomainMemoryDefValidate(const virDomainMemoryDef = *mem) return -1; } =20 + if (mem->model =3D=3D VIR_DOMAIN_MEMORY_MODEL_NVDIMM && + ARCH_IS_PPC64(def->os.arch) && mem->labelsize =3D=3D 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("label size is required for NVDIMM device")); + return -1; + } + return 0; } =20 @@ -6697,7 +6705,7 @@ virDomainDeviceDefValidateInternal(const virDomainDev= iceDef *dev, return virDomainVideoDefValidate(dev->data.video, def); =20 case VIR_DOMAIN_DEVICE_MEMORY: - return virDomainMemoryDefValidate(dev->data.memory); + return virDomainMemoryDefValidate(dev->data.memory, def); =20 case VIR_DOMAIN_DEVICE_VSOCK: return virDomainVsockDefValidate(dev->data.vsock); diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9790c92cf8..7a546970e7 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3678,6 +3678,13 @@ qemuBuildMemoryDeviceStr(virDomainMemoryDefPtr mem, if (mem->labelsize) virBufferAsprintf(&buf, "label-size=3D%llu,", mem->labelsize *= 1024); =20 + if (virUUIDIsValid(mem->uuid)) { + char uuidstr[VIR_UUID_STRING_BUFLEN]; + + virUUIDFormat(mem->uuid, uuidstr); + virBufferAsprintf(&buf, "uuid=3D%s,", uuidstr); + } + if (mem->readonly) { if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE_NVDIMM_UN= ARMED)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 9cff36cb77..78dd643a5e 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -12614,6 +12614,46 @@ qemuDomainGetMemoryModuleSizeAlignment(const virDo= mainDef *def, } =20 =20 +static int +qemuDomainNVDimmAlignSizePseries(virDomainDefPtr def, + virDomainMemoryDefPtr mem) +{ + /* For NVDIMMs in ppc64 in we want to align down the guest + * visible space, instead of align up, to avoid writing + * beyond the end of file by adding a potential 256MiB + * to the user specified size. + * + * The label-size is mandatory for ppc64 as well, meaning that + * the guest visible space will be target_size-label_size. + * + * Finally, target_size must include label_size. + * + * The above can be summed up as follows: + * + * target_size =3D AlignDown(target_size - label_size) + label_size + */ + unsigned long long ppc64AlignSize =3D qemuDomainGetMemorySizeAlignment= (def); + unsigned long long guestArea =3D mem->size - mem->labelsize; + + /* Align down guest_area. 256MiB is the minimum size. Error + * out if target_size is smaller than 256MiB + label_size, + * since aligning it up will cause QEMU errors. */ + if (mem->size < (ppc64AlignSize + mem->labelsize)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("minimum target size for the NVDIMM " + "must be 256MB plus the label size")); + return -1; + } + + guestArea =3D (guestArea/ppc64AlignSize) * ppc64AlignSize; + guestArea =3D MAX(guestArea, ppc64AlignSize); + + mem->size =3D guestArea + mem->labelsize; + + return 0; +} + + int qemuDomainAlignMemorySizes(virDomainDefPtr def) { @@ -12660,8 +12700,15 @@ qemuDomainAlignMemorySizes(virDomainDefPtr def) =20 /* Align memory module sizes */ for (i =3D 0; i < def->nmems; i++) { - align =3D qemuDomainGetMemoryModuleSizeAlignment(def, def->mems[i]= ); - def->mems[i]->size =3D VIR_ROUND_UP(def->mems[i]->size, align); + if (def->mems[i]->model =3D=3D VIR_DOMAIN_MEMORY_MODEL_NVDIMM && + ARCH_IS_PPC64(def->os.arch)) { + if (qemuDomainNVDimmAlignSizePseries(def, def->mems[i]) < 0) + return -1; + } else { + align =3D qemuDomainGetMemoryModuleSizeAlignment(def, def->mem= s[i]); + def->mems[i]->size =3D VIR_ROUND_UP(def->mems[i]->size, align); + } + hotplugmem +=3D def->mems[i]->size; =20 if (def->mems[i]->size > maxmemkb) { @@ -12686,11 +12733,19 @@ qemuDomainAlignMemorySizes(virDomainDefPtr def) * inplace. Default rounding is now to 1 MiB (qemu requires rouding to pag= e, * size so this should be safe). */ -void +int qemuDomainMemoryDeviceAlignSize(virDomainDefPtr def, virDomainMemoryDefPtr mem) { - mem->size =3D VIR_ROUND_UP(mem->size, qemuDomainGetMemorySizeAlignment= (def)); + if (mem->model =3D=3D VIR_DOMAIN_MEMORY_MODEL_NVDIMM && + ARCH_IS_PPC64(def->os.arch)) { + return qemuDomainNVDimmAlignSizePseries(def, mem); + } else { + mem->size =3D VIR_ROUND_UP(mem->size, + qemuDomainGetMemorySizeAlignment(def)); + } + + return 0; } =20 =20 diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 0a49f6dea3..7151efa200 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -967,8 +967,8 @@ bool qemuDomainHasBlockjob(virDomainObjPtr vm, bool cop= y_only) ATTRIBUTE_NONNULL(1); =20 int qemuDomainAlignMemorySizes(virDomainDefPtr def); -void qemuDomainMemoryDeviceAlignSize(virDomainDefPtr def, - virDomainMemoryDefPtr mem); +int qemuDomainMemoryDeviceAlignSize(virDomainDefPtr def, + virDomainMemoryDefPtr mem); =20 virDomainChrDefPtr qemuFindAgentConfig(virDomainDefPtr def); =20 diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index c17442aaeb..2b4db4f2f8 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2352,7 +2352,8 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, int id; int ret =3D -1; =20 - qemuDomainMemoryDeviceAlignSize(vm->def, mem); + if (qemuDomainMemoryDeviceAlignSize(vm->def, mem) < 0) + goto cleanup; =20 if (qemuDomainDefValidateMemoryHotplug(vm->def, priv->qemuCaps, mem) <= 0) goto cleanup; @@ -5641,7 +5642,8 @@ qemuDomainDetachPrepMemory(virDomainObjPtr vm, virDomainMemoryDefPtr mem; int idx; =20 - qemuDomainMemoryDeviceAlignSize(vm->def, match); + if (qemuDomainMemoryDeviceAlignSize(vm->def, match) < 0) + return -1; =20 if ((idx =3D virDomainMemoryFindByDef(vm->def, match)) < 0) { virReportError(VIR_ERR_DEVICE_MISSING, diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.args b/test= s/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.args new file mode 100644 index 0000000000..92e6c538fb --- /dev/null +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.args @@ -0,0 +1,32 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=3Dnone \ +/usr/bin/qemu-system-ppc64 \ +-name QEMUGuest1 \ +-S \ +-machine pseries,accel=3Dtcg,usb=3Doff,dump-guest-core=3Doff,nvdimm=3Don \ +-m size=3D1048576k,slots=3D16,maxmem=3D1099511627776k \ +-realtime mlock=3Doff \ +-smp 2,sockets=3D2,cores=3D1,threads=3D1 \ +-numa node,nodeid=3D0,cpus=3D0-1,mem=3D1024 \ +-object memory-backend-file,id=3Dmemnvdimm0,prealloc=3Dyes,mem-path=3D/tmp= /nvdimm,\ +size=3D537001984 \ +-device nvdimm,node=3D0,label-size=3D131072,\ +uuid=3D49545eb3-75e1-2d0a-acdd-f0294406c99e,memdev=3Dmemnvdimm0,id=3Dnvdim= m0,slot=3D0 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni= tor.sock,\ +server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-usb \ +-device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x2 diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.ppc64-lates= t.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.ar= gs new file mode 100644 index 0000000000..7f556a6668 --- /dev/null +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.args @@ -0,0 +1,36 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=3Dnone \ +/usr/bin/qemu-system-ppc64 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object secret,id=3DmasterKey0,format=3Draw,\ +file=3D/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ +-machine pseries,accel=3Dtcg,usb=3Doff,dump-guest-core=3Doff,nvdimm=3Don \ +-cpu POWER9 \ +-m size=3D1048576k,slots=3D16,maxmem=3D1099511627776k \ +-overcommit mem-lock=3Doff \ +-smp 2,sockets=3D2,dies=3D1,cores=3D1,threads=3D1 \ +-numa node,nodeid=3D0,cpus=3D0-1,mem=3D1024 \ +-object memory-backend-file,id=3Dmemnvdimm0,prealloc=3Dyes,mem-path=3D/tmp= /nvdimm,\ +size=3D537001984 \ +-device nvdimm,node=3D0,label-size=3D131072,\ +uuid=3D49545eb3-75e1-2d0a-acdd-f0294406c99e,memdev=3Dmemnvdimm0,id=3Dnvdim= m0,slot=3D0 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-device pci-ohci,id=3Dusb,bus=3Dpci.0,addr=3D0x1 \ +-device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x2 \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.xml b/tests= /qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.xml index 59352d3c52..ae5a17d3c8 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.xml @@ -38,8 +38,11 @@ /tmp/nvdimm - 523264 + 550000 0 +
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index e81d1d7fa1..4d44286b5a 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -2791,6 +2791,7 @@ mymain(void) DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm-align"); DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm-pmem"); DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm-readonly"); + DO_TEST_CAPS_ARCH_LATEST("memory-hotplug-nvdimm-ppc64", "ppc64"); =20 DO_TEST("machine-aeskeywrap-on-caps", QEMU_CAPS_AES_KEY_WRAP, diff --git a/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.xml b/tes= ts/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.xml index 59352d3c52..ae5a17d3c8 100644 --- a/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.xml +++ b/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.xml @@ -38,8 +38,11 @@ /tmp/nvdimm - 523264 + 550000 0 +
--=20 2.25.1