On Wed, Mar 31, 2010 at 01:14:13PM +0100, Daniel P. Berrange wrote:
When a watchdog/IO error occurs, one of the possible actions that
QEMU might take is to pause the guest. In this scenario libvirt
needs to update its internal state for the VM, and emit a
lifecycle event:
VIR_DOMAIN_EVENT_SUSPENDED
with a detail being one of:
VIR_DOMAIN_EVENT_SUSPENDED_IOERROR
VIR_DOMAIN_EVENT_SUSPENDED_WATCHDOG
To future proof against possible QEMU support for multiple monitor
consoles, this patch also hooks into the 'STOPPED' event in QEMU
and emits a generic VIR_DOMAIN_EVENT_SUSPENDED_PAUSED event
you mean if a command was emitted on one console stopping the guest
so that the event is captured on other consoles. I wonder what's the
limits here, it sounds impossible to garantee a coherent view in general
in case of access on an extra console outside of libvirtd control.
So you plan on doing some kind of best-effort to cover this new use case ?
* include/libvirt/libvirt.h.in: Add
VIR_DOMAIN_EVENT_SUSPENDED_IOERROR
* src/qemu/qemu_driver.c: Update VM state to paused when IO error
or watchdog events occurrs
* src/qemu/qemu_monitor_json.c: Fix typo in disk IO event name
[...]
ACK,
but I wonder how far we can go in that event reinjection process
without risks,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/