From: Gerd Hoffmann <kraxel@redhat.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: qemu-devel@nongnu.org, libvirt-list@redhat.com
Subject: Re: [Qemu-devel] [PATCH v5 12/12] suspend: add qmp events
Date: Tue, 21 Feb 2012 11:00:35 +0100 [thread overview]
Message-ID: <4F436B43.400@redhat.com> (raw)
In-Reply-To: <20120217153351.6416e5c5@doriath.home>
On 02/17/12 18:33, Luiz Capitulino wrote:
> On Wed, 15 Feb 2012 11:28:21 +0100
> Gerd Hoffmann <kraxel@redhat.com> wrote:
>
>> Send qmp events on suspend and wakeup so libvirt
>> has a chance to track the vm state.
[ added libvirt to Cc:, leaving full context.
this is about qmp events when the guest enters/leaves s3 ].
>> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
>> ---
>> monitor.c | 6 ++++++
>> monitor.h | 2 ++
>> vl.c | 15 +++++++++++++++
>> 3 files changed, 23 insertions(+), 0 deletions(-)
>>
>> diff --git a/monitor.c b/monitor.c
>> index aadbdcb..e6f5fad 100644
>> --- a/monitor.c
>> +++ b/monitor.c
>> @@ -485,6 +485,12 @@ void monitor_protocol_event(MonitorEvent event, QObject *data)
>> case QEVENT_BLOCK_JOB_CANCELLED:
>> event_name = "BLOCK_JOB_CANCELLED";
>> break;
>> + case QEVENT_SUSPEND:
>> + event_name = "SUSPEND";
>> + break;
>> + case QEVENT_WAKEUP:
>> + event_name = "WAKEUP";
>> + break;
>> default:
>> abort();
>> break;
>> diff --git a/monitor.h b/monitor.h
>> index b72ea07..9df3bab 100644
>> --- a/monitor.h
>> +++ b/monitor.h
>> @@ -38,6 +38,8 @@ typedef enum MonitorEvent {
>> QEVENT_SPICE_DISCONNECTED,
>> QEVENT_BLOCK_JOB_COMPLETED,
>> QEVENT_BLOCK_JOB_CANCELLED,
>> + QEVENT_SUSPEND,
>> + QEVENT_WAKEUP,
>> QEVENT_MAX,
>> } MonitorEvent;
>>
>> diff --git a/vl.c b/vl.c
>> index bfdcb7c..570ea05 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -1416,6 +1416,7 @@ static void qemu_system_suspend(void)
>> {
>> pause_all_vcpus();
>> notifier_list_notify(&suspend_notifiers, NULL);
>> + monitor_protocol_event(QEVENT_SUSPEND, NULL);
>> is_suspended = true;
>> }
>>
>> @@ -1436,12 +1437,26 @@ void qemu_register_suspend_notifier(Notifier *notifier)
>>
>> void qemu_system_wakeup_request(WakeupReason reason)
>> {
>> + static const char *names[] = {
>> + [QEMU_WAKEUP_REASON_OTHER] = "other",
>> + [QEMU_WAKEUP_REASON_RTC] = "rtc",
>> + [QEMU_WAKEUP_REASON_PMTIMER] = "pmtimer",
>
> Is the reason really important for mngt? Can we just leave it out?
I assumed the wakeup reason could be useful, but dunno.
Zapping the code is no problem of course.
Lets ask mgmt aka libvirt folks ;)
cheers,
Gerd
>> + };
>> + const char *name;
>> + QObject *data;
>> +
>> if (!is_suspended) {
>> return;
>> }
>> if (!(wakeup_reason_mask & (1 << reason))) {
>> return;
>> }
>> +
>> + name = (reason < ARRAY_SIZE(names)) ? names[reason] : "unknown";
>> + data = qobject_from_jsonf("{ 'reason': %s }", name);
>> + monitor_protocol_event(QEVENT_WAKEUP, data);
>> + qobject_decref(data);
>> +
>> notifier_list_notify(&wakeup_notifiers, &reason);
>> reset_requested = 1;
>> qemu_notify_event();
>
next prev parent reply other threads:[~2012-02-21 10:00 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-15 10:28 [Qemu-devel] [PATCH v5 00/12] initial suspend support Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 01/12] acpi: move around structs Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 02/12] acpi: add ACPIREGS Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 03/12] acpi: don't pass overflow_time to acpi_pm1_evt_get_sts Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 04/12] acpi: add acpi_pm1_evt_write_en Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 05/12] suspend: add infrastructure Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 06/12] suspend: switch acpi s3 to new infrastructure Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 07/12] suspend: add system_wakeup monitor command Gerd Hoffmann
2012-02-17 17:32 ` Luiz Capitulino
2012-02-21 9:56 ` Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 08/12] suspend: make ps/2 devices wakeup the guest Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 09/12] suspend: make serial ports " Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 10/12] suspend: make rtc alarm " Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 11/12] suspend: make acpi timer " Gerd Hoffmann
2012-02-15 10:28 ` [Qemu-devel] [PATCH v5 12/12] suspend: add qmp events Gerd Hoffmann
2012-02-17 14:23 ` Anthony Liguori
2012-02-17 17:33 ` Luiz Capitulino
2012-02-21 10:00 ` Gerd Hoffmann [this message]
2012-02-21 16:30 ` Eric Blake
2012-02-22 12:08 ` Gerd Hoffmann
2012-02-22 13:22 ` Luiz Capitulino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F436B43.400@redhat.com \
--to=kraxel@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=libvirt-list@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.