On Tue, Mar 21, 2017 at 08:47:50 +0100, Peter Krempa wrote: > The hyperv panic notifier reports additional data in form of 5 registers > that are reported in the crash event from qemu. Log them into the VM log > file and report them as a warning so that admins can see the cause of > crash of their windows VMs. > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1426176 > --- > src/qemu/qemu_driver.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 52 insertions(+), 2 deletions(-) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index ab7c01b23..c558e0991 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -3971,10 +3971,56 @@ doCoreDumpToAutoDumpPath(virQEMUDriverPtr driver, > return ret; > } > > + > +static char * > +qemuProcessGuestPanicEventInfoFormatData(qemuMonitorEventPanicInfoPtr info) I think this should be implemented in qemu_monitor.c as qemuMonitorEventPanicInfoFormat so that it's closer the structure is defined. > +{ > + char *ret = NULL; > + > + switch (info->type) { > + case QEMU_MONITOR_EVENT_PANIC_INFO_TYPE_HYPERV: > + ignore_value(virAsprintf(&ret, "hyper-v: arg1='0x%llx', arg2='0x%llx', " > + "arg3='0x%llx', arg4='0x%llx', " > + "arg5='0x%llx'", > + info->data.hyperv.arg1, > + info->data.hyperv.arg2, > + info->data.hyperv.arg3, > + info->data.hyperv.arg4, > + info->data.hyperv.arg5)); Wrong indentation, the additional lines should be aligned with &ret :-) > + break; > + > + case QEMU_MONITOR_EVENT_PANIC_INFO_TYPE_NONE: > + case QEMU_MONITOR_EVENT_PANIC_INFO_TYPE_LAST: > + break; > + } > + > + return ret; > +} > + > + > +static void > +qemuProcessGuestPanicEventInfo(virQEMUDriverPtr driver, > + virDomainObjPtr vm, > + qemuMonitorEventPanicInfoPtr info) > +{ > + char *msg = qemuProcessGuestPanicEventInfoFormatData(info); > + char *timestamp = virTimeStringNow(); > + > + if (msg && timestamp) { > + qemuDomainLogAppendMessage(driver, vm, "%s: panic %s\n", timestamp, msg); > + VIR_WARN("domain '%s' panic data: %s", vm->def->name, msg); Do we really need this warning? Especially when a guest panic triggers the warning only if we have the additional data to report. We should either emit the warning in all cases or never. I think we should just drop the warning. Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list