Patchwork QMP: Introduce RESUME event

login
register
mail settings
Submitter Luiz Capitulino
Date April 27, 2010, 11:35 p.m.
Message ID <20100427203559.3db863e1@redhat.com>
Download mbox | patch
Permalink /patch/51130/
State New
Headers show

Comments

Luiz Capitulino - April 27, 2010, 11:35 p.m.
It's emitted when the Virtual Machine resumes execution.

We currently have the STOP event but don't have the matching
RESUME one, this means that clients are notified when the VM
is stopped but don't get anything when it resumes.

Let's fix that as it's already causing some trouble to libvirt.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
 QMP/qmp-events.txt |   12 ++++++++++++
 monitor.c          |    3 +++
 monitor.h          |    1 +
 vl.c               |    1 +
 4 files changed, 17 insertions(+), 0 deletions(-)
Anthony Liguori - May 3, 2010, 6:06 p.m.
On 04/27/2010 06:35 PM, Luiz Capitulino wrote:
> It's emitted when the Virtual Machine resumes execution.
>
> We currently have the STOP event but don't have the matching
> RESUME one, this means that clients are notified when the VM
> is stopped but don't get anything when it resumes.
>
> Let's fix that as it's already causing some trouble to libvirt.
>
> Signed-off-by: Luiz Capitulino<lcapitulino@redhat.com>
>    

Applied.  Thanks.

Regards,

Anthony Liguori
> ---
>   QMP/qmp-events.txt |   12 ++++++++++++
>   monitor.c          |    3 +++
>   monitor.h          |    1 +
>   vl.c               |    1 +
>   4 files changed, 17 insertions(+), 0 deletions(-)
>
> diff --git a/QMP/qmp-events.txt b/QMP/qmp-events.txt
> index c084a47..01ec85f 100644
> --- a/QMP/qmp-events.txt
> +++ b/QMP/qmp-events.txt
> @@ -38,6 +38,18 @@ Example:
>   { "event": "RESET",
>       "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
>
> +RESUME
> +------
> +
> +Emitted when the Virtual Machine resumes execution.
> +
> +Data: None.
> +
> +Example:
> +
> +{ "event": "RESUME",
> +    "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
> +
>   RTC_CHANGE
>   ----------
>
> diff --git a/monitor.c b/monitor.c
> index 754bcc5..bb87479 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -423,6 +423,9 @@ void monitor_protocol_event(MonitorEvent event, QObject *data)
>           case QEVENT_STOP:
>               event_name = "STOP";
>               break;
> +        case QEVENT_RESUME:
> +            event_name = "RESUME";
> +            break;
>           case QEVENT_VNC_CONNECTED:
>               event_name = "VNC_CONNECTED";
>               break;
> diff --git a/monitor.h b/monitor.h
> index 5bdeed1..ea15469 100644
> --- a/monitor.h
> +++ b/monitor.h
> @@ -21,6 +21,7 @@ typedef enum MonitorEvent {
>       QEVENT_RESET,
>       QEVENT_POWERDOWN,
>       QEVENT_STOP,
> +    QEVENT_RESUME,
>       QEVENT_VNC_CONNECTED,
>       QEVENT_VNC_INITIALIZED,
>       QEVENT_VNC_DISCONNECTED,
> diff --git a/vl.c b/vl.c
> index a485c58..6dfbf07 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1679,6 +1679,7 @@ void vm_start(void)
>           vm_running = 1;
>           vm_state_notify(1, 0);
>           resume_all_vcpus();
> +        monitor_protocol_event(QEVENT_RESUME, NULL);
>       }
>   }
>
>

Patch

diff --git a/QMP/qmp-events.txt b/QMP/qmp-events.txt
index c084a47..01ec85f 100644
--- a/QMP/qmp-events.txt
+++ b/QMP/qmp-events.txt
@@ -38,6 +38,18 @@  Example:
 { "event": "RESET",
     "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
 
+RESUME
+------
+
+Emitted when the Virtual Machine resumes execution.
+
+Data: None.
+
+Example:
+
+{ "event": "RESUME",
+    "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
+
 RTC_CHANGE
 ----------
 
diff --git a/monitor.c b/monitor.c
index 754bcc5..bb87479 100644
--- a/monitor.c
+++ b/monitor.c
@@ -423,6 +423,9 @@  void monitor_protocol_event(MonitorEvent event, QObject *data)
         case QEVENT_STOP:
             event_name = "STOP";
             break;
+        case QEVENT_RESUME:
+            event_name = "RESUME";
+            break;
         case QEVENT_VNC_CONNECTED:
             event_name = "VNC_CONNECTED";
             break;
diff --git a/monitor.h b/monitor.h
index 5bdeed1..ea15469 100644
--- a/monitor.h
+++ b/monitor.h
@@ -21,6 +21,7 @@  typedef enum MonitorEvent {
     QEVENT_RESET,
     QEVENT_POWERDOWN,
     QEVENT_STOP,
+    QEVENT_RESUME,
     QEVENT_VNC_CONNECTED,
     QEVENT_VNC_INITIALIZED,
     QEVENT_VNC_DISCONNECTED,
diff --git a/vl.c b/vl.c
index a485c58..6dfbf07 100644
--- a/vl.c
+++ b/vl.c
@@ -1679,6 +1679,7 @@  void vm_start(void)
         vm_running = 1;
         vm_state_notify(1, 0);
         resume_all_vcpus();
+        monitor_protocol_event(QEVENT_RESUME, NULL);
     }
 }