libvirt/daemon
Daniel P. Berrange 71d793faaf Add support for an explicit IO error event
This introduces a new event type

   VIR_DOMAIN_EVENT_ID_IO_ERROR

This event includes the action that is about to be taken
as a result of the watchdog triggering

  typedef enum {
     VIR_DOMAIN_EVENT_IO_ERROR_NONE = 0,
     VIR_DOMAIN_EVENT_IO_ERROR_PAUSE,
     VIR_DOMAIN_EVENT_IO_ERROR_REPORT,
  } virDomainEventIOErrorAction;

In addition it has the source path of the disk that had the
error and its unique device alias. It does not include the
target device name (/dev/sda), since this would preclude
triggering IO errors from other file backed devices (eg
serial ports connected to a file)

Thus there is a new callback definition for this event type

typedef void (*virConnectDomainEventIOErrorCallback)(virConnectPtr conn,
                                                     virDomainPtr dom,
                                                     const char *srcPath,
                                                     const char *devAlias,
                                                     int action,
                                                     void *opaque);

This is currently wired up to the QEMU block IO error events

* daemon/remote.c: Dispatch IO error events to client
* examples/domain-events/events-c/event-test.c: Watch for
  IO error events
* include/libvirt/libvirt.h.in: Define new IO error event ID
  and callback signature
* src/conf/domain_event.c, src/conf/domain_event.h,
  src/libvirt_private.syms: Extend API to handle IO error events
* src/qemu/qemu_driver.c: Connect to the QEMU monitor event
  for block IO errors and emit a libvirt IO error event
* src/remote/remote_driver.c: Receive and dispatch IO error
  events to application
* src/remote/remote_protocol.x: Wire protocol definition for
  IO error events
* src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
  src/qemu/qemu_monitor_json.c: Watch for BLOCK_IO_ERROR event
  from QEMU monitor
2010-03-26 13:53:11 +00:00
..
.gitignore .gitignore: Ignore generated daemon/libvirtd.logrotate 2010-03-17 12:27:41 -04:00
dispatch.c Pass remote_message_header to the dispatch functions. 2009-09-30 14:05:57 +02:00
dispatch.h Remote driver & daemon impl of new event API 2010-03-26 13:52:29 +00:00
event.c Fix event test timer checks on kernels with HZ=100 2009-12-02 11:53:42 +00:00
event.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
libvirtd.aug Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.c Remote driver & daemon impl of new event API 2010-03-26 13:52:29 +00:00
libvirtd.conf Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.h Remote driver & daemon impl of new event API 2010-03-26 13:52:29 +00:00
libvirtd.init.in Fix LSB compliance of init script 2010-03-18 13:30:16 +01:00
libvirtd.lxc.logrotate.in Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
libvirtd.policy-0 Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.policy-1 Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.qemu.logrotate.in Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
libvirtd.sasl Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
libvirtd.sysconf Allow control over QEMU audio backend 2009-09-29 15:53:10 +01:00
libvirtd.uml.logrotate.in Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
Makefile.am Change logrotate to be per-hypervisor logs 2010-03-10 11:27:02 +01:00
mdns.c Rename daemon main code 2009-09-21 14:41:45 +01:00
mdns.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
remote_dispatch_args.h Remote driver & daemon impl of new event API 2010-03-26 13:52:29 +00:00
remote_dispatch_prototypes.h Remote driver & daemon impl of new event API 2010-03-26 13:52:29 +00:00
remote_dispatch_ret.h Remote driver implmentation of job info API 2010-03-02 16:22:31 +00:00
remote_dispatch_table.h Add support for an explicit IO error event 2010-03-26 13:53:11 +00:00
remote_generate_stubs.pl Pass remote_message_header to the dispatch functions. 2009-09-30 14:05:57 +02:00
remote.c Add support for an explicit IO error event 2010-03-26 13:53:11 +00:00
remote.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
stream.c Let remoteClientStream only do RX if requested. 2009-09-30 14:05:41 +02:00
stream.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
test_libvirtd.aug Rename qemud/ directory to daemon/ 2009-09-21 14:41:42 +01:00
THREADING.txt Move libvirtd event loop into background thread 2009-11-03 14:45:43 -05:00