From nobody Tue Feb 10 12:44:47 2026 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.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; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1496068320733220.20511272370436; Mon, 29 May 2017 07:32:00 -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 3DCFDC04B92D; Mon, 29 May 2017 14:31:58 +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 F3F6677EC6; Mon, 29 May 2017 14:31:57 +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 9AD884A48D; Mon, 29 May 2017 14:31:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4TEVumg016368 for ; Mon, 29 May 2017 10:31:56 -0400 Received: by smtp.corp.redhat.com (Postfix) id 071AE1850F; Mon, 29 May 2017 14:31:56 +0000 (UTC) Received: from antique-work.brq.redhat.com (dhcp129-230.brq.redhat.com [10.34.129.230]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5D07A1850C for ; Mon, 29 May 2017 14:31:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3DCFDC04B92D Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 3DCFDC04B92D From: Pavel Hrdina To: libvir-list@redhat.com Date: Mon, 29 May 2017 16:31:49 +0200 Message-Id: <61374cdf486f571dda303a1b69e159ba4368da66.1496068215.git.phrdina@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 3/4] qemu: propagate chardevStdioLogd to qemuBuildChrChardevStr 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: , MIME-Version: 1.0 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.31]); Mon, 29 May 2017 14:31:59 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Pavel Hrdina Reviewed-by: John Ferlan --- Notes: new in v2 =20 This is not required to fix the issue by the last patch in the series, however it improves the code that we decide whether to use virtlogd or not by checking the same variable that is updated while preparing the guest start. src/qemu/qemu_command.c | 132 +++++++++++++++++++++++++++++++-------------= ---- src/qemu/qemu_command.h | 3 +- src/qemu/qemu_process.c | 6 ++- 3 files changed, 93 insertions(+), 48 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 015af1036c..e6c50d1a64 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5043,7 +5043,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, const virDomainChrSourceDef *dev, const char *alias, virQEMUCapsPtr qemuCaps, - bool nowait) + bool nowait, + bool chardevStdioLogd) { virBuffer buf =3D VIR_BUFFER_INITIALIZER; bool telnet; @@ -5081,8 +5082,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, _("append not supported in this QEMU binary")); goto cleanup; } - if (qemuBuildChrChardevFileStr(virQEMUCapsGet(qemuCaps, QEMU_CAPS_= CHARDEV_FILE_APPEND) ? - logManager : NULL, cmd, def, &buf, + if (qemuBuildChrChardevFileStr(chardevStdioLogd ? logManager : NUL= L, + cmd, def, &buf, "path", dev->data.file.path, "append", dev->data.file.append) < = 0) goto cleanup; @@ -5562,8 +5563,9 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManag= er, virQEMUDriverConfigPtr cfg, virDomainDefPtr def, virQEMUCapsPtr qemuCaps, - const virDomainChrSourceDef *monitor_chr, - bool monitor_json) + virDomainChrSourceDefPtr monitor_chr, + bool monitor_json, + bool chardevStdioLogd) { char *chrdev; =20 @@ -5575,7 +5577,8 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManag= er, =20 if (!(chrdev =3D qemuBuildChrChardevStr(logManager, cmd, cfg, def, monitor_chr, "monitor", - qemuCaps, true))) + qemuCaps, true, + chardevStdioLogd))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, chrdev); @@ -5720,7 +5723,8 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logMana= ger, const virDomainDef *def, virDomainRNGDefPtr rng, virQEMUCapsPtr qemuCaps, - char **chr) + char **chr, + bool chardevStdioLogd) { *chr =3D NULL; =20 @@ -5733,7 +5737,8 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logMana= ger, case VIR_DOMAIN_RNG_BACKEND_EGD: if (!(*chr =3D qemuBuildChrChardevStr(logManager, cmd, cfg, def, rng->source.chardev, - rng->info.alias, qemuCaps, tru= e))) + rng->info.alias, qemuCaps, tru= e, + chardevStdioLogd))) return -1; } =20 @@ -5881,7 +5886,8 @@ qemuBuildRNGCommandLine(virLogManagerPtr logManager, virCommandPtr cmd, virQEMUDriverConfigPtr cfg, const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + bool chardevStdioLogd) { size_t i; =20 @@ -5897,7 +5903,8 @@ qemuBuildRNGCommandLine(virLogManagerPtr logManager, =20 /* possibly add character device for backend */ if (qemuBuildRNGBackendChrdevStr(logManager, cmd, cfg, def, - rng, qemuCaps, &tmp) < 0) + rng, qemuCaps, &tmp, + chardevStdioLogd) < 0) return -1; =20 if (tmp) { @@ -8256,7 +8263,8 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver, virDomainDefPtr def, virDomainNetDefPtr net, virQEMUCapsPtr qemuCaps, - unsigned int bootindex) + unsigned int bootindex, + bool chardevStdioLogd) { virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(driver); char *chardev =3D NULL; @@ -8274,7 +8282,8 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver, case VIR_DOMAIN_CHR_TYPE_UNIX: if (!(chardev =3D qemuBuildChrChardevStr(logManager, cmd, cfg, def, net->data.vhostuser, - net->info.alias, qemuCaps, = false))) + net->info.alias, qemuCaps, = false, + chardevStdioLogd))) goto error; break; =20 @@ -8353,7 +8362,8 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, virNetDevVPortProfileOp vmop, bool standalone, size_t *nnicindexes, - int **nicindexes) + int **nicindexes, + bool chardevStdioLogd) { int ret =3D -1; char *nic =3D NULL, *host =3D NULL; @@ -8466,7 +8476,8 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, =20 case VIR_DOMAIN_NET_TYPE_VHOSTUSER: ret =3D qemuBuildVhostuserCommandLine(driver, logManager, cmd, def, - net, qemuCaps, bootindex); + net, qemuCaps, bootindex, + chardevStdioLogd); goto cleanup; break; =20 @@ -8661,7 +8672,8 @@ qemuBuildNetCommandLine(virQEMUDriverPtr driver, bool standalone, size_t *nnicindexes, int **nicindexes, - unsigned int *bootHostdevNet) + unsigned int *bootHostdevNet, + bool chardevStdioLogd) { size_t i; int last_good_net =3D -1; @@ -8695,7 +8707,8 @@ qemuBuildNetCommandLine(virQEMUDriverPtr driver, if (qemuBuildInterfaceCommandLine(driver, logManager, cmd, def= , net, qemuCaps, vlan, bootNet, vmo= p, standalone, nnicindexes, - nicindexes) < 0) + nicindexes, + chardevStdioLogd) < 0) goto error; =20 last_good_net =3D i; @@ -8731,7 +8744,8 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logMan= ager, virCommandPtr cmd, virQEMUDriverConfigPtr cfg, const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + bool chardevStdioLogd) { size_t i; virDomainSmartcardDefPtr smartcard; @@ -8818,7 +8832,8 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logMan= ager, if (!(devstr =3D qemuBuildChrChardevStr(logManager, cmd, cfg, def, smartcard->data.passthru, smartcard->info.alias, - qemuCaps, true))) { + qemuCaps, true, + chardevStdioLogd))) { virBufferFreeAndReset(&opt); return -1; } @@ -8942,7 +8957,8 @@ qemuBuildShmemBackendChrStr(virLogManagerPtr logManag= er, virQEMUDriverConfigPtr cfg, virDomainDefPtr def, virDomainShmemDefPtr shmem, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + bool chardevStdioLogd) { char *devstr =3D NULL; =20 @@ -8951,7 +8967,8 @@ qemuBuildShmemBackendChrStr(virLogManagerPtr logManag= er, =20 devstr =3D qemuBuildChrChardevStr(logManager, cmd, cfg, def, &shmem->server.chr, - shmem->info.alias, qemuCaps, true); + shmem->info.alias, qemuCaps, true, + chardevStdioLogd); =20 return devstr; } @@ -9007,7 +9024,8 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager, virQEMUDriverConfigPtr cfg, virDomainDefPtr def, virDomainShmemDefPtr shmem, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + bool chardevStdioLogd) { char *devstr =3D NULL; =20 @@ -9065,7 +9083,8 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager, =20 if (shmem->server.enabled) { if (!(devstr =3D qemuBuildShmemBackendChrStr(logManager, cmd, cfg,= def, - shmem, qemuCaps))) + shmem, qemuCaps, + chardevStdioLogd))) return -1; =20 virCommandAddArgList(cmd, "-chardev", devstr, NULL); @@ -9097,7 +9116,8 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManage= r, virCommandPtr cmd, virQEMUDriverConfigPtr cfg, const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + bool chardevStdioLogd) { size_t i; bool havespice =3D false; @@ -9121,7 +9141,8 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManage= r, if (!(devstr =3D qemuBuildChrChardevStr(logManager, cmd, cfg, = def, serial->source, serial->info.alias, - qemuCaps, true))) + qemuCaps, true, + chardevStdioLogd))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9147,7 +9168,8 @@ qemuBuildParallelsCommandLine(virLogManagerPtr logMan= ager, virCommandPtr cmd, virQEMUDriverConfigPtr cfg, const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + bool chardevStdioLogd) { size_t i; =20 @@ -9160,7 +9182,8 @@ qemuBuildParallelsCommandLine(virLogManagerPtr logMan= ager, if (!(devstr =3D qemuBuildChrChardevStr(logManager, cmd, cfg, = def, parallel->source, parallel->info.alias, - qemuCaps, true))) + qemuCaps, true, + chardevStdioLogd))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9187,7 +9210,8 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logMana= ger, virCommandPtr cmd, virQEMUDriverConfigPtr cfg, const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + bool chardevStdioLogd) { size_t i; =20 @@ -9206,7 +9230,8 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logMana= ger, if (!(devstr =3D qemuBuildChrChardevStr(logManager, cmd, cfg, = def, channel->source, channel->info.alias, - qemuCaps, true))) + qemuCaps, true, + chardevStdioLogd))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9229,7 +9254,8 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logMana= ger, if (!(devstr =3D qemuBuildChrChardevStr(logManager, cmd, c= fg, def, channel->source, channel->info.alias, - qemuCaps, true))) + qemuCaps, true, + chardevStdioLogd))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9251,7 +9277,8 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManag= er, virCommandPtr cmd, virQEMUDriverConfigPtr cfg, const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + bool chardevStdioLogd) { size_t i; =20 @@ -9272,7 +9299,8 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManag= er, if (!(devstr =3D qemuBuildChrChardevStr(logManager, cmd, cfg, = def, console->source, console->info.alias, - qemuCaps, true))) + qemuCaps, true, + chardevStdioLogd))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9286,7 +9314,8 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManag= er, if (!(devstr =3D qemuBuildChrChardevStr(logManager, cmd, cfg, = def, console->source, console->info.alias, - qemuCaps, true))) + qemuCaps, true, + chardevStdioLogd))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9404,7 +9433,8 @@ qemuBuildRedirdevCommandLine(virLogManagerPtr logMana= ger, virCommandPtr cmd, virQEMUDriverConfigPtr cfg, const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + bool chardevStdioLogd) { size_t i; =20 @@ -9415,7 +9445,8 @@ qemuBuildRedirdevCommandLine(virLogManagerPtr logMana= ger, if (!(devstr =3D qemuBuildChrChardevStr(logManager, cmd, cfg, def, redirdev->source, redirdev->info.alias, - qemuCaps, true))) { + qemuCaps, true, + chardevStdioLogd))) { return -1; } =20 @@ -9880,7 +9911,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, virBitmapPtr nodeset, size_t *nnicindexes, int **nicindexes, - const char *domainLibDir) + const char *domainLibDir, + bool chardevStdioLogd) { size_t i; char uuid[VIR_UUID_STRING_BUFLEN]; @@ -9986,7 +10018,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, =20 if (qemuBuildMonitorCommandLine(logManager, cmd, cfg, def, qemuCaps, monitor_chr, - monitor_json) < 0) + monitor_json, + chardevStdioLogd) < 0) goto error; =20 if (qemuBuildClockCommandLine(cmd, def, qemuCaps) < 0) @@ -10018,22 +10051,28 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, =20 if (qemuBuildNetCommandLine(driver, logManager, cmd, def, qemuCaps, vmop, standalone, - nnicindexes, nicindexes, &bootHostdevNet) = < 0) + nnicindexes, nicindexes, &bootHostdevNet, + chardevStdioLogd) < 0) goto error; =20 - if (qemuBuildSmartcardCommandLine(logManager, cmd, cfg, def, qemuCaps)= < 0) + if (qemuBuildSmartcardCommandLine(logManager, cmd, cfg, def, qemuCaps, + chardevStdioLogd) < 0) goto error; =20 - if (qemuBuildSerialCommandLine(logManager, cmd, cfg, def, qemuCaps) < = 0) + if (qemuBuildSerialCommandLine(logManager, cmd, cfg, def, qemuCaps, + chardevStdioLogd) < 0) goto error; =20 - if (qemuBuildParallelsCommandLine(logManager, cmd, cfg, def, qemuCaps)= < 0) + if (qemuBuildParallelsCommandLine(logManager, cmd, cfg, def, qemuCaps, + chardevStdioLogd) < 0) goto error; =20 - if (qemuBuildChannelsCommandLine(logManager, cmd, cfg, def, qemuCaps) = < 0) + if (qemuBuildChannelsCommandLine(logManager, cmd, cfg, def, qemuCaps, + chardevStdioLogd) < 0) goto error; =20 - if (qemuBuildConsoleCommandLine(logManager, cmd, cfg, def, qemuCaps) <= 0) + if (qemuBuildConsoleCommandLine(logManager, cmd, cfg, def, qemuCaps, + chardevStdioLogd) < 0) goto error; =20 if (qemuBuildTPMCommandLine(cmd, def, qemuCaps) < 0) @@ -10057,7 +10096,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, if (qemuBuildWatchdogCommandLine(cmd, def, qemuCaps) < 0) goto error; =20 - if (qemuBuildRedirdevCommandLine(logManager, cmd, cfg, def, qemuCaps) = < 0) + if (qemuBuildRedirdevCommandLine(logManager, cmd, cfg, def, qemuCaps, + chardevStdioLogd) < 0) goto error; =20 if (qemuBuildHostdevCommandLine(cmd, def, qemuCaps, &bootHostdevNet) <= 0) @@ -10069,7 +10109,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, if (qemuBuildMemballoonCommandLine(cmd, def, qemuCaps) < 0) goto error; =20 - if (qemuBuildRNGCommandLine(logManager, cmd, cfg, def, qemuCaps) < 0) + if (qemuBuildRNGCommandLine(logManager, cmd, cfg, def, qemuCaps, + chardevStdioLogd) < 0) goto error; =20 if (qemuBuildNVRAMCommandLine(cmd, def, qemuCaps) < 0) @@ -10106,7 +10147,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, =20 for (i =3D 0; i < def->nshmems; i++) { if (qemuBuildShmemCommandLine(logManager, cmd, cfg, - def, def->shmems[i], qemuCaps)) + def, def->shmems[i], qemuCaps, + chardevStdioLogd)) goto error; } =20 diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index 09cb00ee9b..f5e3e5fbef 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -57,7 +57,8 @@ virCommandPtr qemuBuildCommandLine(virQEMUDriverPtr drive= r, virBitmapPtr nodeset, size_t *nnicindexes, int **nicindexes, - const char *domainLibDir) + const char *domainLibDir, + bool chardevStdioLogd) ATTRIBUTE_NONNULL(15); =20 =20 diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 77c2e5f6d3..fbcd51c1f1 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5657,7 +5657,8 @@ qemuProcessLaunch(virConnectPtr conn, qemuCheckFips(), priv->autoNodeset, &nnicindexes, &nicindexes, - priv->libDir))) + priv->libDir, + priv->chardevStdioLogd))) goto cleanup; =20 if (incoming && incoming->fd !=3D -1) @@ -6091,7 +6092,8 @@ qemuProcessCreatePretendCmd(virConnectPtr conn, priv->autoNodeset, NULL, NULL, - priv->libDir); + priv->libDir, + priv->chardevStdioLogd); =20 cleanup: return cmd; --=20 2.13.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list