From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43991) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VG4Jl-0008Dn-RY for qemu-devel@nongnu.org; Sun, 01 Sep 2013 05:51:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VG4Je-0004F8-DR for qemu-devel@nongnu.org; Sun, 01 Sep 2013 05:51:37 -0400 Received: from mga02.intel.com ([134.134.136.20]:58992) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VG4Je-0004Du-1T for qemu-devel@nongnu.org; Sun, 01 Sep 2013 05:51:30 -0400 From: "Liu, Jinsong" Date: Sun, 1 Sep 2013 09:51:24 +0000 Message-ID: References: <5220B3A3.4000100@citrix.com> In-Reply-To: <5220B3A3.4000100@citrix.com> Content-Language: en-US Content-Type: multipart/mixed; boundary="_002_DE8DF0795D48FD4CA783C40EC829233501348C60SHSMSX101ccrcor_" MIME-Version: 1.0 Subject: [Qemu-devel] [PATCH 1/2] qem-xen: add later wakeup logic when qemu wakeup List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony PERARD , Stefano Stabellini Cc: George Dunlap , "qemu-devel@nongnu.org" , Ian Campbell , "xen-devel@lists.xen.org" --_002_DE8DF0795D48FD4CA783C40EC829233501348C60SHSMSX101ccrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable >>From 86ad3bb83a984ad7bbc00b81d6a0bfc1abc543ca Mon Sep 17 00:00:00 2001 From: Liu Jinsong Date: Sun, 1 Sep 2013 23:39:14 +0800 Subject: [PATCH 1/2] qemu-xen: add later wakeup logic when qemu wakeup Currently HVM S3 has a bug coming from the difference between qemu-traditioanl and qemu-xen. For qemu-traditional, the way to resume from hvm s3 is via 'xl trigger' command. However, for qemu-xen, the way to resume from hvm s3 inherited from standard qemu, i.e. via QMP, and it doesn't work under Xen. The root cause is, for qemu-xen, 'xl trigger' command didn't reset devices, while QMP didn't unpause hvm domain though they did qemu system reset. We have two qemu-xen patches and one xl patch to fix the HVM S3 bug. This patch is the qemu-xen patch 1. It provides a later wakeup notifier and a register function, and notifies the later wakeup list when qemu wakup by 'xl trigger' command. Signed-off-by: Liu Jinsong --- sysemu.h | 1 + vl.c | 8 ++++++++ 2 files changed, 9 insertions(+), 0 deletions(-) diff --git a/sysemu.h b/sysemu.h index b71f244..4dbcab7 100644 --- a/sysemu.h +++ b/sysemu.h @@ -49,6 +49,7 @@ void qemu_register_suspend_notifier(Notifier *notifier); void qemu_system_wakeup_request(WakeupReason reason); void qemu_system_wakeup_enable(WakeupReason reason, bool enabled); void qemu_register_wakeup_notifier(Notifier *notifier); +void qemu_register_later_wakeup_notifier(Notifier *notifier); void qemu_system_shutdown_request(void); void qemu_system_powerdown_request(void); void qemu_register_powerdown_notifier(Notifier *notifier); diff --git a/vl.c b/vl.c index 5314f55..1c4842d 100644 --- a/vl.c +++ b/vl.c @@ -1478,6 +1478,8 @@ static NotifierList suspend_notifiers =3D NOTIFIER_LIST_INITIALIZER(suspend_notifiers); static NotifierList wakeup_notifiers =3D NOTIFIER_LIST_INITIALIZER(wakeup_notifiers); +static NotifierList later_wakeup_notifiers =3D + NOTIFIER_LIST_INITIALIZER(later_wakeup_notifiers); static uint32_t wakeup_reason_mask =3D ~0; static RunState vmstop_requested =3D RUN_STATE_MAX; =20 @@ -1668,6 +1670,11 @@ void qemu_register_wakeup_notifier(Notifier *notifie= r) notifier_list_add(&wakeup_notifiers, notifier); } =20 +void qemu_register_later_wakeup_notifier(Notifier *notifier) +{ + notifier_list_add(&later_wakeup_notifiers, notifier); +} + void qemu_system_killed(int signal, pid_t pid) { shutdown_signal =3D signal; @@ -1744,6 +1751,7 @@ static bool main_loop_should_exit(void) cpu_synchronize_all_states(); qemu_system_reset(VMRESET_SILENT); resume_all_vcpus(); + notifier_list_notify(&later_wakeup_notifiers, NULL); monitor_protocol_event(QEVENT_WAKEUP, NULL); } if (qemu_powerdown_requested()) { --=20 1.7.1 --_002_DE8DF0795D48FD4CA783C40EC829233501348C60SHSMSX101ccrcor_ Content-Type: application/octet-stream; name="0001-Add-later-wakeup-logic-when-qemu-wakeup.patch" Content-Description: 0001-Add-later-wakeup-logic-when-qemu-wakeup.patch Content-Disposition: attachment; filename="0001-Add-later-wakeup-logic-when-qemu-wakeup.patch"; size=2752; creation-date="Sun, 01 Sep 2013 09:12:37 GMT"; modification-date="Sun, 01 Sep 2013 16:56:12 GMT" Content-Transfer-Encoding: base64 RnJvbSA4NmFkM2JiODNhOTg0YWQ3YmJjMDBiODFkNmEwYmZjMWFiYzU0M2NhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSmluc29uZyA8amluc29uZy5saXVAaW50ZWwuY29tPgpE YXRlOiBTdW4sIDEgU2VwIDIwMTMgMjM6Mzk6MTQgKzA4MDAKU3ViamVjdDogW1BBVENIIDEvMl0g QWRkIGxhdGVyIHdha2V1cCBsb2dpYyB3aGVuIHFlbXUgd2FrZXVwCgpDdXJyZW50bHkgSFZNIFMz IGhhcyBhIGJ1ZyBjb21pbmcgZnJvbSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCnFlbXUtdHJhZGl0 aW9hbmwgYW5kIHFlbXUteGVuLiBGb3IgcWVtdS10cmFkaXRpb25hbCwgdGhlIHdheQp0byByZXN1 bWUgZnJvbSBodm0gczMgaXMgdmlhICd4bCB0cmlnZ2VyJyBjb21tYW5kLiBIb3dldmVyLApmb3Ig cWVtdS14ZW4sIHRoZSB3YXkgdG8gcmVzdW1lIGZyb20gaHZtIHMzIGluaGVyaXRlZCBmcm9tCnN0 YW5kYXJkIHFlbXUsIGkuZS4gdmlhIFFNUCwgYW5kIGl0IGRvZXNuJ3Qgd29yayB1bmRlciBYZW4u CgpUaGUgcm9vdCBjYXVzZSBpcywgZm9yIHFlbXUteGVuLCAneGwgdHJpZ2dlcicgY29tbWFuZCBk aWRuJ3QgcmVzZXQKZGV2aWNlcywgd2hpbGUgUU1QIGRpZG4ndCB1bnBhdXNlIGh2bSBkb21haW4g dGhvdWdoIHRoZXkgZGlkIHFlbXUKc3lzdGVtIHJlc2V0LgoKV2UgaGF2ZSB0d28gcWVtdSBwYXRj aGVzIGFuZCBvbmUgeGwgcGF0Y2ggdG8gZml4IHRoZSBIVk0gUzMgYnVnLgpUaGlzIHBhdGNoIGlz IHRoZSBxZW11IHBhdGNoIDEuIEl0IHByb3ZpZGVzIGEgbGF0ZXIgd2FrZXVwIG5vdGlmaWVyCmFu ZCBhIHJlZ2lzdGVyIGZ1bmN0aW9uLCBhbmQgbm90aWZpZXMgdGhlIGxhdGVyIHdha2V1cCBsaXN0 IHdoZW4KcWVtdSB3YWt1cC4KClNpZ25lZC1vZmYtYnk6IExpdSBKaW5zb25nIDxqaW5zb25nLmxp dUBpbnRlbC5jb20+Ci0tLQogc3lzZW11LmggfCAgICAxICsKIHZsLmMgICAgIHwgICAgOCArKysr KysrKwogMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3lzZW11LmggYi9zeXNlbXUuaAppbmRleCBiNzFmMjQ0Li40ZGJjYWI3IDEw MDY0NAotLS0gYS9zeXNlbXUuaAorKysgYi9zeXNlbXUuaApAQCAtNDksNiArNDksNyBAQCB2b2lk IHFlbXVfcmVnaXN0ZXJfc3VzcGVuZF9ub3RpZmllcihOb3RpZmllciAqbm90aWZpZXIpOwogdm9p ZCBxZW11X3N5c3RlbV93YWtldXBfcmVxdWVzdChXYWtldXBSZWFzb24gcmVhc29uKTsKIHZvaWQg cWVtdV9zeXN0ZW1fd2FrZXVwX2VuYWJsZShXYWtldXBSZWFzb24gcmVhc29uLCBib29sIGVuYWJs ZWQpOwogdm9pZCBxZW11X3JlZ2lzdGVyX3dha2V1cF9ub3RpZmllcihOb3RpZmllciAqbm90aWZp ZXIpOwordm9pZCBxZW11X3JlZ2lzdGVyX2xhdGVyX3dha2V1cF9ub3RpZmllcihOb3RpZmllciAq bm90aWZpZXIpOwogdm9pZCBxZW11X3N5c3RlbV9zaHV0ZG93bl9yZXF1ZXN0KHZvaWQpOwogdm9p ZCBxZW11X3N5c3RlbV9wb3dlcmRvd25fcmVxdWVzdCh2b2lkKTsKIHZvaWQgcWVtdV9yZWdpc3Rl cl9wb3dlcmRvd25fbm90aWZpZXIoTm90aWZpZXIgKm5vdGlmaWVyKTsKZGlmZiAtLWdpdCBhL3Zs LmMgYi92bC5jCmluZGV4IDUzMTRmNTUuLjFjNDg0MmQgMTAwNjQ0Ci0tLSBhL3ZsLmMKKysrIGIv dmwuYwpAQCAtMTQ3OCw2ICsxNDc4LDggQEAgc3RhdGljIE5vdGlmaWVyTGlzdCBzdXNwZW5kX25v dGlmaWVycyA9CiAgICAgTk9USUZJRVJfTElTVF9JTklUSUFMSVpFUihzdXNwZW5kX25vdGlmaWVy cyk7CiBzdGF0aWMgTm90aWZpZXJMaXN0IHdha2V1cF9ub3RpZmllcnMgPQogICAgIE5PVElGSUVS X0xJU1RfSU5JVElBTElaRVIod2FrZXVwX25vdGlmaWVycyk7CitzdGF0aWMgTm90aWZpZXJMaXN0 IGxhdGVyX3dha2V1cF9ub3RpZmllcnMgPQorICAgIE5PVElGSUVSX0xJU1RfSU5JVElBTElaRVIo bGF0ZXJfd2FrZXVwX25vdGlmaWVycyk7CiBzdGF0aWMgdWludDMyX3Qgd2FrZXVwX3JlYXNvbl9t YXNrID0gfjA7CiBzdGF0aWMgUnVuU3RhdGUgdm1zdG9wX3JlcXVlc3RlZCA9IFJVTl9TVEFURV9N QVg7CiAKQEAgLTE2NjgsNiArMTY3MCwxMSBAQCB2b2lkIHFlbXVfcmVnaXN0ZXJfd2FrZXVwX25v dGlmaWVyKE5vdGlmaWVyICpub3RpZmllcikKICAgICBub3RpZmllcl9saXN0X2FkZCgmd2FrZXVw X25vdGlmaWVycywgbm90aWZpZXIpOwogfQogCit2b2lkIHFlbXVfcmVnaXN0ZXJfbGF0ZXJfd2Fr ZXVwX25vdGlmaWVyKE5vdGlmaWVyICpub3RpZmllcikKK3sKKyAgICBub3RpZmllcl9saXN0X2Fk ZCgmbGF0ZXJfd2FrZXVwX25vdGlmaWVycywgbm90aWZpZXIpOworfQorCiB2b2lkIHFlbXVfc3lz dGVtX2tpbGxlZChpbnQgc2lnbmFsLCBwaWRfdCBwaWQpCiB7CiAgICAgc2h1dGRvd25fc2lnbmFs ID0gc2lnbmFsOwpAQCAtMTc0NCw2ICsxNzUxLDcgQEAgc3RhdGljIGJvb2wgbWFpbl9sb29wX3No b3VsZF9leGl0KHZvaWQpCiAgICAgICAgIGNwdV9zeW5jaHJvbml6ZV9hbGxfc3RhdGVzKCk7CiAg ICAgICAgIHFlbXVfc3lzdGVtX3Jlc2V0KFZNUkVTRVRfU0lMRU5UKTsKICAgICAgICAgcmVzdW1l X2FsbF92Y3B1cygpOworICAgICAgICBub3RpZmllcl9saXN0X25vdGlmeSgmbGF0ZXJfd2FrZXVw X25vdGlmaWVycywgTlVMTCk7CiAgICAgICAgIG1vbml0b3JfcHJvdG9jb2xfZXZlbnQoUUVWRU5U X1dBS0VVUCwgTlVMTCk7CiAgICAgfQogICAgIGlmIChxZW11X3Bvd2VyZG93bl9yZXF1ZXN0ZWQo KSkgewotLSAKMS43LjEKCg== --_002_DE8DF0795D48FD4CA783C40EC829233501348C60SHSMSX101ccrcor_--