[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v9 5/5] shutdown: Expose bool cause in SHUTDOWN
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v9 5/5] shutdown: Expose bool cause in SHUTDOWN and RESET events |
Date: |
Tue, 16 May 2017 10:49:23 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Eric Blake <address@hidden> writes:
> Libvirt would like to be able to distinguish between a SHUTDOWN
> event triggered solely by guest request and one triggered by a
> SIGTERM or other action on the host. While qemu_kill_report() was
> already able to give different output to stderr based on whether a
> shutdown was triggered by a host signal (but NOT by a host UI event,
> such as clicking the X on the window), that information was then
> lost to management. The previous patches improved things to use an
> enum throughout all callsites, so now we have something ready to
> expose through QMP.
>
> Note that for now, the decision was to expose ONLY a boolean,
> rather than promoting ShutdownCause to a QAPI enum; this is because
> libvirt has not expressed an interest in anything finer-grained.
> We can still add additional details, in a backwards-compatible
> manner, if a need later arises (if the addition happens before 2.10,
> we can replace the bool with an enum; otherwise, the enum will have
> to be in addition to the bool); this patch merely adds a helper
> shutdown_caused_by_guest() to map the internal enum into the
> external boolean.
>
> Update expected iotest outputs to match the new data (complete
> coverage of the affected tests is obtained by -raw, -qcow2, and -nbd).
>
> Here is output from 'virsh qemu-monitor-event --loop' with the
> patch installed:
>
> event SHUTDOWN at 1492639680.731251 for domain fedora_13: {"guest":true}
> event STOP at 1492639680.732116 for domain fedora_13: <null>
> event SHUTDOWN at 1492639680.732830 for domain fedora_13: {"guest":false}
>
> Note that libvirt runs qemu with -no-shutdown: the first SHUTDOWN event
> was triggered by an action I took directly in the guest (shutdown -h),
> at which point qemu stops the vcpus and waits for libvirt to do any
> final cleanups; the second SHUTDOWN event is the result of libvirt
> sending SIGTERM now that it has completed cleanup. Libvirt is already
> smart enough to only feed the first qemu SHUTDOWN event to the end user
> (remember, virsh qemu-monitor-event is a low-level debugging interface
> that is explicitly unsupported by libvirt, so it sees things that normal
> end users do not); changing qemu to emit SHUTDOWN only once is outside
> the scope of this series.
>
> See also https://bugzilla.redhat.com/1384007
>
> Signed-off-by: Eric Blake <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
- [Qemu-devel] [PATCH v9 0/5] event: Add source information to SHUTDOWN, Eric Blake, 2017/05/15
- [Qemu-devel] [PATCH v9 1/5] shutdown: Simplify shutdown_signal, Eric Blake, 2017/05/15
- [Qemu-devel] [PATCH v9 2/5] shutdown: Prepare for use of an enum in reset/shutdown_request, Eric Blake, 2017/05/15
- [Qemu-devel] [PATCH v9 3/5] shutdown: Preserve shutdown cause through replay, Eric Blake, 2017/05/15
- [Qemu-devel] [PATCH v9 5/5] shutdown: Expose bool cause in SHUTDOWN and RESET events, Eric Blake, 2017/05/15
- Re: [Qemu-devel] [PATCH v9 5/5] shutdown: Expose bool cause in SHUTDOWN and RESET events,
Markus Armbruster <=
- [Qemu-devel] [PATCH v9 4/5] shutdown: Add source information to SHUTDOWN and RESET, Eric Blake, 2017/05/15
- Re: [Qemu-devel] [PATCH v9 0/5] event: Add source information to SHUTDOWN, Markus Armbruster, 2017/05/16