From: Gerd Hoffmann <kraxel@redhat.com>
To: Gleb Natapov <gleb@redhat.com>
Cc: xen-devel@lists.xensource.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v3 1/6] suspend: add infrastructure
Date: Thu, 09 Feb 2012 13:02:47 +0100 [thread overview]
Message-ID: <4F33B5E7.7070502@redhat.com> (raw)
In-Reply-To: <20120209111928.GH18866@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1039 bytes --]
On 02/09/12 12:19, Gleb Natapov wrote:
> On Thu, Feb 09, 2012 at 11:45:21AM +0100, Gerd Hoffmann wrote:
>> On 02/09/12 09:48, Gleb Natapov wrote:
>>> On Wed, Feb 08, 2012 at 12:00:14PM +0100, Gerd Hoffmann wrote:
>>>> * qemu_system_wakeup_request is supposed to be called on events which
>>>> should wake up the guest.
>>>>
>>> qemu_system_wakeup_request() should get wakeup source as a parameter.
>>> There are ways to report it to a guest.
>>
>> Can we do that incrementally, when we actually implement the guest
>> reporting?
>>
> What do you mean by "when we actually implement the guest
> reporting"? The guest reporting is part of ACPI spec and implemented
> by all relevant guests. I think that adding wakeup source parameter to
> qemu_system_wakeup_request() and reporting RTC_STS and PWRBTN_STS should
> not complicate your patch series to much. I agree that DSDT magic required
> by other devices can wait for later.
Incremental patch (just infrastructure, no acpi windup yet) attached.
Something like this?
cheers,
Gerd
[-- Attachment #2: wakeup-reason.diff --]
[-- Type: text/plain, Size: 1935 bytes --]
commit 78fbd17ddc98a2e96e05db62afbe3a69c5fad5e5
Author: Gerd Hoffmann <kraxel@redhat.com>
Date: Thu Feb 9 12:52:48 2012 +0100
reason: infra
diff --git a/sysemu.h b/sysemu.h
index 3b9d7f5..e7060aa 100644
--- a/sysemu.h
+++ b/sysemu.h
@@ -38,10 +38,16 @@ void vm_start(void);
void vm_stop(RunState state);
void vm_stop_force_state(RunState state);
+typedef enum WakeupReason {
+ QEMU_WAKEUP_REASON_OTHER = 0,
+ QEMU_WAKEUP_REASON_RTC,
+} WakeupReason;
+
void qemu_system_reset_request(void);
void qemu_system_suspend_request(void);
void qemu_register_suspend_notifier(Notifier *notifier);
-void qemu_system_wakeup_request(void);
+void qemu_system_wakeup_request(WakeupReason reason);
+void qemu_register_wakeup_notifier(Notifier *notifier);
void qemu_system_shutdown_request(void);
void qemu_system_powerdown_request(void);
void qemu_system_debug_request(void);
diff --git a/vl.c b/vl.c
index 822fd58..17d4b72 100644
--- a/vl.c
+++ b/vl.c
@@ -1286,6 +1286,8 @@ static int debug_requested;
static bool is_suspended;
static NotifierList suspend_notifiers =
NOTIFIER_LIST_INITIALIZER(suspend_notifiers);
+static NotifierList wakeup_notifiers =
+ NOTIFIER_LIST_INITIALIZER(wakeup_notifiers);
static RunState vmstop_requested = RUN_STATE_MAX;
int qemu_shutdown_requested_get(void)
@@ -1416,16 +1418,22 @@ void qemu_register_suspend_notifier(Notifier *notifier)
notifier_list_add(&suspend_notifiers, notifier);
}
-void qemu_system_wakeup_request(void)
+void qemu_system_wakeup_request(WakeupReason reason)
{
if (!is_suspended) {
return;
}
+ notifier_list_notify(&wakeup_notifiers, &reason);
reset_requested = 1;
qemu_notify_event();
is_suspended = false;
}
+void qemu_register_wakeup_notifier(Notifier *notifier)
+{
+ notifier_list_add(&wakeup_notifiers, notifier);
+}
+
void qemu_system_killed(int signal, pid_t pid)
{
shutdown_signal = signal;
next prev parent reply other threads:[~2012-02-09 12:03 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-08 11:00 [Qemu-devel] [PATCH v3 0/6] initial suspend support Gerd Hoffmann
2012-02-08 11:00 ` [Qemu-devel] [PATCH v3 1/6] suspend: add infrastructure Gerd Hoffmann
2012-02-09 8:48 ` Gleb Natapov
2012-02-09 10:45 ` Gerd Hoffmann
2012-02-09 11:19 ` Gleb Natapov
2012-02-09 12:02 ` Gerd Hoffmann [this message]
2012-02-09 12:37 ` Gleb Natapov
2012-02-09 12:46 ` Gerd Hoffmann
2012-02-09 13:17 ` Gleb Natapov
2012-02-09 13:29 ` Gerd Hoffmann
2012-02-09 16:00 ` Gerd Hoffmann
2012-02-09 16:05 ` Gleb Natapov
2012-02-08 11:00 ` [Qemu-devel] [PATCH v3 2/6] suspend: switch acpi s3 to new infrastructure Gerd Hoffmann
2012-02-09 8:53 ` Gleb Natapov
2012-02-09 10:51 ` Gerd Hoffmann
2012-02-09 11:14 ` Gleb Natapov
2012-02-09 11:13 ` [Qemu-devel] [Xen-devel] " Stefano Stabellini
2012-02-09 11:17 ` [Qemu-devel] " Paolo Bonzini
2012-02-09 12:31 ` Gleb Natapov
2012-02-09 12:47 ` Paolo Bonzini
2012-02-09 12:53 ` Gleb Natapov
2012-02-08 11:00 ` [Qemu-devel] [PATCH v3 3/6] suspend: add system_wakeup monitor command Gerd Hoffmann
2012-02-09 8:54 ` Gleb Natapov
2012-02-08 11:00 ` [Qemu-devel] [PATCH v3 4/6] suspend: make ps/2 devices wakeup the guest Gerd Hoffmann
2012-02-08 11:00 ` [Qemu-devel] [PATCH v3 5/6] suspend: make serial ports " Gerd Hoffmann
2012-02-08 11:00 ` [Qemu-devel] [PATCH v3 6/6] suspend: make rtc alarm " Gerd Hoffmann
2012-02-09 8:56 ` Gleb Natapov
2012-02-09 12:00 ` Gerd Hoffmann
2012-02-09 12:24 ` Gleb Natapov
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=4F33B5E7.7070502@redhat.com \
--to=kraxel@redhat.com \
--cc=gleb@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=xen-devel@lists.xensource.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).