On Fri, Dec 02, 2011 at 09:22:37AM -0700, Eric Blake wrote: > On 12/02/2011 08:02 AM, Jiri Denemark wrote: > > When QEMU guest finishes its shutdown sequence, qemu stops virtual CPUs > > and when started with -no-shutdown waits for us to kill it using > > SGITERM. Since QEMU is flushing its internal buffers, some time may pass > > before QEMU actually dies. We mistakenly used "paused" state (and > > events) for this which is quite confusing since users may see a domain > > going to pause while they expect it to shutdown. Since we already have > > "shutdown" state with "the domain is being shut down" semantics, we > > should use it for this state. > > > > However, the state didn't have a corresponding event so I created one > > and called its detail as VIR_DOMAIN_EVENT_SHUTDOWN_FINISHED (guest OS > > finished its shutdown sequence) with the intent to add > > VIR_DOMAIN_EVENT_SHUTDOWN_STARTED in the future if we have a > > sufficiently capable guest agent that can notify us when guest OS starts > > to shutdown. > > Not for this patch, but should we use VIR_DOMAIN_EVENT_SHUTDOWN_STARTED > any time we use the virDomainShutdown API to request a graceful > shutdown? That is, by actually changing the state of the domain after a > call to virDomainShutdown, it will be more apparent whether a user has > previously requested shutdown, and if the guest is still running, it > means the guest either didn't react to the ACPI interrupt or else is > taking a long time to shut down. I don't think we should do this in the lifecycle events. Not least because emitting "VIR_DOMAIN_EVENT_SHUTDOWN_STARTED" would be very misleading because a guest OS is free to ignore the ACPI power event. The lifecycle events should only reflect things that have actually happened to the guest VM lifecycle & I don't really this counts. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list