From nobody Thu May 2 07:44:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571412627; cv=none; d=zoho.com; s=zohoarc; b=glbStelw30Zjc+T669gAb1Cwag9vuLZfHoxKA4NYtCIRK1AK9DgxTe/hLj67giZ08F3IMq8BnI2XD+33IUaqTxffsBGV9Uaz72g/954cpCD6lBvK6lLd3JGsL2EQsrMM7em5I+kp18xgynQhujYe6Wz6vNmEjQ5dkarddnOANWg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571412627; 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=zSkFRc7ix6n4jge7Q5rihVpyFgQnFOVUHkuLyc5osLY=; b=hJxJrRAmbI4Pa07xa+FTZ5k0IcZdbzvRgbT08ZYH/koDBbQFTIj1mvYhh79hnudwb3eMfvtujPZYokOdfhkVEPIXYb1+5aJL5/kCZE4Lr5bz8OvpflCnPbgqq+FpKPSrfgnUpRefU2dpStYjihquiLiyvcTzE2eklT3bzrLooSk= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1571412627766433.8830381495154; Fri, 18 Oct 2019 08:30:27 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A14E6300C5A9; Fri, 18 Oct 2019 15:30:25 +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 6A3325D71C; Fri, 18 Oct 2019 15:30:25 +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 1C1114EE69; Fri, 18 Oct 2019 15:30:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9IFULoj001363 for ; Fri, 18 Oct 2019 11:30:21 -0400 Received: by smtp.corp.redhat.com (Postfix) id 4F0D75D71C; Fri, 18 Oct 2019 15:30:21 +0000 (UTC) Received: from himantopus.redhat.com (ovpn-116-193.phx2.redhat.com [10.3.116.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 13BED5D70E; Fri, 18 Oct 2019 15:30:21 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Fri, 18 Oct 2019 10:30:09 -0500 Message-Id: <20191018153017.4819-2-jjongsma@redhat.com> In-Reply-To: <20191018153017.4819-1-jjongsma@redhat.com> References: <20191018153017.4819-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: crobinso@redhat.com Subject: [libvirt] [PATCH v3 1/9] qemu: fix domain device validation 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Fri, 18 Oct 2019 15:30:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" When the virDomainCapsDeviceDefValidate() function returned an error status (-1), we were aborting the function early, but returning the default return value (0). This patch properly returns an error in that case. Signed-off-by: Jonathon Jongsma --- src/qemu/qemu_domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 09b6c9a570..92a0df2d75 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7211,7 +7211,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef = *dev, if ((ret =3D qemuDomainDeviceDefValidateAddress(dev, qemuCaps)) < 0) goto cleanup; =20 - if (virDomainCapsDeviceDefValidate(domCaps, dev, def) < 0) + if ((ret =3D virDomainCapsDeviceDefValidate(domCaps, dev, def)) < 0) goto cleanup; =20 switch ((virDomainDeviceType)dev->type) { --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 07:44:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571412632; cv=none; d=zoho.com; s=zohoarc; b=FJVyW+ReGQSxrIry67BQbU+OeWJr4Z47BFNanDFa+CEPs2fwyi7StTWOO7l2j1GDMkLW2b95iElS/fxhmX27+7MhyGKXgutXta2i5KeAamWwXP9j6l2kfZP5vloVvmLrzXgeuahXHQE5reXA1G3uU960f9Gstj1ZVmMJmjlbaXU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571412632; 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=sPLSX2aHZOsIUewCpHbzdiRTKYfaMEbmWeJvi4ijYi8=; b=VT7uYsQtwiyxHjF7mBGEn713traRlXXcsfk+n0rX1d99yua5SyYiUVbzjzcrs/+xkY1pikQ46TmAdhWlu5WfXrepJPI66a4pMUKEo2fDR4BEUpbxvyySiXgX2ejxCJtS28Wpl2IsKHyAo5ks7NJZGzr7qXnYUU3pEQYu6TsIueM= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1571412632018585.6721436493553; Fri, 18 Oct 2019 08:30:32 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 19CB518C4288; Fri, 18 Oct 2019 15:30:30 +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 D6E8E5D70E; Fri, 18 Oct 2019 15:30:29 +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 826AE4EE6A; Fri, 18 Oct 2019 15:30:29 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9IFULWg001368 for ; Fri, 18 Oct 2019 11:30:21 -0400 Received: by smtp.corp.redhat.com (Postfix) id A83735D721; Fri, 18 Oct 2019 15:30:21 +0000 (UTC) Received: from himantopus.redhat.com (ovpn-116-193.phx2.redhat.com [10.3.116.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6C74D5B6A5; Fri, 18 Oct 2019 15:30:21 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Fri, 18 Oct 2019 10:30:10 -0500 Message-Id: <20191018153017.4819-3-jjongsma@redhat.com> In-Reply-To: <20191018153017.4819-1-jjongsma@redhat.com> References: <20191018153017.4819-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: crobinso@redhat.com Subject: [libvirt] [PATCH v3 2/9] qemu: use g_autoptr in qemuDomainDeviceDefValidate() 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.62]); Fri, 18 Oct 2019 15:30:30 +0000 (UTC) Content-Type: text/plain; charset="utf-8" This allows us to simplify the function and avoid jumping to 'cleanup'. Signed-off-by: Jonathon Jongsma --- src/qemu/qemu_domain.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 92a0df2d75..39ab424873 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7195,8 +7195,8 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef = *dev, { int ret =3D 0; virQEMUDriverPtr driver =3D opaque; - virQEMUCapsPtr qemuCaps =3D NULL; - virDomainCapsPtr domCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; + g_autoptr(virDomainCaps) domCaps =3D NULL; =20 if (!(qemuCaps =3D virQEMUCapsCacheLookup(driver->qemuCapsCache, def->emulator))) @@ -7206,13 +7206,13 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDe= f *dev, def->os.machine, def->os.arch, def->virtType))) - goto cleanup; + return -1; =20 if ((ret =3D qemuDomainDeviceDefValidateAddress(dev, qemuCaps)) < 0) - goto cleanup; + return ret; =20 if ((ret =3D virDomainCapsDeviceDefValidate(domCaps, dev, def)) < 0) - goto cleanup; + return ret; =20 switch ((virDomainDeviceType)dev->type) { case VIR_DOMAIN_DEVICE_NET: @@ -7298,9 +7298,6 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef = *dev, break; } =20 - cleanup: - virObjectUnref(qemuCaps); - virObjectUnref(domCaps); return ret; } =20 --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 07:44:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571412632; cv=none; d=zoho.com; s=zohoarc; b=iWyPHmvshEraBycpQuOcIyFRE6PhRx90TVQj/x59HKroPP+T6wJeEN1wc2Ybk0jIYj1DbkMmyFUfLuoiFI1x7D0Zk1KrcsDXTVYfexaW5piQ13zL8GPzIZIvsTWwWs2unMhN3AD/zUmv5XiXN07vhfx6O2xkbmuG3U7qzucSits= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571412632; 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=FJRkOUYXIEGCo9exQcb4LdBJLX+0CtRcbVCOIDjGIU8=; b=N2Fs3joAtskJujLvurhtqKfXVt+G7pkAJMO9AykFblokr8IS2uMUz8OhZkkAyQ04yL0THvUIPHD+IviKdYRjommlgknERkBUAHlQ+2rqd2iPoEqCJmVr1kjovXpU9bqEKYBvp41u4fJJpJt2tzLBFGMYgxKyEioQY41ORWV4vv4= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1571412632871991.5961632913891; Fri, 18 Oct 2019 08:30:32 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id AF97A76521; Fri, 18 Oct 2019 15:30:30 +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 7DE6660BF4; Fri, 18 Oct 2019 15:30:30 +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 1D5354EE6A; Fri, 18 Oct 2019 15:30:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9IFUMmc001378 for ; Fri, 18 Oct 2019 11:30:22 -0400 Received: by smtp.corp.redhat.com (Postfix) id 17DB45D721; Fri, 18 Oct 2019 15:30:22 +0000 (UTC) Received: from himantopus.redhat.com (ovpn-116-193.phx2.redhat.com [10.3.116.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C3E465D772; Fri, 18 Oct 2019 15:30:21 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Fri, 18 Oct 2019 10:30:11 -0500 Message-Id: <20191018153017.4819-4-jjongsma@redhat.com> In-Reply-To: <20191018153017.4819-1-jjongsma@redhat.com> References: <20191018153017.4819-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: crobinso@redhat.com Subject: [libvirt] [PATCH v3 3/9] qemu: Set capabilities properly for tests 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: , Content-Transfer-Encoding: quoted-printable 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-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 18 Oct 2019 15:30:31 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Several tests were not specifying the necessary qemu capabilities for what they were testing. Due to the way that the video devices are currently validated, this is not causing any problems. But a change to video device validation in a following patch would have exposed this issue and resulted in multiple test failures about the domain configuration not supporting particular video models. Signed-off-by: Jonathon Jongsma --- tests/qemuhotplugtest.c | 3 ++ tests/qemuxml2argvtest.c | 1 + tests/qemuxml2xmltest.c | 89 ++++++++++++++++++-------------- tests/securityselinuxlabeltest.c | 9 ++++ 4 files changed, 64 insertions(+), 38 deletions(-) diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index d3da08875a..3b5d006949 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -82,6 +82,9 @@ qemuHotplugCreateObjects(virDomainXMLOptionPtr xmlopt, virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SCSI_DISK_WWN); virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI); virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE); + virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_QXL); + virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_VGA); + virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_CIRRUS_VGA); =20 if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0) goto cleanup; diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 5212ce50bd..7c314050f6 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -2917,6 +2917,7 @@ mymain(void) DO_TEST("virtio-options", QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_VIRTIO_KEYB= OARD, QEMU_CAPS_VIRTIO_MOUSE, QEMU_CAPS_VIRTIO_TABLET, QEMU_CAPS_VIRTIO_INPUT_HOST, + QEMU_CAPS_DEVICE_VIRTIO_GPU, QEMU_CAPS_DEVICE_VHOST_USER_GPU, QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM, diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index b9364f942f..15db9d7de9 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -359,35 +359,37 @@ mymain(void) DO_TEST("disk-mirror-old", NONE); DO_TEST("disk-mirror", NONE); DO_TEST("disk-active-commit", NONE); - DO_TEST("graphics-listen-network", NONE); - DO_TEST("graphics-vnc", NONE); - DO_TEST("graphics-vnc-websocket", NONE); - DO_TEST("graphics-vnc-sasl", NONE); - DO_TEST("graphics-vnc-tls", NONE); - DO_TEST("graphics-vnc-no-listen-attr", NONE); - DO_TEST("graphics-vnc-remove-generated-socket", NONE); + DO_TEST("graphics-listen-network", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc-websocket", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc-sasl", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc-tls", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc-no-listen-attr", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc-remove-generated-socket", QEMU_CAPS_DEVICE_CIRRU= S_VGA); cfg->vncAutoUnixSocket =3D true; - DO_TEST("graphics-vnc-auto-socket-cfg", NONE); + DO_TEST("graphics-vnc-auto-socket-cfg", QEMU_CAPS_DEVICE_CIRRUS_VGA); cfg->vncAutoUnixSocket =3D false; - DO_TEST("graphics-vnc-socket", NONE); - DO_TEST("graphics-vnc-auto-socket", NONE); + DO_TEST("graphics-vnc-socket", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc-auto-socket", QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("graphics-vnc-egl-headless", - QEMU_CAPS_EGL_HEADLESS); - - DO_TEST("graphics-sdl", NONE); - DO_TEST("graphics-sdl-fullscreen", NONE); - DO_TEST("graphics-spice", NONE); - DO_TEST("graphics-spice-compression", NONE); - DO_TEST("graphics-spice-qxl-vga", NONE); - DO_TEST("graphics-spice-socket", NONE); - DO_TEST("graphics-spice-auto-socket", NONE); + QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_EGL_HEADLESS); + + DO_TEST("graphics-sdl", QEMU_CAPS_DEVICE_VGA); + DO_TEST("graphics-sdl-fullscreen", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-spice", QEMU_CAPS_DEVICE_QXL); + DO_TEST("graphics-spice-compression", QEMU_CAPS_DEVICE_QXL); + DO_TEST("graphics-spice-qxl-vga", QEMU_CAPS_DEVICE_QXL); + DO_TEST("graphics-spice-socket", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-spice-auto-socket", QEMU_CAPS_DEVICE_CIRRUS_VGA); cfg->spiceAutoUnixSocket =3D true; - DO_TEST("graphics-spice-auto-socket-cfg", NONE); + DO_TEST("graphics-spice-auto-socket-cfg", QEMU_CAPS_DEVICE_CIRRUS_VGA); cfg->spiceAutoUnixSocket =3D false; DO_TEST("graphics-spice-egl-headless", + QEMU_CAPS_DEVICE_QXL, QEMU_CAPS_EGL_HEADLESS); =20 DO_TEST("graphics-egl-headless-rendernode", + QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_EGL_HEADLESS, QEMU_CAPS_EGL_HEADLESS_RENDERNODE); =20 @@ -419,15 +421,15 @@ mymain(void) DO_TEST("sound", NONE); DO_TEST("sound-device", NONE); DO_TEST("watchdog", NONE); - DO_TEST("net-bandwidth", NONE); - DO_TEST("net-bandwidth2", NONE); + DO_TEST("net-bandwidth", QEMU_CAPS_DEVICE_VGA); + DO_TEST("net-bandwidth2", QEMU_CAPS_DEVICE_VGA); DO_TEST("net-mtu", NONE); DO_TEST("net-coalesce", NONE); DO_TEST("net-many-models", NONE); =20 DO_TEST("serial-tcp-tlsx509-chardev", NONE); DO_TEST("serial-tcp-tlsx509-chardev-notls", NONE); - DO_TEST("serial-spiceport", NONE); + DO_TEST("serial-spiceport", QEMU_CAPS_DEVICE_QXL); DO_TEST("serial-spiceport-nospice", NONE); DO_TEST("console-compat", NONE); DO_TEST("console-compat2", NONE); @@ -457,7 +459,9 @@ mymain(void) QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_ZPCI); DO_TEST("hostdev-mdev-precreated", NONE); - DO_TEST("hostdev-mdev-display", QEMU_CAPS_VFIO_PCI_DISPLAY); + DO_TEST("hostdev-mdev-display", + QEMU_CAPS_DEVICE_QXL, + QEMU_CAPS_VFIO_PCI_DISPLAY); DO_TEST("pci-rom", NONE); DO_TEST("pci-rom-disabled", NONE); DO_TEST("pci-rom-disabled-invalid", NONE); @@ -497,7 +501,7 @@ mymain(void) DO_TEST("event_idx", NONE); DO_TEST("vhost_queues", NONE); DO_TEST("interface-driver", NONE); - DO_TEST("interface-server", NONE); + DO_TEST("interface-server", QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("virtio-lun", NONE); =20 DO_TEST("usb-none", NONE); @@ -545,7 +549,7 @@ mymain(void) DO_TEST("seclabel-dynamic-none", NONE); DO_TEST("seclabel-device-multiple", NONE); DO_TEST_FULL("seclabel-dynamic-none-relabel", WHEN_INACTIVE, - ARG_QEMU_CAPS, NONE); + ARG_QEMU_CAPS, QEMU_CAPS_DEVICE_CIRRUS_VGA, NONE); DO_TEST("numad-static-vcpu-no-numatune", NONE); =20 DO_TEST("disk-scsi-lun-passthrough-sgio", @@ -660,8 +664,8 @@ mymain(void) QEMU_CAPS_SCSI_LSI); DO_TEST("console-virtio", NONE); DO_TEST("serial-target-port-auto", NONE); - DO_TEST("graphics-listen-network2", NONE); - DO_TEST("graphics-spice-timeout", NONE); + DO_TEST("graphics-listen-network2", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-spice-timeout", QEMU_CAPS_DEVICE_VGA); DO_TEST("numad-auto-vcpu-no-numatune", NONE); DO_TEST("numad-auto-memory-vcpu-no-cpuset-and-placement", NONE); DO_TEST("numad-auto-memory-vcpu-cpuset", NONE); @@ -690,7 +694,7 @@ mymain(void) DO_TEST("pci-autoadd-idx", QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("pci-autofill-addr", NONE); + DO_TEST("pci-autofill-addr", QEMU_CAPS_DEVICE_CIRRUS_VGA); =20 DO_TEST("q35", QEMU_CAPS_DEVICE_PCI_BRIDGE, @@ -1155,10 +1159,16 @@ mymain(void) DO_TEST("memory-hotplug-nvdimm-readonly", NONE); DO_TEST("net-udp", NONE); =20 - DO_TEST("video-virtio-gpu-device", NONE); - DO_TEST("video-virtio-gpu-virgl", NONE); - DO_TEST("video-virtio-gpu-spice-gl", NONE); - DO_TEST("video-virtio-gpu-sdl-gl", NONE); + DO_TEST("video-virtio-gpu-device", QEMU_CAPS_DEVICE_VIRTIO_GPU); + DO_TEST("video-virtio-gpu-virgl", + QEMU_CAPS_DEVICE_VIRTIO_GPU, + QEMU_CAPS_VIRTIO_GPU_VIRGL); + DO_TEST("video-virtio-gpu-spice-gl", + QEMU_CAPS_DEVICE_VIRTIO_GPU, + QEMU_CAPS_VIRTIO_GPU_VIRGL); + DO_TEST("video-virtio-gpu-sdl-gl", + QEMU_CAPS_DEVICE_VIRTIO_GPU, + QEMU_CAPS_VIRTIO_GPU_VIRGL); =20 DO_TEST("virtio-input", QEMU_CAPS_VIRTIO_KEYBOARD, @@ -1182,7 +1192,8 @@ mymain(void) QEMU_CAPS_OBJECT_RNG_RANDOM, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM, - QEMU_CAPS_VIRTIO_PCI_ATS); + QEMU_CAPS_VIRTIO_PCI_ATS, + QEMU_CAPS_DEVICE_VHOST_USER_GPU); =20 DO_TEST("fd-memory-numa-topology", QEMU_CAPS_OBJECT_MEMORY_FILE, QEMU_CAPS_KVM); @@ -1208,9 +1219,9 @@ mymain(void) QEMU_CAPS_VNC, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_DEVICE_QXL); - DO_TEST("video-qxl-heads", NONE); - DO_TEST("video-qxl-noheads", NONE); - DO_TEST("video-virtio-gpu-secondary", NONE); + DO_TEST("video-qxl-heads", QEMU_CAPS_DEVICE_QXL); + DO_TEST("video-qxl-noheads", QEMU_CAPS_DEVICE_QXL); + DO_TEST("video-virtio-gpu-secondary", QEMU_CAPS_DEVICE_VIRTIO_GPU); DO_TEST("video-virtio-gpu-ccw", QEMU_CAPS_CCW, QEMU_CAPS_DEVICE_VIRTIO_GPU, @@ -1257,7 +1268,9 @@ mymain(void) DO_TEST("pseries-cpu-exact", QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE); =20 - DO_TEST("user-aliases", QEMU_CAPS_QCOW2_LUKS); + DO_TEST("user-aliases", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_QCOW2_LUKS); DO_TEST("input-virtio-ccw", QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_KEYBOARD, diff --git a/tests/securityselinuxlabeltest.c b/tests/securityselinuxlabelt= est.c index 6f9b5c0e70..eba5b0b6af 100644 --- a/tests/securityselinuxlabeltest.c +++ b/tests/securityselinuxlabeltest.c @@ -340,6 +340,7 @@ mymain(void) { int ret =3D 0; int rc =3D testUserXattrEnabled(); + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; =20 if (rc < 0) return EXIT_FAILURE; @@ -357,6 +358,14 @@ mymain(void) if (qemuTestDriverInit(&driver) < 0) return EXIT_FAILURE; =20 + if (!(qemuCaps =3D virQEMUCapsNew())) + return EXIT_FAILURE; + + virQEMUCapsSet(qemuCaps, QEMU_CAPS_DEVICE_CIRRUS_VGA); + + if (qemuTestCapsCacheInsert(driver.qemuCapsCache, qemuCaps) < 0) + return EXIT_FAILURE; + #define DO_TEST_LABELING(name) \ if (virTestRun("Labelling " # name, testSELinuxLabeling, name) < 0) \ ret =3D -1; --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 07:44:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571412636; cv=none; d=zoho.com; s=zohoarc; b=FyIrYyHuRAt1UITjnmWqJXUXzNR10kwBWEJq979wHjpPhvVn6BfOREYCAAL70Av44t0pyty4SLGppSlQ4qmfQe13ZN1MQIsGCCkmi5G7GdL3qVcAOh2PQexhznIgakGsTWKBkVrnKjVkT7Lynb0JblAy6tNHIGK5CgJfNOA3Qoo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571412636; 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=fJ+DPAl+pZaG5B4JfxpCMDo7eyFnyDoopJYyYMZyGWQ=; b=hqZNiJ+KRkPBM9QYPwOn3kjHVBo3cBkRk0/W+VHEyIRWRgb/fZaW1q99QsTCU3bmCLrP/zHnqcJqkqPHyqZ4iZTp5Vzeq14BUIPiUfv4ccittTxHzxT8r/FeXYZmgc28iaFvmXqz4bzbDSRiNebUgymdc96qW/qivRg7iqRe6AY= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1571412636853526.5839039837749; Fri, 18 Oct 2019 08:30:36 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id A1A756567B; Fri, 18 Oct 2019 15:30:34 +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 51CEC1D9; Fri, 18 Oct 2019 15:30:34 +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 017BC1803518; Fri, 18 Oct 2019 15:30:33 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9IFUMZC001386 for ; Fri, 18 Oct 2019 11:30:22 -0400 Received: by smtp.corp.redhat.com (Postfix) id 706665B6A5; Fri, 18 Oct 2019 15:30:22 +0000 (UTC) Received: from himantopus.redhat.com (ovpn-116-193.phx2.redhat.com [10.3.116.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 341F05D721; Fri, 18 Oct 2019 15:30:22 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Fri, 18 Oct 2019 10:30:12 -0500 Message-Id: <20191018153017.4819-5-jjongsma@redhat.com> In-Reply-To: <20191018153017.4819-1-jjongsma@redhat.com> References: <20191018153017.4819-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: crobinso@redhat.com Subject: [libvirt] [PATCH v3 4/9] qemu: set domain capability for ramfb device 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: , Content-Transfer-Encoding: quoted-printable 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-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 18 Oct 2019 15:30:35 +0000 (UTC) Content-Type: text/plain; charset="utf-8" commit 9bfcf0f62d9cf16db526a948242a7409ae883209 added the QEMU_CAPS_DEVICE_RAMFB capability but did not set the domain capability. This patch sets the domain capability for the ramfb device and updates the tests. Signed-off-by: Jonathon Jongsma --- src/qemu/qemu_capabilities.c | 2 ++ tests/domaincapsschemadata/qemu_3.0.0.s390x.xml | 1 + tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_4.1.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_4.2.0.aarch64.xml | 1 + tests/domaincapsschemadata/qemu_4.2.0.x86_64.xml | 1 + 7 files changed, 8 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 3ce1556fc2..381e7bcf34 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -5400,6 +5400,8 @@ virQEMUCapsFillDomainDeviceVideoCaps(virQEMUCapsPtr q= emuCaps, VIR_DOMAIN_CAPS_ENUM_SET(dev->modelType, VIR_DOMAIN_VIDEO_TYPE_VIR= TIO); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_BOCHS_DISPLAY)) VIR_DOMAIN_CAPS_ENUM_SET(dev->modelType, VIR_DOMAIN_VIDEO_TYPE_BOC= HS); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_RAMFB)) + VIR_DOMAIN_CAPS_ENUM_SET(dev->modelType, VIR_DOMAIN_VIDEO_TYPE_RAM= FB); =20 return 0; } diff --git a/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml b/tests/domain= capsschemadata/qemu_3.0.0.s390x.xml index 0e81e2ea33..d32f7b5875 100644 --- a/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml +++ b/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml @@ -158,6 +158,7 @@ diff --git a/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_3.1.0.x86_64.xml index 059403cebc..ecb1f06e90 100644 --- a/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml @@ -128,6 +128,7 @@ qxl virtio bochs + ramfb diff --git a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_4.0.0.x86_64.xml index eb24b9a604..2a475f20be 100644 --- a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml @@ -128,6 +128,7 @@ qxl virtio bochs + ramfb diff --git a/tests/domaincapsschemadata/qemu_4.1.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_4.1.0.x86_64.xml index f5685d2068..07b869859c 100644 --- a/tests/domaincapsschemadata/qemu_4.1.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_4.1.0.x86_64.xml @@ -132,6 +132,7 @@ qxl virtio bochs + ramfb diff --git a/tests/domaincapsschemadata/qemu_4.2.0.aarch64.xml b/tests/doma= incapsschemadata/qemu_4.2.0.aarch64.xml index b53c29c482..c384ae2f9a 100644 --- a/tests/domaincapsschemadata/qemu_4.2.0.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_4.2.0.aarch64.xml @@ -100,6 +100,7 @@ vmvga virtio bochs + ramfb diff --git a/tests/domaincapsschemadata/qemu_4.2.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_4.2.0.x86_64.xml index 5bd376bb2e..2f86eac7f0 100644 --- a/tests/domaincapsschemadata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_4.2.0.x86_64.xml @@ -132,6 +132,7 @@ qxl virtio bochs + ramfb --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 07:44:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571412637; cv=none; d=zoho.com; s=zohoarc; b=Smbsu0ZTFhQbdpI880vlszZQA0Wpzsu58nVD5YhuXLOdQ9rgOa71Et+c9oYZJ7bQPdoS8JMXoGSTstKs2h3kkbUXjHxOm6iskbBvBHpSU00wpZAUghb1ZLdIO471Rb9bha8esUfwEPGCeJCEDFE6oAmSr6YnUtJGvIWKPQwVG98= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571412637; 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=4AhsqT2E0jQCgjJZgQjot/yEi3g9t37bnxJtYEDR2fU=; b=ZzOIqNyHrhK+CW0P6fV9LPCAnpxRy9/Md8qUdVOnoLREXnkLMMUf4g/5TrCZ3qKE4O/pax4Hs4JZYm5csZWhkimCYlpkca3hXFKGyKz1Wg7nxJHlVj2C0TFbv5RjjOGxSSLkvEnNNbID/U7JQeRNAn7vUL0qUppNlMzDu1dsbfc= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 157141263710578.11419245352613; Fri, 18 Oct 2019 08:30:37 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id 6D5C7806D2; Fri, 18 Oct 2019 15:30:35 +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 EDEA5A7CD; Fri, 18 Oct 2019 15:30:34 +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 8FDDB180B76F; Fri, 18 Oct 2019 15:30:34 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9IFUMGN001391 for ; Fri, 18 Oct 2019 11:30:22 -0400 Received: by smtp.corp.redhat.com (Postfix) id D3C285EE1D; Fri, 18 Oct 2019 15:30:22 +0000 (UTC) Received: from himantopus.redhat.com (ovpn-116-193.phx2.redhat.com [10.3.116.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8BCCC5B69A; Fri, 18 Oct 2019 15:30:22 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Fri, 18 Oct 2019 10:30:13 -0500 Message-Id: <20191018153017.4819-6-jjongsma@redhat.com> In-Reply-To: <20191018153017.4819-1-jjongsma@redhat.com> References: <20191018153017.4819-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: crobinso@redhat.com Subject: [libvirt] [PATCH v3 5/9] qemu: set domain capability for video type "none" 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: , Content-Transfer-Encoding: quoted-printable 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-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 18 Oct 2019 15:30:36 +0000 (UTC) Content-Type: text/plain; charset="utf-8" In a follow-up commit, we will use the domain capabilities to validate video device configurations, which means that we also need to make sure that the domain capabilities include the "none" video device. Signed-off-by: Jonathon Jongsma --- src/qemu/qemu_capabilities.c | 1 + tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml | 1 + tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml | 1 + tests/domaincapsschemadata/qemu_2.12.0.s390x.xml | 1 + tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml | 1 + tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml | 1 + tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml | 1 + tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_2.7.0.s390x.xml | 1 + tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_2.8.0.s390x.xml | 1 + tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_3.0.0.s390x.xml | 1 + tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_4.0.0.s390x.xml | 1 + tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_4.1.0.x86_64.xml | 1 + tests/domaincapsschemadata/qemu_4.2.0.aarch64.xml | 1 + tests/domaincapsschemadata/qemu_4.2.0.ppc64.xml | 1 + tests/domaincapsschemadata/qemu_4.2.0.x86_64.xml | 1 + 25 files changed, 25 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 381e7bcf34..206a0ff241 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -5388,6 +5388,7 @@ virQEMUCapsFillDomainDeviceVideoCaps(virQEMUCapsPtr q= emuCaps, dev->supported =3D VIR_TRISTATE_BOOL_YES; dev->modelType.report =3D true; =20 + VIR_DOMAIN_CAPS_ENUM_SET(dev->modelType, VIR_DOMAIN_VIDEO_TYPE_NONE); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VGA)) VIR_DOMAIN_CAPS_ENUM_SET(dev->modelType, VIR_DOMAIN_VIDEO_TYPE_VGA= ); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_CIRRUS_VGA)) diff --git a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_1.7.0.x86_64.xml index a2df336833..2c73c99d35 100644 --- a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml @@ -92,6 +92,7 @@ cirrus vmvga qxl + none diff --git a/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml b/test= s/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml index ed1af3224b..d5bb85878d 100644 --- a/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml @@ -96,6 +96,7 @@ vga virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml b/tests/domai= ncapsschemadata/qemu_2.12.0.ppc64.xml index e8d3c22337..b9d51e1752 100644 --- a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml +++ b/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml @@ -64,6 +64,7 @@ vga virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml b/tests/domai= ncapsschemadata/qemu_2.12.0.s390x.xml index 8d039f3514..9b8e90671d 100644 --- a/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml +++ b/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml @@ -152,6 +152,7 @@ diff --git a/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml b/tests/doma= incapsschemadata/qemu_2.12.0.x86_64.xml index 109162ffd8..828aa03ed2 100644 --- a/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml @@ -125,6 +125,7 @@ vmvga qxl virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml b/tests= /domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml index 13441b9923..ee76cb2e83 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml @@ -93,6 +93,7 @@ vga virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml b/tests/doma= incapsschemadata/qemu_2.6.0.aarch64.xml index 974739c38e..a3ada3a6a5 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml @@ -91,6 +91,7 @@ vga virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml b/tests/domain= capsschemadata/qemu_2.6.0.ppc64.xml index 9f628a3652..a4dd2a51cc 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml @@ -64,6 +64,7 @@ vga virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_2.6.0.x86_64.xml index bb1f784328..26b569d914 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml @@ -99,6 +99,7 @@ vmvga qxl virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml b/tests/domain= capsschemadata/qemu_2.7.0.s390x.xml index 322d12c719..a1e282482c 100644 --- a/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml +++ b/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml @@ -57,6 +57,7 @@ diff --git a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml b/tests/d= omaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml index b6679a6e64..38db60a748 100644 --- a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml @@ -100,6 +100,7 @@ vmvga qxl virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml b/tests/domain= capsschemadata/qemu_2.8.0.s390x.xml index c7a4578f61..dec4ca960b 100644 --- a/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml +++ b/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml @@ -138,6 +138,7 @@ diff --git a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_2.8.0.x86_64.xml index 3af3fcc4a9..057aac246f 100644 --- a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml @@ -100,6 +100,7 @@ vmvga qxl virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml b/tests/d= omaincapsschemadata/qemu_2.9.0-q35.x86_64.xml index aac295a20d..ad894728ea 100644 --- a/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml @@ -109,6 +109,7 @@ vmvga qxl virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml b/tests/d= omaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml index 12537c039b..3cc81e9fa1 100644 --- a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml @@ -132,6 +132,7 @@ vmvga qxl virtio + none diff --git a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_2.9.0.x86_64.xml index 80fc7e1657..790b39bd7d 100644 --- a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml @@ -109,6 +109,7 @@ vmvga qxl virtio + none diff --git a/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml b/tests/domain= capsschemadata/qemu_3.0.0.s390x.xml index d32f7b5875..55b442ced8 100644 --- a/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml +++ b/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml @@ -158,6 +158,7 @@ diff --git a/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_3.1.0.x86_64.xml index ecb1f06e90..5a121eb987 100644 --- a/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml @@ -127,6 +127,7 @@ vmvga qxl virtio + none bochs ramfb diff --git a/tests/domaincapsschemadata/qemu_4.0.0.s390x.xml b/tests/domain= capsschemadata/qemu_4.0.0.s390x.xml index e68f8e8d9a..6cda114260 100644 --- a/tests/domaincapsschemadata/qemu_4.0.0.s390x.xml +++ b/tests/domaincapsschemadata/qemu_4.0.0.s390x.xml @@ -164,6 +164,7 @@ diff --git a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_4.0.0.x86_64.xml index 2a475f20be..00bf7d1ec3 100644 --- a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml @@ -127,6 +127,7 @@ vmvga qxl virtio + none bochs ramfb diff --git a/tests/domaincapsschemadata/qemu_4.1.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_4.1.0.x86_64.xml index 07b869859c..97533c6d05 100644 --- a/tests/domaincapsschemadata/qemu_4.1.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_4.1.0.x86_64.xml @@ -131,6 +131,7 @@ vmvga qxl virtio + none bochs ramfb diff --git a/tests/domaincapsschemadata/qemu_4.2.0.aarch64.xml b/tests/doma= incapsschemadata/qemu_4.2.0.aarch64.xml index c384ae2f9a..0d8ccafefb 100644 --- a/tests/domaincapsschemadata/qemu_4.2.0.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_4.2.0.aarch64.xml @@ -99,6 +99,7 @@ cirrus vmvga virtio + none bochs ramfb diff --git a/tests/domaincapsschemadata/qemu_4.2.0.ppc64.xml b/tests/domain= capsschemadata/qemu_4.2.0.ppc64.xml index 78e141dfb2..df7a06c690 100644 --- a/tests/domaincapsschemadata/qemu_4.2.0.ppc64.xml +++ b/tests/domaincapsschemadata/qemu_4.2.0.ppc64.xml @@ -66,6 +66,7 @@ cirrus vmvga virtio + none bochs diff --git a/tests/domaincapsschemadata/qemu_4.2.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_4.2.0.x86_64.xml index 2f86eac7f0..7938433ed9 100644 --- a/tests/domaincapsschemadata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_4.2.0.x86_64.xml @@ -131,6 +131,7 @@ vmvga qxl virtio + none bochs ramfb --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 07:44:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571412640; cv=none; d=zoho.com; s=zohoarc; b=BN4SCiE0kvSb3g6nvKu3D83doLnKkch5aOkVqoaLWePHPmEysXdjLIirMvZebjc36QMnMUPToDKsxphK3ZaLv6gmqrTsgOLaDgdBNQeJBfMbaHVsN83OyTPWoWE36rf+2SYpdw8uVbaH3svtue5aLcxOMcGR+/UGERX9dc0nYYA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571412640; 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=diWfQ4PHF3ffbKLgrsqrrnwBbrC4NdUen7iPq0xSa/s=; b=XZnIXSTpl0+2KgPU0KamCgULj3SDeqFFOj0ESTIYrgjpFTqhX4EZk2BxIHZ3Nf7cGwsiRgL4t2BWYGUbpIRieC8pj67by2d/dC4HYECxj7VGsSgiBJ8HS70yBA/UbJnM3Gvj5J45f9KMp7qY0Kplj9IvoxuSyWupUKDUUTgkGLY= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1571412640195454.11994971792035; Fri, 18 Oct 2019 08:30:40 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8A0D9307B18E; Fri, 18 Oct 2019 15:30:38 +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 5917260600; Fri, 18 Oct 2019 15:30:38 +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 0CFDB4EE6E; Fri, 18 Oct 2019 15:30:38 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9IFUN1V001399 for ; Fri, 18 Oct 2019 11:30:23 -0400 Received: by smtp.corp.redhat.com (Postfix) id 377B45EE1D; Fri, 18 Oct 2019 15:30:23 +0000 (UTC) Received: from himantopus.redhat.com (ovpn-116-193.phx2.redhat.com [10.3.116.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EF4235D772; Fri, 18 Oct 2019 15:30:22 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Fri, 18 Oct 2019 10:30:14 -0500 Message-Id: <20191018153017.4819-7-jjongsma@redhat.com> In-Reply-To: <20191018153017.4819-1-jjongsma@redhat.com> References: <20191018153017.4819-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: crobinso@redhat.com Subject: [libvirt] [PATCH v3 6/9] qemu: validate vhost-user video backend in 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Fri, 18 Oct 2019 15:30:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" The goal is to move all of the video device validation to a single place and use domain caps to validate the supported video device models. Since qemuDomainDeviceDefValidateVideo() is called from qemuProcessStartValidate(), these changes should not change anny behavior. Signed-off-by: Jonathon Jongsma --- src/qemu/qemu_domain.c | 14 ++++++++++++-- src/qemu/qemu_process.c | 9 +-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 39ab424873..0a6d774437 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5704,7 +5704,8 @@ qemuDomainDeviceDefValidateHostdev(const virDomainHos= tdevDef *hostdev, =20 =20 static int -qemuDomainDeviceDefValidateVideo(const virDomainVideoDef *video) +qemuDomainDeviceDefValidateVideo(const virDomainVideoDef *video, + virQEMUCapsPtr qemuCaps) { switch ((virDomainVideoType) video->type) { case VIR_DOMAIN_VIDEO_TYPE_NONE: @@ -5784,6 +5785,15 @@ qemuDomainDeviceDefValidateVideo(const virDomainVide= oDef *video) } } =20 + if (video->backend =3D=3D VIR_DOMAIN_VIDEO_BACKEND_TYPE_VHOSTUSER) { + if (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_VIRTIO && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VHOST_USER_GPU)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("this QEMU does not support 'vhost-user' vide= o device")); + return -1; + } + } + return 0; } =20 @@ -7245,7 +7255,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef = *dev, break; =20 case VIR_DOMAIN_DEVICE_VIDEO: - ret =3D qemuDomainDeviceDefValidateVideo(dev->data.video); + ret =3D qemuDomainDeviceDefValidateVideo(dev->data.video, qemuCaps= ); break; =20 case VIR_DOMAIN_DEVICE_DISK: diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 9eaea4edfd..25465f05e2 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5251,14 +5251,7 @@ qemuProcessStartValidateVideo(virDomainObjPtr vm, for (i =3D 0; i < vm->def->nvideos; i++) { video =3D vm->def->videos[i]; =20 - if (video->backend =3D=3D VIR_DOMAIN_VIDEO_BACKEND_TYPE_VHOSTUSER)= { - if (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_VIRTIO && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VHOST_USER_GPU)= ) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("this QEMU does not support 'vhost-user' = video device")); - return -1; - } - } else { + if (video->backend !=3D VIR_DOMAIN_VIDEO_BACKEND_TYPE_VHOSTUSER) { if ((video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_VGA && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VGA)) || (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_CIRRUS && --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 07:44:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571412644; cv=none; d=zoho.com; s=zohoarc; b=FRpeDhfZOtoTmTYlC4GbXnm38YW6FgYXSvldykFOd/9Ah0FbfoB0fFOOJoifXICnJivo/Vj/idvAMmGZUMEiTmR+swIVcPxxmK7pHELh+ZkoOzCviVggixH+NeU7/orPA/VkD9imY3UOejjPDBRXetkHa0CHkiwk43fqUlAUjFQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571412644; 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=HduJENaXJZdVTei9X12Z8/tGLYPNbUy8CAUC1tge0EE=; b=YqJapjpnvbnDL+iStqCLauhRq8dGN1gMliZEssfH0QB0fRIpZup8yVgrHvdGdWgf2o1EjRxPTYAF39WfOYZ/Qg3OiYf8zbqAQGvrOtBWaBCZZ4FynZhjZLPRMi/8jhTqL0DrOUD0EJjAXFbg3KshZHHaf9SJ6eXKhXXHg7j5Agk= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1571412644404581.4827041440263; Fri, 18 Oct 2019 08:30:44 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C416FC004E8D; Fri, 18 Oct 2019 15:30:42 +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 6DA025F7F7; Fri, 18 Oct 2019 15:30:42 +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 0D0DB4EE70; Fri, 18 Oct 2019 15:30:42 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9IFUNll001404 for ; Fri, 18 Oct 2019 11:30:23 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8E8B661F22; Fri, 18 Oct 2019 15:30:23 +0000 (UTC) Received: from himantopus.redhat.com (ovpn-116-193.phx2.redhat.com [10.3.116.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 52CE95D772; Fri, 18 Oct 2019 15:30:23 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Fri, 18 Oct 2019 10:30:15 -0500 Message-Id: <20191018153017.4819-8-jjongsma@redhat.com> In-Reply-To: <20191018153017.4819-1-jjongsma@redhat.com> References: <20191018153017.4819-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: crobinso@redhat.com Subject: [libvirt] [PATCH v3 7/9] qemu: move validation of video accel 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 18 Oct 2019 15:30:43 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Continue consolidation of video device validation started in previous patch. Signed-off-by: Jonathon Jongsma --- src/qemu/qemu_domain.c | 9 +++++++++ src/qemu/qemu_process.c | 11 ----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 0a6d774437..8bd5891e53 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5792,6 +5792,15 @@ qemuDomainDeviceDefValidateVideo(const virDomainVide= oDef *video, _("this QEMU does not support 'vhost-user' vide= o device")); return -1; } + } else if (video->accel) { + if (video->accel->accel3d =3D=3D VIR_TRISTATE_SWITCH_ON && + (video->type !=3D VIR_DOMAIN_VIDEO_TYPE_VIRTIO || + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_VIRGL))) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("%s 3d acceleration is not supported"), + virDomainVideoTypeToString(video->type)); + return -1; + } } =20 return 0; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 25465f05e2..5ef3e37fc2 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5274,17 +5274,6 @@ qemuProcessStartValidateVideo(virDomainObjPtr vm, virDomainVideoTypeToString(video->type)); return -1; } - - if (video->accel) { - if (video->accel->accel3d =3D=3D VIR_TRISTATE_SWITCH_ON && - (video->type !=3D VIR_DOMAIN_VIDEO_TYPE_VIRTIO || - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_VIRGL)= )) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("%s 3d acceleration is not supported"= ), - virDomainVideoTypeToString(video->type)= ); - return -1; - } - } } } =20 --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 07:44:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571412648; cv=none; d=zoho.com; s=zohoarc; b=FJ0Fgr+nRd3sreELyGSR5DvgKHwBkKp+nH8ZQLbKalP6+Gc65cwv0xSHMT9K7NUH61SHm9PzLTMaN6nUaLUo0YqYEyIo+18MjQFNXxc2KM8QPqcRNWCyNvtmS+lvubXf3xfN3BV9BX01w5PGIlNkiJXexENkQfeLVATmyPyyl0I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571412648; 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=xHH5ebUEsWmi8Nw/zgRvg500NxsbadwPRZIzh8VuLL0=; b=Q+kUDyr8h0QDPZ4MgH4/SvkGM0ifDXPOhFiXVsdYX0Z7yr9m2gzNuckjaF4itIgzyqNGB/phdR8uRr0IExVJFOc/5yFqYK7Jdj9B5SlrccSUxXZmU3XsJTwk6MNpnmmlEAfic0LHd0S4HQ+1JIElejUg/WcB1mZhmxabhsdyk00= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1571412648102670.9068141011268; Fri, 18 Oct 2019 08:30:48 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 658A6302C076; Fri, 18 Oct 2019 15:30:46 +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 2DEA560A97; Fri, 18 Oct 2019 15:30:46 +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 DA4C21803518; Fri, 18 Oct 2019 15:30:45 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9IFUNuT001409 for ; Fri, 18 Oct 2019 11:30:23 -0400 Received: by smtp.corp.redhat.com (Postfix) id E9FA85EE1D; Fri, 18 Oct 2019 15:30:23 +0000 (UTC) Received: from himantopus.redhat.com (ovpn-116-193.phx2.redhat.com [10.3.116.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AA55E5D721; Fri, 18 Oct 2019 15:30:23 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Fri, 18 Oct 2019 10:30:16 -0500 Message-Id: <20191018153017.4819-9-jjongsma@redhat.com> In-Reply-To: <20191018153017.4819-1-jjongsma@redhat.com> References: <20191018153017.4819-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: crobinso@redhat.com Subject: [libvirt] [PATCH v3 8/9] qemu: use domain caps to validate video device model 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Fri, 18 Oct 2019 15:30:47 +0000 (UTC) Content-Type: text/plain; charset="utf-8" As suggested by Cole, this patch uses the domain capabilities to validate the supported video model types. This allows us to remove the model type validation from qemu_process.c and qemu_domain.c and consolidates it all in a single place that will automatically adjust when new domain capabilities are added. Signed-off-by: Jonathon Jongsma --- src/conf/domain_capabilities.c | 17 +++++++++++++- src/qemu/qemu_domain.c | 23 ++---------------- src/qemu/qemu_process.c | 43 ---------------------------------- 3 files changed, 18 insertions(+), 65 deletions(-) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 43a778a505..f55a6ebf5b 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -686,6 +686,19 @@ virDomainCapsDeviceRNGDefValidate(virDomainCapsPtr con= st caps, return 0; } =20 +static int +virDomainCapsDeviceVideoDefValidate(virDomainCapsPtr const caps, + const virDomainVideoDefPtr dev) +{ + if (ENUM_VALUE_MISSING(caps->video.modelType, dev->type)) { + ENUM_VALUE_ERROR("video model", + virDomainVideoTypeToString(dev->type)); + return -1; + } + + return 0; +} + =20 int virDomainCapsDeviceDefValidate(virDomainCapsPtr const caps, @@ -698,6 +711,9 @@ virDomainCapsDeviceDefValidate(virDomainCapsPtr const c= aps, case VIR_DOMAIN_DEVICE_RNG: ret =3D virDomainCapsDeviceRNGDefValidate(caps, dev->data.rng); break; + case VIR_DOMAIN_DEVICE_VIDEO: + ret =3D virDomainCapsDeviceVideoDefValidate(caps, dev->data.video); + break; =20 case VIR_DOMAIN_DEVICE_DISK: case VIR_DOMAIN_DEVICE_REDIRDEV: @@ -706,7 +722,6 @@ virDomainCapsDeviceDefValidate(virDomainCapsPtr const c= aps, case VIR_DOMAIN_DEVICE_CHR: case VIR_DOMAIN_DEVICE_SMARTCARD: case VIR_DOMAIN_DEVICE_HOSTDEV: - case VIR_DOMAIN_DEVICE_VIDEO: case VIR_DOMAIN_DEVICE_MEMORY: case VIR_DOMAIN_DEVICE_VSOCK: case VIR_DOMAIN_DEVICE_INPUT: diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 8bd5891e53..7ec6c0a748 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5707,28 +5707,9 @@ static int qemuDomainDeviceDefValidateVideo(const virDomainVideoDef *video, virQEMUCapsPtr qemuCaps) { - switch ((virDomainVideoType) video->type) { - case VIR_DOMAIN_VIDEO_TYPE_NONE: + /* there's no properties to validate for NONE video devices */ + if (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_NONE) return 0; - case VIR_DOMAIN_VIDEO_TYPE_XEN: - case VIR_DOMAIN_VIDEO_TYPE_VBOX: - case VIR_DOMAIN_VIDEO_TYPE_PARALLELS: - case VIR_DOMAIN_VIDEO_TYPE_GOP: - case VIR_DOMAIN_VIDEO_TYPE_DEFAULT: - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("video type '%s' is not supported with QEMU"), - virDomainVideoTypeToString(video->type)); - return -1; - case VIR_DOMAIN_VIDEO_TYPE_VGA: - case VIR_DOMAIN_VIDEO_TYPE_CIRRUS: - case VIR_DOMAIN_VIDEO_TYPE_VMVGA: - case VIR_DOMAIN_VIDEO_TYPE_QXL: - case VIR_DOMAIN_VIDEO_TYPE_VIRTIO: - case VIR_DOMAIN_VIDEO_TYPE_BOCHS: - case VIR_DOMAIN_VIDEO_TYPE_RAMFB: - case VIR_DOMAIN_VIDEO_TYPE_LAST: - break; - } =20 if (!video->primary && video->type !=3D VIR_DOMAIN_VIDEO_TYPE_QXL && diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 5ef3e37fc2..c066f5eb82 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5241,46 +5241,6 @@ qemuProcessStartValidateGraphics(virDomainObjPtr vm) } =20 =20 -static int -qemuProcessStartValidateVideo(virDomainObjPtr vm, - virQEMUCapsPtr qemuCaps) -{ - size_t i; - virDomainVideoDefPtr video; - - for (i =3D 0; i < vm->def->nvideos; i++) { - video =3D vm->def->videos[i]; - - if (video->backend !=3D VIR_DOMAIN_VIDEO_BACKEND_TYPE_VHOSTUSER) { - if ((video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_VGA && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VGA)) || - (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_CIRRUS && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_CIRRUS_VGA)) || - (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_VMVGA && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VMWARE_SVGA)) = || - (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_QXL && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_QXL)) || - (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_VIRTIO && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_GPU)) || - (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_VIRTIO && - video->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CC= W && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_GPU_CCW= )) || - (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_BOCHS && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_BOCHS_DISPLAY))= || - (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_RAMFB && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_RAMFB))) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("this QEMU does not support '%s' video de= vice"), - virDomainVideoTypeToString(video->type)); - return -1; - } - } - } - - return 0; -} - - static int qemuProcessStartValidateIOThreads(virDomainObjPtr vm, virQEMUCapsPtr qemuCaps) @@ -5465,9 +5425,6 @@ qemuProcessStartValidate(virQEMUDriverPtr driver, if (qemuProcessStartValidateGraphics(vm) < 0) return -1; =20 - if (qemuProcessStartValidateVideo(vm, qemuCaps) < 0) - return -1; - if (qemuProcessStartValidateIOThreads(vm, qemuCaps) < 0) return -1; =20 --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 07:44:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1571412636; cv=none; d=zoho.com; s=zohoarc; b=iKSuUdFWhvCNKigZgI9uHLjpUA8tSxSO/nm5E+zcUT/N/rgaKEhJe0RIDsugfDl/uOtKiZKOh73lNZBmHWK/ViSFn0/tl/ZxLua8k+c5msQ9ftUvh7xK6R9tjzc7LANPgVeCKNvAWVKIStQ9zzrTbxfdTlzZL/14i/+AKmXWBmc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571412636; 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=QvF9r4WSbSolT03Groj+YBQepGQHb2fgwirPyP+mgqE=; b=QQY8q8Rdwb+p4yttWUNGLBQg0lIrwLgKV7BoPOdx8DTqOX4adiJOqIfCWwXmD345OqvxdrwqBmEpBHW1l7dtW7dB2Q9ccel+avWfHhIH1ojzchHoELJO9qedCfJgmT0dMYJyVExDdlhIEFgONQxSg0fHFHD8/FtOqn2IqCUVBnU= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1571412636107550.2765030731073; Fri, 18 Oct 2019 08:30:36 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id 53A2E65F2D; Fri, 18 Oct 2019 15:30:34 +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 1544479A0; Fri, 18 Oct 2019 15:30:34 +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 C2FA71803517; Fri, 18 Oct 2019 15:30:33 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x9IFUOZr001414 for ; Fri, 18 Oct 2019 11:30:24 -0400 Received: by smtp.corp.redhat.com (Postfix) id 4DECC5D71C; Fri, 18 Oct 2019 15:30:24 +0000 (UTC) Received: from himantopus.redhat.com (ovpn-116-193.phx2.redhat.com [10.3.116.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 110765D70E; Fri, 18 Oct 2019 15:30:23 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Fri, 18 Oct 2019 10:30:17 -0500 Message-Id: <20191018153017.4819-10-jjongsma@redhat.com> In-Reply-To: <20191018153017.4819-1-jjongsma@redhat.com> References: <20191018153017.4819-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: crobinso@redhat.com Subject: [libvirt] [PATCH v3 9/9] qemu: add 'ramfb' attribute for mediated devices 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: , Content-Transfer-Encoding: quoted-printable 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-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 18 Oct 2019 15:30:34 +0000 (UTC) Content-Type: text/plain; charset="utf-8" The 'ramfb' attribute provides a framebuffer to the guest that can be used as a boot display for the vgpu For example, the following configuration can be used to provide a vgpu with a boot display:
Signed-off-by: Jonathon Jongsma --- docs/formatdomain.html.in | 8 ++++ docs/schemas/domaincommon.rng | 5 +++ src/conf/domain_conf.c | 11 ++++++ src/conf/domain_conf.h | 1 + src/qemu/qemu_command.c | 17 ++++++++- ...tdev-mdev-display-ramfb.x86_64-latest.args | 37 +++++++++++++++++++ .../hostdev-mdev-display-ramfb.xml | 33 +++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 8 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 tests/qemuxml2argvdata/hostdev-mdev-display-ramfb.x86_6= 4-latest.args create mode 100644 tests/qemuxml2argvdata/hostdev-mdev-display-ramfb.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 500f114f41..50f9ff9618 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -4847,6 +4847,14 @@ graphical framebuffer in order= to use this attribute, currently only supported with VNC, Spice and egl-headless graphics devices. + + Since version 5.9.0, there is an op= tional + ramfb attribute for devices with + model=3D'vfio-pci'. Supported values are either + on or off (default is 'off'). When + enabled, this attribute provides a memory framebuffer device to = the + guest. This framebuffer will be used as a boot display when a v= gpu + device is the primary display.

Note: There are also some implications on the usage of guest's address type depending on the model attribute, diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index ead5a25068..57e0dcf6ed 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -4769,6 +4769,11 @@ vfio-ap + + + + + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 2e6a113de3..ab75f13eec 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8130,6 +8130,7 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node, g_autofree char *backendStr =3D NULL; g_autofree char *model =3D NULL; g_autofree char *display =3D NULL; + g_autofree char *ramfb =3D NULL; =20 /* @managed can be read from the xml document - it is always an * attribute of the toplevel element, no matter what type of @@ -8145,6 +8146,7 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node, rawio =3D virXMLPropString(node, "rawio"); model =3D virXMLPropString(node, "model"); display =3D virXMLPropString(node, "display"); + ramfb =3D virXMLPropString(node, "ramfb"); =20 /* @type is passed in from the caller rather than read from the * xml document, because it is specified in different places for @@ -8253,6 +8255,15 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node, display); return -1; } + + if (ramfb && + (mdevsrc->ramfb =3D virTristateSwitchTypeFromString(ramfb)) <= =3D 0) { + virReportError(VIR_ERR_XML_ERROR, + _("unknown value '%s' for attribute " + "'ramfb'"), + ramfb); + return -1; + } } =20 switch (def->source.subsys.type) { diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index edac6250e4..72b2a8c482 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -262,6 +262,7 @@ struct _virDomainHostdevSubsysMediatedDev { int model; /* enum virMediatedDeviceModelType= */ int display; /* virTristateSwitch */ char uuidstr[VIR_UUID_STRING_BUFLEN]; /* mediated device's uuid stri= ng */ + int ramfb; /* virTristateSwitch */ }; =20 typedef enum { diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index e98195b1d7..1a2d0c173d 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5416,6 +5416,17 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, return virBufferContentAndReset(&buf); } =20 +static const char * +qemuBuildHostdevMdevModelTypeString(virDomainHostdevSubsysMediatedDevPtr m= dev) +{ + /* when the 'ramfb' attribute is set, we must use the nohotplug variant + * rather than 'vfio-pci' */ + if (mdev->model =3D=3D VIR_MDEV_MODEL_TYPE_VFIO_PCI && + mdev->ramfb =3D=3D VIR_TRISTATE_SWITCH_ON) + return "vfio-pci-nohotplug"; + + return virMediatedDeviceModelTypeToString(mdev->model); +} =20 char * qemuBuildHostdevMediatedDevStr(const virDomainDef *def, @@ -5430,7 +5441,7 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *de= f, if (!(mdevPath =3D virMediatedDeviceGetSysfsPath(mdevsrc->uuidstr))) return NULL; =20 - dev_str =3D virMediatedDeviceModelTypeToString(mdevsrc->model); + dev_str =3D qemuBuildHostdevMdevModelTypeString(mdevsrc); =20 if (!dev_str) return NULL; @@ -5448,6 +5459,10 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *d= ef, if (dev->info->bootIndex) virBufferAsprintf(&buf, ",bootindex=3D%u", dev->info->bootIndex); =20 + if (mdevsrc->ramfb =3D=3D VIR_TRISTATE_SWITCH_ON) + virBufferAsprintf(&buf, ",ramfb=3D%s", + virTristateSwitchTypeToString(mdevsrc->ramfb)); + if (virBufferCheckError(&buf) < 0) return NULL; =20 diff --git a/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb.x86_64-lates= t.args b/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb.x86_64-latest.ar= gs new file mode 100644 index 0000000000..30d2f83318 --- /dev/null +++ b/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb.x86_64-latest.args @@ -0,0 +1,37 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest2 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest2/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest2/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest2/.config \ +QEMU_AUDIO_DRV=3Dnone \ +/usr/bin/qemu-system-i686 \ +-name guest=3DQEMUGuest2,debug-threads=3Don \ +-S \ +-object secret,id=3DmasterKey0,format=3Draw,\ +file=3D/tmp/lib/domain--1-QEMUGuest2/master-key.aes \ +-machine pc,accel=3Dtcg,usb=3Doff,dump-guest-core=3Doff \ +-m 214 \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device piix3-usb-uhci,id=3Dusb,bus=3Dpci.0,addr=3D0x1.0x2 \ +-vnc 127.0.0.1:0 \ +-device qxl-vga,id=3Dvideo0,ram_size=3D67108864,vram_size=3D67108864,\ +vram64_size_mb=3D0,vgamem_mb=3D16,max_outputs=3D1,bus=3Dpci.0,addr=3D0x2 \ +-device vfio-pci-nohotplug,id=3Dhostdev0,\ +sysfsdev=3D/sys/bus/mdev/devices/53764d0e-85a0-42b4-af5c-2046b460b1dc,disp= lay=3Don,\ +bus=3Dpci.0,addr=3D0x3,ramfb=3Don \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,\ +resourcecontrol=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb.xml b/tests/= qemuxml2argvdata/hostdev-mdev-display-ramfb.xml new file mode 100644 index 0000000000..2e7851b2b0 --- /dev/null +++ b/tests/qemuxml2argvdata/hostdev-mdev-display-ramfb.xml @@ -0,0 +1,33 @@ + + QEMUGuest2 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + destroy + restart + destroy + + /usr/bin/qemu-system-i686 + + + + + + + + +

+ + + + + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 7c314050f6..56fb6f00a9 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1638,6 +1638,7 @@ mymain(void) DO_TEST_PARSE_ERROR("hostdev-mdev-display-missing-graphics", QEMU_CAPS_DEVICE_VFIO_PCI, QEMU_CAPS_VFIO_PCI_DISPLAY); + DO_TEST_CAPS_LATEST("hostdev-mdev-display-ramfb"); DO_TEST_PARSE_ERROR("hostdev-vfio-zpci-wrong-arch", QEMU_CAPS_DEVICE_VFIO_PCI); DO_TEST("hostdev-vfio-zpci", --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list