[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Qemu-devel] [PATCH v5 2/4] shutdown: Prepare for use of an enum in reset/shutdown_request
"Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx> writes: > * Eric Blake (eblake@xxxxxxxxxx) wrote: >> We want to track why a guest was shutdown; in particular, being able >> to tell the difference between a guest request (such as ACPI request) >> and host request (such as SIGINT) will prove useful to libvirt. >> Since all requests eventually end up changing shutdown_requested in >> vl.c, the logical change is to make that value track the reason, >> rather than its current 0/1 contents. >> >> Since command-line options control whether a reset request is turned >> into a shutdown request instead, the same treatment is given to >> reset_requested. >> >> This patch adds a QAPI enum ShutdownCause that describes reasons >> that a shutdown can be requested, and changes qemu_system_reset() to >> pass the reason through, although for now it is not reported. The >> next patch will actually wire things up to modify events to report >> data based on the reason, and to pass the correct enum value in from >> various call-sites that can trigger a reset/shutdown. Since QAPI >> generates enums starting at 0, it's easier if we use a different >> number as our sentinel that no request has happened yet. Most of >> the changes are in vl.c, but xen was using things externally. >> >> Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> >> >> --- >> v4: s/ShutdownType/ShutdownCause/, no thanks to mingw header pollution >> v3: new patch >> --- >> qapi-schema.json | 23 +++++++++++++++++++++++ >> include/sysemu/sysemu.h | 2 +- >> vl.c | 44 ++++++++++++++++++++++++++++---------------- >> hw/i386/xen/xen-hvm.c | 9 ++++++--- >> migration/colo.c | 2 +- >> migration/savevm.c | 2 +- >> 6 files changed, 60 insertions(+), 22 deletions(-) >> >> diff --git a/qapi-schema.json b/qapi-schema.json >> index 01b087f..a4ebdd1 100644 >> --- a/qapi-schema.json >> +++ b/qapi-schema.json >> @@ -2304,6 +2304,29 @@ >> { 'command': 'system_powerdown' } >> >> ## >> +# @ShutdownCause: >> +# >> +# Enumeration of various causes for shutdown. >> +# >> +# @host-qmp: Reaction to a QMP command, such as 'quit' >> +# @host-signal: Reaction to a signal, such as SIGINT >> +# @host-ui: Reaction to a UI event, such as closing the window >> +# @host-replay: The host is replaying an earlier shutdown event >> +# @host-error: Qemu encountered an error that prevents further use of the >> guest >> +# @guest-shutdown: The guest requested a shutdown, such as via ACPI or >> +# other hardware-specific action >> +# @guest-reset: The guest requested a reset, and the command line >> +# response to a reset is to instead trigger a shutdown >> +# @guest-panic: The guest panicked, and the command line response to >> +# a panic is to trigger a shutdown > > It's a little coarse grained; is there anyway to pass platform specific > information > for debug? I ask because I spent a while debugging a few bugs with unexpected > resets and had to figure out which of x86's many reset causes triggered it. Asking for more help with debugging is fair, but I think the need is better served by tracepoints than by exposing even more detail in QMP, where compatibility promises apply. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |