From nobody Wed May 15 18:01:21 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1530790575426235.69738389038935; Thu, 5 Jul 2018 04:36:15 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id AA991300174C; Thu, 5 Jul 2018 11:36:13 +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 5C8E2100191D; Thu, 5 Jul 2018 11:36:13 +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 5622924F62; Thu, 5 Jul 2018 11:36:12 +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 w65Ba9vA003137 for ; Thu, 5 Jul 2018 07:36:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9D0397C40; Thu, 5 Jul 2018 11:36:09 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.26]) by smtp.corp.redhat.com (Postfix) with ESMTP id E3DB07C33; Thu, 5 Jul 2018 11:36:08 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Thu, 5 Jul 2018 12:36:03 +0100 Message-Id: <20180705113605.15982-2-berrange@redhat.com> In-Reply-To: <20180705113605.15982-1-berrange@redhat.com> References: <20180705113605.15982-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/3] qemu: remove chardevStdioLogd param from vhostuser code path 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-Type: text/plain; charset="utf-8" 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.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Thu, 05 Jul 2018 11:36:14 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 The vhostuser network backend is only supported with the UNIX domain socket chardev backend, so passing around chardevStdioLogd is not required. Signed-off-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_command.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 04c5c28438..9351b9fddb 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -8195,8 +8195,7 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver, virDomainDefPtr def, virDomainNetDefPtr net, virQEMUCapsPtr qemuCaps, - unsigned int bootindex, - bool chardevStdioLogd) + unsigned int bootindex) { virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(driver); char *chardev =3D NULL; @@ -8217,7 +8216,7 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver, cmd, cfg, def, net->data.vhostuser, net->info.alias, qemuCaps, = false, - chardevStdioLogd))) + false))) goto cleanup; break; =20 @@ -8291,8 +8290,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, virNetDevVPortProfileOp vmop, bool standalone, size_t *nnicindexes, - int **nicindexes, - bool chardevStdioLogd) + int **nicindexes) { int ret =3D -1; char *nic =3D NULL, *host =3D NULL; @@ -8415,8 +8413,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, =20 case VIR_DOMAIN_NET_TYPE_VHOSTUSER: ret =3D qemuBuildVhostuserCommandLine(driver, logManager, secManag= er, cmd, def, - net, qemuCaps, bootindex, - chardevStdioLogd); + net, qemuCaps, bootindex); goto cleanup; break; =20 @@ -8600,8 +8597,7 @@ qemuBuildNetCommandLine(virQEMUDriverPtr driver, bool standalone, size_t *nnicindexes, int **nicindexes, - unsigned int *bootHostdevNet, - bool chardevStdioLogd) + unsigned int *bootHostdevNet) { size_t i; int last_good_net =3D -1; @@ -8628,8 +8624,7 @@ qemuBuildNetCommandLine(virQEMUDriverPtr driver, if (qemuBuildInterfaceCommandLine(driver, logManager, secManag= er, cmd, def, net, qemuCaps, bootNet, vmop, standalone, nnicindexes, - nicindexes, - chardevStdioLogd) < 0) + nicindexes) < 0) goto error; =20 last_good_net =3D i; @@ -10290,8 +10285,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, =20 if (qemuBuildNetCommandLine(driver, logManager, secManager, cmd, def, qemuCaps, vmop, standalone, - nnicindexes, nicindexes, &bootHostdevNet, - chardevStdioLogd) < 0) + nnicindexes, nicindexes, &bootHostdevNet) = < 0) goto error; =20 if (qemuBuildSmartcardCommandLine(logManager, secManager, cmd, cfg, de= f, qemuCaps, --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 15 18:01:21 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1530790576235874.308135242778; Thu, 5 Jul 2018 04:36:16 -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 C2FF8C0587D5; Thu, 5 Jul 2018 11:36:14 +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 85A5D5D6B5; Thu, 5 Jul 2018 11:36:14 +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 23A9524F60; Thu, 5 Jul 2018 11:36:14 +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 w65BaAZk003149 for ; Thu, 5 Jul 2018 07:36:11 -0400 Received: by smtp.corp.redhat.com (Postfix) id CCF3D7C40; Thu, 5 Jul 2018 11:36:10 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.26]) by smtp.corp.redhat.com (Postfix) with ESMTP id D627F7C33; Thu, 5 Jul 2018 11:36:09 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Thu, 5 Jul 2018 12:36:04 +0100 Message-Id: <20180705113605.15982-3-berrange@redhat.com> In-Reply-To: <20180705113605.15982-1-berrange@redhat.com> References: <20180705113605.15982-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 2/3] qemu: consolidate parameters of qemuBuildChrChardevStr into flags 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-Type: text/plain; charset="utf-8" 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.32]); Thu, 05 Jul 2018 11:36:15 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 There are two boolean parameters passed to qemuBuildChrChardevStr, and soon there will be a third. It will be clearer to understand from callers' POV if we use named flags instead. Signed-off-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_command.c | 86 ++++++++++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 31 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9351b9fddb..7f3eccc1bd 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4935,6 +4935,12 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourc= eDef *dev) return -1; } =20 + +enum { + QEMU_BUILD_CHARDEV_TCP_NOWAIT =3D (1 << 0), + QEMU_BUILD_CHARDEV_FILE_LOGD =3D (1 << 1), +}; + /* This function outputs a -chardev command line option which describes on= ly the * host side of the character device */ static char * @@ -4946,8 +4952,7 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, const virDomainChrSourceDef *dev, const char *alias, virQEMUCapsPtr qemuCaps, - bool nowait, - bool chardevStdioLogd) + unsigned int flags) { virBuffer buf =3D VIR_BUFFER_INITIALIZER; bool telnet; @@ -4986,7 +4991,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, _("append not supported in this QEMU binary")); goto cleanup; } - if (qemuBuildChrChardevFileStr(chardevStdioLogd ? logManager : NUL= L, + if (qemuBuildChrChardevFileStr(flags & QEMU_BUILD_CHARDEV_FILE_LOG= D ? + logManager : NULL, cmd, def, &buf, "path", dev->data.file.path, "append", dev->data.file.append) < = 0) @@ -5033,7 +5039,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, telnet ? ",telnet" : ""); =20 if (dev->data.tcp.listen) - virBufferAdd(&buf, nowait ? ",server,nowait" : ",server", -1); + virBufferAdd(&buf, flags & QEMU_BUILD_CHARDEV_TCP_NOWAIT ? + ",server,nowait" : ",server", -1); =20 qemuBuildChrChardevReconnectStr(&buf, &dev->data.tcp.reconnect); =20 @@ -5092,7 +5099,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path); } if (dev->data.nix.listen) - virBufferAdd(&buf, nowait ? ",server,nowait" : ",server", -1); + virBufferAdd(&buf, flags & QEMU_BUILD_CHARDEV_TCP_NOWAIT ? + ",server,nowait" : ",server", -1); =20 qemuBuildChrChardevReconnectStr(&buf, &dev->data.nix.reconnect); break; @@ -5426,6 +5434,9 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManag= er, qemuDomainObjPrivatePtr priv) { char *chrdev; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + if (priv->chardevStdioLogd) + cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 if (!priv->monConfig) return 0; @@ -5433,8 +5444,7 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManag= er, if (!(chrdev =3D qemuBuildChrChardevStr(logManager, secManager, cmd, cfg, def, priv->monConfig, "monitor", - priv->qemuCaps, true, - priv->chardevStdioLogd))) + priv->qemuCaps, cdevflags))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, chrdev); @@ -5559,6 +5569,9 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logMana= ger, char **chr, bool chardevStdioLogd) { + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + if (chardevStdioLogd) + cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; *chr =3D NULL; =20 switch ((virDomainRNGBackend) rng->backend) { @@ -5571,8 +5584,8 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logMana= ger, if (!(*chr =3D qemuBuildChrChardevStr(logManager, secManager, cmd, cfg, def, rng->source.chardev, - rng->info.alias, qemuCaps, tru= e, - chardevStdioLogd))) + rng->info.alias, qemuCaps, + cdevflags))) return -1; } =20 @@ -8215,8 +8228,7 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver, if (!(chardev =3D qemuBuildChrChardevStr(logManager, secManager, cmd, cfg, def, net->data.vhostuser, - net->info.alias, qemuCaps, = false, - false))) + net->info.alias, qemuCaps, = 0))) goto cleanup; break; =20 @@ -8696,6 +8708,9 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logMan= ager, virBuffer opt =3D VIR_BUFFER_INITIALIZER; const char *database; const char *contAlias =3D NULL; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + if (chardevStdioLogd) + cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 if (!def->nsmartcards) return 0; @@ -8761,8 +8776,7 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logMan= ager, cmd, cfg, def, smartcard->data.passthru, smartcard->info.alias, - qemuCaps, true, - chardevStdioLogd))) { + qemuCaps, cdevflags))) { virBufferFreeAndReset(&opt); return -1; } @@ -8930,6 +8944,9 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager, virBuffer buf =3D VIR_BUFFER_INITIALIZER; char *devstr =3D NULL; int rc; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + if (chardevStdioLogd) + cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 if (shmem->size) { /* @@ -8993,8 +9010,8 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager, devstr =3D qemuBuildChrChardevStr(logManager, secManager, cmd, cfg, def, &shmem->server.chr, - shmem->info.alias, qemuCaps, true, - chardevStdioLogd); + shmem->info.alias, qemuCaps, + cdevflags); if (!devstr) return -1; =20 @@ -9087,6 +9104,9 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManage= r, { size_t i; bool havespice =3D false; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + if (chardevStdioLogd) + cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 if (def->nserials) { for (i =3D 0; i < def->ngraphics && !havespice; i++) { @@ -9106,8 +9126,7 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManage= r, cmd, cfg, def, serial->source, serial->info.alias, - qemuCaps, true, - chardevStdioLogd))) + qemuCaps, cdevflags))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9148,6 +9167,9 @@ qemuBuildParallelsCommandLine(virLogManagerPtr logMan= ager, bool chardevStdioLogd) { size_t i; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + if (chardevStdioLogd) + cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 for (i =3D 0; i < def->nparallels; i++) { virDomainChrDefPtr parallel =3D def->parallels[i]; @@ -9157,8 +9179,7 @@ qemuBuildParallelsCommandLine(virLogManagerPtr logMan= ager, cmd, cfg, def, parallel->source, parallel->info.alias, - qemuCaps, true, - chardevStdioLogd))) + qemuCaps, cdevflags))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9183,6 +9204,9 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logMana= ger, bool chardevStdioLogd) { size_t i; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + if (chardevStdioLogd) + cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 for (i =3D 0; i < def->nchannels; i++) { virDomainChrDefPtr channel =3D def->channels[i]; @@ -9194,8 +9218,7 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logMana= ger, cmd, cfg, def, channel->source, channel->info.alias, - qemuCaps, true, - chardevStdioLogd))) + qemuCaps, cdevflags))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9212,8 +9235,7 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logMana= ger, cmd, cfg, def, channel->source, channel->info.alias, - qemuCaps, true, - chardevStdioLogd))) + qemuCaps, cdevflags))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9239,6 +9261,9 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManag= er, bool chardevStdioLogd) { size_t i; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + if (chardevStdioLogd) + cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 /* Explicit console devices */ for (i =3D 0; i < def->nconsoles; i++) { @@ -9257,8 +9282,7 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManag= er, cmd, cfg, def, console->source, console->info.alias, - qemuCaps, true, - chardevStdioLogd))) + qemuCaps, cdevflags))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9279,8 +9303,7 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManag= er, cmd, cfg, def, console->source, console->info.alias, - qemuCaps, true, - chardevStdioLogd))) + qemuCaps, cdevflags))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9295,8 +9318,7 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManag= er, cmd, cfg, def, console->source, console->info.alias, - qemuCaps, true, - chardevStdioLogd))) + qemuCaps, cdevflags))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9419,6 +9441,9 @@ qemuBuildRedirdevCommandLine(virLogManagerPtr logMana= ger, bool chardevStdioLogd) { size_t i; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + if (chardevStdioLogd) + cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 for (i =3D 0; i < def->nredirdevs; i++) { virDomainRedirdevDefPtr redirdev =3D def->redirdevs[i]; @@ -9428,8 +9453,7 @@ qemuBuildRedirdevCommandLine(virLogManagerPtr logMana= ger, cmd, cfg, def, redirdev->source, redirdev->info.alias, - qemuCaps, true, - chardevStdioLogd))) { + qemuCaps, cdevflags))) { return -1; } =20 --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 15 18:01:21 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1530790586530617.7758557794488; Thu, 5 Jul 2018 04:36:26 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3740430832F1; Thu, 5 Jul 2018 11:36:25 +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 EE0107A424; Thu, 5 Jul 2018 11:36:24 +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 A5C2C1800B68; Thu, 5 Jul 2018 11:36:24 +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 w65BaC60003160 for ; Thu, 5 Jul 2018 07:36:12 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1CF157C40; Thu, 5 Jul 2018 11:36:12 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.26]) by smtp.corp.redhat.com (Postfix) with ESMTP id 21B907C33; Thu, 5 Jul 2018 11:36:11 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Thu, 5 Jul 2018 12:36:05 +0100 Message-Id: <20180705113605.15982-4-berrange@redhat.com> In-Reply-To: <20180705113605.15982-1-berrange@redhat.com> References: <20180705113605.15982-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 3/3] qemu: don't use chardev FD passing for vhostuser backend 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-Type: text/plain; charset="utf-8" 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.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Thu, 05 Jul 2018 11:36:25 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 QEMU chardevs have a bug which makes the vhostuser backend complain about lack of support for FD passing when validating the chardev. While this is ultimately QEMU's responsibility to fix, libvirt needs to avoid tickling the bug. Simply disabling chardev FD passing just for vhostuser's chardev is the most prudent approach, avoiding need for a QEMU version number check. Signed-off-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_command.c | 31 +++++++++++++++-------- tests/qemuxml2argvdata/net-vhostuser.args | 3 +-- tests/qemuxml2argvtest.c | 2 +- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7f3eccc1bd..aaa6d0ceda 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4939,6 +4939,7 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSource= Def *dev) enum { QEMU_BUILD_CHARDEV_TCP_NOWAIT =3D (1 << 0), QEMU_BUILD_CHARDEV_FILE_LOGD =3D (1 << 1), + QEMU_BUILD_CHARDEV_UNIX_FD_PASS =3D (1 << 2), }; =20 /* This function outputs a -chardev command line option which describes on= ly the @@ -5080,7 +5081,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, break; =20 case VIR_DOMAIN_CHR_TYPE_UNIX: - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS)) { + if ((flags & QEMU_BUILD_CHARDEV_UNIX_FD_PASS) && + virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS)) { if (qemuSecuritySetSocketLabel(secManager, (virDomainDefPtr)de= f) < 0) goto cleanup; int fd =3D qemuOpenChrChardevUNIXSocket(dev); @@ -5434,7 +5436,8 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManag= er, qemuDomainObjPrivatePtr priv) { char *chrdev; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | + QEMU_BUILD_CHARDEV_UNIX_FD_PASS; if (priv->chardevStdioLogd) cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 @@ -5569,7 +5572,8 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logMana= ger, char **chr, bool chardevStdioLogd) { - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | + QEMU_BUILD_CHARDEV_UNIX_FD_PASS; if (chardevStdioLogd) cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; *chr =3D NULL; @@ -8708,7 +8712,8 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logMan= ager, virBuffer opt =3D VIR_BUFFER_INITIALIZER; const char *database; const char *contAlias =3D NULL; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | + QEMU_BUILD_CHARDEV_UNIX_FD_PASS; if (chardevStdioLogd) cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 @@ -8944,7 +8949,8 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager, virBuffer buf =3D VIR_BUFFER_INITIALIZER; char *devstr =3D NULL; int rc; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | + QEMU_BUILD_CHARDEV_UNIX_FD_PASS; if (chardevStdioLogd) cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 @@ -9104,7 +9110,8 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManage= r, { size_t i; bool havespice =3D false; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | + QEMU_BUILD_CHARDEV_UNIX_FD_PASS; if (chardevStdioLogd) cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 @@ -9167,7 +9174,8 @@ qemuBuildParallelsCommandLine(virLogManagerPtr logMan= ager, bool chardevStdioLogd) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | + QEMU_BUILD_CHARDEV_UNIX_FD_PASS; if (chardevStdioLogd) cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 @@ -9204,7 +9212,8 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logMana= ger, bool chardevStdioLogd) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | + QEMU_BUILD_CHARDEV_UNIX_FD_PASS; if (chardevStdioLogd) cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 @@ -9261,7 +9270,8 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManag= er, bool chardevStdioLogd) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | + QEMU_BUILD_CHARDEV_UNIX_FD_PASS; if (chardevStdioLogd) cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 @@ -9441,7 +9451,8 @@ qemuBuildRedirdevCommandLine(virLogManagerPtr logMana= ger, bool chardevStdioLogd) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | + QEMU_BUILD_CHARDEV_UNIX_FD_PASS; if (chardevStdioLogd) cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; =20 diff --git a/tests/qemuxml2argvdata/net-vhostuser.args b/tests/qemuxml2argv= data/net-vhostuser.args index fc4557a1f2..513fc535ab 100644 --- a/tests/qemuxml2argvdata/net-vhostuser.args +++ b/tests/qemuxml2argvdata/net-vhostuser.args @@ -14,8 +14,7 @@ QEMU_AUDIO_DRV=3Dnone \ -display none \ -no-user-config \ -nodefaults \ --chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni= tor.sock,\ -server,nowait \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server,nowait \ -mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ -rtc base=3Dutc \ -no-shutdown \ diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index d6911f9344..2d52f352b0 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1266,7 +1266,7 @@ mymain(void) DO_TEST("misc-no-reboot", NONE); DO_TEST("misc-uuid", NONE); DO_TEST_PARSE_ERROR("vhost_queues-invalid", NONE); - DO_TEST("net-vhostuser", NONE); + DO_TEST("net-vhostuser", QEMU_CAPS_CHARDEV_FD_PASS); DO_TEST("net-vhostuser-multiq", QEMU_CAPS_VHOSTUSER_MULTIQUEUE); DO_TEST_FAILURE("net-vhostuser-multiq", NONE); --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list