• D
    Keep track of guest paused state after disk IO / watchdog events · cd2404a3
    Daniel P. Berrange 提交于
    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
    
    * 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
    cd2404a3
qemu_driver.c 311.8 KB