Message ID | 20120809143032.44b147fe@doriath.home |
---|---|
State | New |
Headers | show |
On Thu, 9 Aug 2012 14:30:32 -0300
Luiz Capitulino <lcapitulino@redhat.com> wrote:
> Emitted when the guest makes a request to enter S4 state.
Oops, sorry for the bad subject. It should be just '[PATCH]'.
On 08/09/2012 11:30 AM, Luiz Capitulino wrote: > Emitted when the guest makes a request to enter S4 state. > > There are three possible ways of having this event, as described here: > > http://lists.gnu.org/archive/html/qemu-devel/2012-07/msg02307.html > > I've decided to add a new event and make it indepedent of SHUTDOWN. > This means that the SHUTDOWN event will eventually follow the > SUSPEND_DISK event. > > I've choosen this way because of two reasons: > > 1. Having an indepedent event makes it possible to query for its > existence by using query-events > > 2. In the future, we may allow the user to change what QEMU should > do as a result of the guest entering S4. So it's a good idea to > keep both events separated Indeed makes sense as a separate event. > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> > --- > > This is on top of: > > [PATCH 0/4]: qmp: WAKEUP event related fixes > > QMP/qmp-events.txt | 14 ++++++++++++++ > hw/acpi.c | 2 ++ > monitor.c | 1 + > monitor.h | 1 + > 4 files changed, 18 insertions(+) > > diff --git a/QMP/qmp-events.txt b/QMP/qmp-events.txt > index 2001a71..1c51bee 100644 > --- a/QMP/qmp-events.txt > +++ b/QMP/qmp-events.txt > @@ -252,6 +252,20 @@ Example: > { "event": "SUSPEND", > "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } > > +SUSPEND_DISK > +------------ > + > +Emitted when the guest makes a request to enter S4 state. > + > +Data: None. > + > +Example: > + > +{ "event": "SUSPEND_DISK", > + "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } > + > +Note: QEMU shutdowns when entering S4 state. s/shutdowns/shuts down/ Is that true when you use the -no-shutdown flag? Do you get this event if you did not use the -no-shutdown flag?
On Thu, 09 Aug 2012 13:51:10 -0600 Eric Blake <eblake@redhat.com> wrote: > On 08/09/2012 11:30 AM, Luiz Capitulino wrote: > > Emitted when the guest makes a request to enter S4 state. > > > > There are three possible ways of having this event, as described here: > > > > http://lists.gnu.org/archive/html/qemu-devel/2012-07/msg02307.html > > > > I've decided to add a new event and make it indepedent of SHUTDOWN. > > This means that the SHUTDOWN event will eventually follow the > > SUSPEND_DISK event. > > > > I've choosen this way because of two reasons: > > > > 1. Having an indepedent event makes it possible to query for its > > existence by using query-events > > > > 2. In the future, we may allow the user to change what QEMU should > > do as a result of the guest entering S4. So it's a good idea to > > keep both events separated > > Indeed makes sense as a separate event. > > > > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> > > --- > > > > This is on top of: > > > > [PATCH 0/4]: qmp: WAKEUP event related fixes > > > > QMP/qmp-events.txt | 14 ++++++++++++++ > > hw/acpi.c | 2 ++ > > monitor.c | 1 + > > monitor.h | 1 + > > 4 files changed, 18 insertions(+) > > > > diff --git a/QMP/qmp-events.txt b/QMP/qmp-events.txt > > index 2001a71..1c51bee 100644 > > --- a/QMP/qmp-events.txt > > +++ b/QMP/qmp-events.txt > > @@ -252,6 +252,20 @@ Example: > > { "event": "SUSPEND", > > "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } > > > > +SUSPEND_DISK > > +------------ > > + > > +Emitted when the guest makes a request to enter S4 state. > > + > > +Data: None. > > + > > +Example: > > + > > +{ "event": "SUSPEND_DISK", > > + "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } > > + > > +Note: QEMU shutdowns when entering S4 state. > > s/shutdowns/shuts down/ > > Is that true when you use the -no-shutdown flag? Do you get this event > if you did not use the -no-shutdown flag? Yes, the event is orthogonal to the -no-shutdown flag, but qemu won't shut down if -no-shutdown is passed. I'll fix that note.
On Thu, 9 Aug 2012 17:48:34 -0300 Luiz Capitulino <lcapitulino@redhat.com> wrote: > On Thu, 09 Aug 2012 13:51:10 -0600 > Eric Blake <eblake@redhat.com> wrote: > > > On 08/09/2012 11:30 AM, Luiz Capitulino wrote: > > > Emitted when the guest makes a request to enter S4 state. > > > > > > There are three possible ways of having this event, as described here: > > > > > > http://lists.gnu.org/archive/html/qemu-devel/2012-07/msg02307.html > > > > > > I've decided to add a new event and make it indepedent of SHUTDOWN. > > > This means that the SHUTDOWN event will eventually follow the > > > SUSPEND_DISK event. > > > > > > I've choosen this way because of two reasons: > > > > > > 1. Having an indepedent event makes it possible to query for its > > > existence by using query-events > > > > > > 2. In the future, we may allow the user to change what QEMU should > > > do as a result of the guest entering S4. So it's a good idea to > > > keep both events separated > > > > Indeed makes sense as a separate event. > > > > > > > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> > > > --- > > > > > > This is on top of: > > > > > > [PATCH 0/4]: qmp: WAKEUP event related fixes > > > > > > QMP/qmp-events.txt | 14 ++++++++++++++ > > > hw/acpi.c | 2 ++ > > > monitor.c | 1 + > > > monitor.h | 1 + > > > 4 files changed, 18 insertions(+) > > > > > > diff --git a/QMP/qmp-events.txt b/QMP/qmp-events.txt > > > index 2001a71..1c51bee 100644 > > > --- a/QMP/qmp-events.txt > > > +++ b/QMP/qmp-events.txt > > > @@ -252,6 +252,20 @@ Example: > > > { "event": "SUSPEND", > > > "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } > > > > > > +SUSPEND_DISK > > > +------------ > > > + > > > +Emitted when the guest makes a request to enter S4 state. > > > + > > > +Data: None. > > > + > > > +Example: > > > + > > > +{ "event": "SUSPEND_DISK", > > > + "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } > > > + > > > +Note: QEMU shutdowns when entering S4 state. > > > > s/shutdowns/shuts down/ > > > > Is that true when you use the -no-shutdown flag? Do you get this event > > if you did not use the -no-shutdown flag? > > Yes, the event is orthogonal to the -no-shutdown flag, but qemu won't > shut down if -no-shutdown is passed. I'll fix that note. Oh, wait. QEMU still shut downs, but with -no-shutdown it won't exit. So I think the note doesn't need any changes. Eric, you're confusing me :)
diff --git a/QMP/qmp-events.txt b/QMP/qmp-events.txt index 2001a71..1c51bee 100644 --- a/QMP/qmp-events.txt +++ b/QMP/qmp-events.txt @@ -252,6 +252,20 @@ Example: { "event": "SUSPEND", "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } +SUSPEND_DISK +------------ + +Emitted when the guest makes a request to enter S4 state. + +Data: None. + +Example: + +{ "event": "SUSPEND_DISK", + "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } + +Note: QEMU shutdowns when entering S4 state. + VNC_CONNECTED ------------- diff --git a/hw/acpi.c b/hw/acpi.c index effc7ec..f7950be 100644 --- a/hw/acpi.c +++ b/hw/acpi.c @@ -22,6 +22,7 @@ #include "hw.h" #include "pc.h" #include "acpi.h" +#include "monitor.h" struct acpi_table_header { uint16_t _length; /* our length, not actual part of the hdr */ @@ -386,6 +387,7 @@ void acpi_pm1_cnt_write(ACPIREGS *ar, uint16_t val, char s4) break; default: if (sus_typ == s4) { /* S4 request */ + monitor_protocol_event(QEVENT_SUSPEND_DISK, NULL); qemu_system_shutdown_request(); } break; diff --git a/monitor.c b/monitor.c index 49dccfe..4f3c595 100644 --- a/monitor.c +++ b/monitor.c @@ -456,6 +456,7 @@ static const char *monitor_event_names[] = { [QEVENT_BLOCK_JOB_CANCELLED] = "BLOCK_JOB_CANCELLED", [QEVENT_DEVICE_TRAY_MOVED] = "DEVICE_TRAY_MOVED", [QEVENT_SUSPEND] = "SUSPEND", + [QEVENT_SUSPEND_DISK] = "SUSPEND_DISK", [QEVENT_WAKEUP] = "WAKEUP", [QEVENT_BALLOON_CHANGE] = "BALLOON_CHANGE", }; diff --git a/monitor.h b/monitor.h index 5f4de1b..4ef9a04 100644 --- a/monitor.h +++ b/monitor.h @@ -40,6 +40,7 @@ typedef enum MonitorEvent { QEVENT_BLOCK_JOB_CANCELLED, QEVENT_DEVICE_TRAY_MOVED, QEVENT_SUSPEND, + QEVENT_SUSPEND_DISK, QEVENT_WAKEUP, QEVENT_BALLOON_CHANGE,
Emitted when the guest makes a request to enter S4 state. There are three possible ways of having this event, as described here: http://lists.gnu.org/archive/html/qemu-devel/2012-07/msg02307.html I've decided to add a new event and make it indepedent of SHUTDOWN. This means that the SHUTDOWN event will eventually follow the SUSPEND_DISK event. I've choosen this way because of two reasons: 1. Having an indepedent event makes it possible to query for its existence by using query-events 2. In the future, we may allow the user to change what QEMU should do as a result of the guest entering S4. So it's a good idea to keep both events separated Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> --- This is on top of: [PATCH 0/4]: qmp: WAKEUP event related fixes QMP/qmp-events.txt | 14 ++++++++++++++ hw/acpi.c | 2 ++ monitor.c | 1 + monitor.h | 1 + 4 files changed, 18 insertions(+)