Patchwork [1/5] QMP: BLOCK_IO_ERROR event handling

login
register
mail settings
Submitter Luiz Capitulino
Date Feb. 3, 2010, 2:41 p.m.
Message ID <1265208064-16039-2-git-send-email-lcapitulino@redhat.com>
Download mbox | patch
Permalink /patch/44377/
State New
Headers show

Comments

Luiz Capitulino - Feb. 3, 2010, 2:41 p.m.
This commit adds the basic definitions for the BLOCK_IO_ERROR
event, but actual event emission will be introduced by the
next commits.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
 QMP/qmp-events.txt |   21 +++++++++++++++++++++
 monitor.c          |    3 +++
 monitor.h          |    1 +
 3 files changed, 25 insertions(+), 0 deletions(-)
Anthony Liguori - Feb. 10, 2010, 6:32 p.m.
On 02/03/2010 08:41 AM, Luiz Capitulino wrote:
> This commit adds the basic definitions for the BLOCK_IO_ERROR
> event, but actual event emission will be introduced by the
> next commits.
>
> Signed-off-by: Luiz Capitulino<lcapitulino@redhat.com>
>    

Applied all.  Thanks.

Regards,

Anthony Liguori
> ---
>   QMP/qmp-events.txt |   21 +++++++++++++++++++++
>   monitor.c          |    3 +++
>   monitor.h          |    1 +
>   3 files changed, 25 insertions(+), 0 deletions(-)
>
> diff --git a/QMP/qmp-events.txt b/QMP/qmp-events.txt
> index dc48ccc..d585a8d 100644
> --- a/QMP/qmp-events.txt
> +++ b/QMP/qmp-events.txt
> @@ -43,3 +43,24 @@ Data: 'server' and 'client' keys with the same keys as 'query-vnc'.
>
>   Description: Issued when the VNC session is made active.
>   Data: 'server' and 'client' keys with the same keys as 'query-vnc'.
> +
> +7 BLOCK_IO_ERROR
> +----------------
> +
> +Description: Issued when a disk I/O error occurs
> +Data:
> +
> +- 'device': device name (json-string)
> +- 'operation': I/O operation (json-string, "read" or "write")
> +- 'action': action that has been taken, it's one of the following:
> +    "ignore": error has been ignored
> +    "report": error has been reported to the device
> +    "stop": error caused VM to be stopped
> +
> +Example:
> +
> +{ "event": "BLOCK_IO_ERROR",
> +    "data": { "device": "ide0-hd1",
> +              "operation": "write",
> +              "action": "stop" },
> +    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
> diff --git a/monitor.c b/monitor.c
> index fb7c572..6e688ac 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -378,6 +378,9 @@ void monitor_protocol_event(MonitorEvent event, QObject *data)
>           case QEVENT_VNC_DISCONNECTED:
>               event_name = "VNC_DISCONNECTED";
>               break;
> +        case QEVENT_BLOCK_IO_ERROR:
> +            event_name = "BLOCK_IO_ERROR";
> +            break;
>           default:
>               abort();
>               break;
> diff --git a/monitor.h b/monitor.h
> index b0f9270..e35f1e4 100644
> --- a/monitor.h
> +++ b/monitor.h
> @@ -23,6 +23,7 @@ typedef enum MonitorEvent {
>       QEVENT_VNC_CONNECTED,
>       QEVENT_VNC_INITIALIZED,
>       QEVENT_VNC_DISCONNECTED,
> +    QEVENT_BLOCK_IO_ERROR,
>       QEVENT_MAX,
>   } MonitorEvent;
>
>

Patch

diff --git a/QMP/qmp-events.txt b/QMP/qmp-events.txt
index dc48ccc..d585a8d 100644
--- a/QMP/qmp-events.txt
+++ b/QMP/qmp-events.txt
@@ -43,3 +43,24 @@  Data: 'server' and 'client' keys with the same keys as 'query-vnc'.
 
 Description: Issued when the VNC session is made active.
 Data: 'server' and 'client' keys with the same keys as 'query-vnc'.
+
+7 BLOCK_IO_ERROR
+----------------
+
+Description: Issued when a disk I/O error occurs
+Data:
+
+- 'device': device name (json-string)
+- 'operation': I/O operation (json-string, "read" or "write")
+- 'action': action that has been taken, it's one of the following:
+    "ignore": error has been ignored
+    "report": error has been reported to the device
+    "stop": error caused VM to be stopped
+
+Example:
+
+{ "event": "BLOCK_IO_ERROR",
+    "data": { "device": "ide0-hd1",
+              "operation": "write",
+              "action": "stop" },
+    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
diff --git a/monitor.c b/monitor.c
index fb7c572..6e688ac 100644
--- a/monitor.c
+++ b/monitor.c
@@ -378,6 +378,9 @@  void monitor_protocol_event(MonitorEvent event, QObject *data)
         case QEVENT_VNC_DISCONNECTED:
             event_name = "VNC_DISCONNECTED";
             break;
+        case QEVENT_BLOCK_IO_ERROR:
+            event_name = "BLOCK_IO_ERROR";
+            break;
         default:
             abort();
             break;
diff --git a/monitor.h b/monitor.h
index b0f9270..e35f1e4 100644
--- a/monitor.h
+++ b/monitor.h
@@ -23,6 +23,7 @@  typedef enum MonitorEvent {
     QEVENT_VNC_CONNECTED,
     QEVENT_VNC_INITIALIZED,
     QEVENT_VNC_DISCONNECTED,
+    QEVENT_BLOCK_IO_ERROR,
     QEVENT_MAX,
 } MonitorEvent;