[libvirt] [PATCH] Keep track of guest paused state after disk IO / watchdog events

Daniel Veillard veillard at redhat.com
Wed Mar 31 13:44:17 UTC 2010


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 at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list