From nobody Sun Feb 8 03:58:06 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1576629396; cv=none; d=zohomail.com; s=zohoarc; b=LqXdvTtBjE8N8VoxJ49Tbkj0MW5Ih0ccG3ynZob+E4neuCtW6r6hlkwzBUnKfuAbz+Gc1d1Sb5uH8gfEW7e/sNf+YYjYgPnZRLBYd1xE+C0ZqESKIeJbHy7bNKXrBgG189CCUdFiCYdDotm+YD+CrwENJmP3yzE6yzEUhCSOcI0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1576629396; 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=TBfNWGfh8VezPR4X0nKI4jc43+A6xtkaclWsz441AZI=; b=Q0ZZfDgE5kSEnSxjQXSGlTcyn/WkETdMYoP27ihyBUmRfMSEKTojsDECaafbc056vq1GjVCodU0vFYMLX35iLeLZ9KOL8iybBWKblWRcscbCqQQtqdf+u4rb/LEiJmmW9qGQPWchlI6xCxfAS8g+jpYJBWV4p1g31FyZDXPV0Y8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1576629396594756.1580122146815; Tue, 17 Dec 2019 16:36:36 -0800 (PST) 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-407-spgck_n2NZqn-2b6GyxxJA-1; Tue, 17 Dec 2019 19:36:31 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DCCC3DB20; Wed, 18 Dec 2019 00:36:24 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 25C161A7E3; Wed, 18 Dec 2019 00:36:23 +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 9FF6F104872; Wed, 18 Dec 2019 00:36:19 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xBI0aHr7013584 for ; Tue, 17 Dec 2019 19:36:17 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7189920316DF; Wed, 18 Dec 2019 00:36:17 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6C40B2026D67 for ; Wed, 18 Dec 2019 00:36:15 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 83732185B0AC for ; Wed, 18 Dec 2019 00:36:15 +0000 (UTC) Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-249-8gDDYHLINuWJAv41z_Vqig-1; Tue, 17 Dec 2019 19:36:13 -0500 Received: by mail-qv1-f54.google.com with SMTP id t9so45167qvh.13; Tue, 17 Dec 2019 16:36:13 -0800 (PST) Received: from rekt.ibmuc.com ([2804:431:c7c6:2f19:a73a:b6c3:c24a:90f3]) by smtp.gmail.com with ESMTPSA id m21sm96138qka.117.2019.12.17.16.36.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Dec 2019 16:36:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1576629395; 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=TBfNWGfh8VezPR4X0nKI4jc43+A6xtkaclWsz441AZI=; b=ZAytz0qi+sAK/PGz4SN9NMyQxkoiTNFderoKfNP8dCdbQir38vqK/vuiBpvN+aGjnH4WHt gwGNN7ewRsTCofJ8rzcUrMw2xHekfhOi22oG6rOwHRP/JznwrpEjz6AZz/xir8Sn9gMLvF Co28xvwiVEtx/KD888urey8BOAh6/lU= 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=N1coR6a6vhMcV/ojphm1vwV2ozHCOmM6LGVsWLaPLBY=; b=ee3DnEvvaAdffm/0NEEYYu3oonmYduDD9i/Wk5LmfS3mIjnP+3j/iYcwDG8VD6xpDM 994yuPxS5HZyIOd/qMI35Qgx5PvdUjJ6Qs/L1ubtzoRSDxBvnVIRvclKHnLR4GmPl+WD 7Rh/cX9A4Xy54tReCwM/CZfz1bYPO/2K+Plp5npWl/N5bhXbE98bDXHxvrNp+ljiCrnz Fq8d/rC7hRkgMlUHvB2dYgIbkwt0T/sq8GcU9p45zstZVlTKzc4v/7iqZrahBNQKZcWr iRObw+htzhbHOlaQ9+RL8scYmOdXeN+qPN46LzcbW+Gb+E/IZ9EQE+NycsfrN2Emklij NRZw== X-Gm-Message-State: APjAAAUhULbQ6FnalzmkQF8qQh3rZpcANUlFOuYH8jK6KiS7TxfWiWJk /YbYrc6HM/UFi28VDRHZuaqgYxGd X-Google-Smtp-Source: APXvYqwRJJQDS8kHLsx+pahzpK2y5vGF2obPw8FnDPIK4fydbb6QhyErNC+/ut8h7dAGC+TYvoEsJw== X-Received: by 2002:a0c:ac4e:: with SMTP id m14mr505035qvb.37.1576629373130; Tue, 17 Dec 2019 16:36:13 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Tue, 17 Dec 2019 21:36:00 -0300 Message-Id: <20191218003603.4047144-2-danielhb413@gmail.com> In-Reply-To: <20191218003603.4047144-1-danielhb413@gmail.com> References: <20191218003603.4047144-1-danielhb413@gmail.com> MIME-Version: 1.0 X-MC-Unique: 8gDDYHLINuWJAv41z_Vqig-1 X-MC-Unique: spgck_n2NZqn-2b6GyxxJA-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xBI0aHr7013584 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v2 1/4] qemu: command: move NVDIMM validation to qemu_domain.c 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.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Move the NVDIMM validation from qemuBuildMachineCommandLine() to a new function in qemu_domain.c, qemuDomainDeviceDefValidateMemory(), which is called by qemuDomainDeviceDefValidate(). This allows NVDIMM validation to occur in domain define time. It also increments memory hotplug validation, which can be seen by the failures in the hotplug tests in qemuxml2xmltest.c that needed to be adjusted after the move. Signed-off-by: Daniel Henrique Barboza --- src/qemu/qemu_command.c | 5 ----- src/qemu/qemu_domain.c | 18 +++++++++++++++++- tests/qemuxml2xmltest.c | 12 ++++++------ 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 836057a4ff..3267b0d4b5 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6977,11 +6977,6 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, =20 for (i =3D 0; i < def->nmems; i++) { if (def->mems[i]->model =3D=3D VIR_DOMAIN_MEMORY_MODEL_NVDIMM) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("nvdimm isn't supported by this QEMU bina= ry")); - return -1; - } virBufferAddLit(&buf, ",nvdimm=3Don"); break; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 20a9629760..83964db595 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5637,6 +5637,19 @@ qemuDomainDeviceDefValidateSound(virDomainSoundDefPt= r sound, return 0; } =20 +static int +qemuDomainDeviceDefValidateMemory(virDomainMemoryDefPtr mem, + virQEMUCapsPtr qemuCaps) +{ + if (mem->model =3D=3D VIR_DOMAIN_MEMORY_MODEL_NVDIMM && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("nvdimm isn't supported by this QEMU binary")); + return -1; + } + + return 0; +} =20 static int qemuDomainDefValidate(const virDomainDef *def, @@ -8365,9 +8378,12 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef= *dev, ret =3D qemuDomainDeviceDefValidateSound(dev->data.sound, qemuCaps= ); break; =20 + case VIR_DOMAIN_DEVICE_MEMORY: + ret =3D qemuDomainDeviceDefValidateMemory(dev->data.memory, qemuCa= ps); + break; + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_SHMEM: - case VIR_DOMAIN_DEVICE_MEMORY: case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_NONE: case VIR_DOMAIN_DEVICE_LAST: diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 55bbd924fb..60ae68c58c 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -1221,12 +1221,12 @@ mymain(void) DO_TEST("memory-hotplug", NONE); DO_TEST("memory-hotplug-nonuma", NONE); DO_TEST("memory-hotplug-dimm", NONE); - DO_TEST("memory-hotplug-nvdimm", NONE); - DO_TEST("memory-hotplug-nvdimm-access", NONE); - DO_TEST("memory-hotplug-nvdimm-label", NONE); - DO_TEST("memory-hotplug-nvdimm-align", NONE); - DO_TEST("memory-hotplug-nvdimm-pmem", NONE); - DO_TEST("memory-hotplug-nvdimm-readonly", NONE); + DO_TEST("memory-hotplug-nvdimm", QEMU_CAPS_DEVICE_NVDIMM); + DO_TEST("memory-hotplug-nvdimm-access", QEMU_CAPS_DEVICE_NVDIMM); + DO_TEST("memory-hotplug-nvdimm-label", QEMU_CAPS_DEVICE_NVDIMM); + DO_TEST("memory-hotplug-nvdimm-align", QEMU_CAPS_DEVICE_NVDIMM); + DO_TEST("memory-hotplug-nvdimm-pmem", QEMU_CAPS_DEVICE_NVDIMM); + DO_TEST("memory-hotplug-nvdimm-readonly", QEMU_CAPS_DEVICE_NVDIMM); DO_TEST("net-udp", NONE); =20 DO_TEST("video-virtio-gpu-device", QEMU_CAPS_DEVICE_VIRTIO_GPU); --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list