[libvirt] [PATCH] Debug: Record the VM PID in per-VM logs.

Ján Tomko jtomko at redhat.com
Tue Jul 19 12:08:16 UTC 2016


On Sun, Jul 17, 2016 at 11:17:01PM -0700, Prerna Saxena wrote:
>For certain situations such as Out-of-memory scenarios, it is helpful to
>record the QEMU PID in the per-VM logs, so that correlation with kernel-reported
>events is easier.
>
>While this is already recorded in libvirt daemon logs as a DEBUG message,
>I believe it merits more attention :-)
>Hence introducing it in per-VM log.
>
>Signed-off-by: Prerna Saxena <saxenap.ltc at gmail.com>
>---
> src/qemu/qemu_process.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
>diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
>index 4adb14e..2d3b0f5 100644
>--- a/src/qemu/qemu_process.c
>+++ b/src/qemu/qemu_process.c
>@@ -4983,6 +4983,7 @@ qemuProcessLaunch(virConnectPtr conn,
>     int ret = -1;
>     int rv;
>     int logfile = -1;
>+    char *msg_buffer = NULL;
>     qemuDomainLogContextPtr logCtxt = NULL;
>     qemuDomainObjPrivatePtr priv = vm->privateData;
>     virCommandPtr cmd = NULL;
>@@ -5095,8 +5096,14 @@ qemuProcessLaunch(virConnectPtr conn,
>                            _("Domain %s didn't show up"), vm->def->name);
>             rv = -1;
>         }
>+
>         VIR_DEBUG("QEMU vm=%p name=%s running with pid=%llu",
>                   vm, vm->def->name, (unsigned long long)vm->pid);
>+        ignore_value(virAsprintf(&msg_buffer,
>+                    "QEMU vm=%p name=%s running with pid=%llu",
>+                    vm, vm->def->name, (unsigned long long)vm->pid));
>+        qemuLogOperation(vm, msg_buffer, NULL, logCtxt);

I don't think we need to log the qemu version and hostname again.
We don't do that on shutdown either.

qemuDomainLogContextWrite should be enough.

Also, logging a pointer seems pointless, and so does logging the vm
name (which should be in the filename).

>+        virFree(msg_buffer);

'make syntax-check' complains:

src/qemu/qemu_process.c:5106:        virFree(msg_buffer);
maint.mk: use VIR_ macros instead of internal functions
cfg.mk:321: recipe for target 'sc_prohibit_internal_functions' failed

Jan




More information about the libvir-list mailing list