From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Liu, Jinsong" Subject: [PATCH 2/2] qemu-xen: add qemu xen logic for HVM S3 resume Date: Sun, 1 Sep 2013 09:54:02 +0000 Message-ID: References: <5220B3A3.4000100@citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_002_DE8DF0795D48FD4CA783C40EC829233501348C81SHSMSX101ccrcor_" Return-path: In-Reply-To: <5220B3A3.4000100@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Anthony PERARD , Stefano Stabellini Cc: George Dunlap , "qemu-devel@nongnu.org" , Ian Campbell , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org --_002_DE8DF0795D48FD4CA783C40EC829233501348C81SHSMSX101ccrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable >>From e7d4bd70eae8da131dc3ff2cec70cb2c7b6575a9 Mon Sep 17 00:00:00 2001 From: Liu Jinsong Date: Mon, 2 Sep 2013 00:39:20 +0800 Subject: [PATCH 2/2] qemu-xen: add qemu xen logic for HVM S3 resume This patch is qemu-xen patch 2 to fix HVM S3 bug, adding qemu xen logic. When qemu wakeup, qemu xen logic is notified and hypercall to xen hypervisor to unpause domain. Signed-off-by: Liu Jinsong --- xen-all.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/xen-all.c b/xen-all.c index 15be8ed..bef946b 100644 --- a/xen-all.c +++ b/xen-all.c @@ -97,6 +97,7 @@ typedef struct XenIOState { =20 Notifier exit; Notifier suspend; + Notifier later_wakeup; } XenIOState; =20 /* Xen specific function for piix pci */ @@ -139,6 +140,11 @@ static void xen_suspend_notifier(Notifier *notifier, v= oid *data) xc_set_hvm_param(xen_xc, xen_domid, HVM_PARAM_ACPI_S_STATE, 3); } =20 +static void xen_later_wakeup_notifier(Notifier *notifier, void *data) +{ + xc_set_hvm_param(xen_xc, xen_domid, HVM_PARAM_ACPI_S_STATE, 0); +} + /* Xen Interrupt Controller */ =20 static void xen_set_irq(void *opaque, int irq, int level) @@ -1106,6 +1112,9 @@ int xen_hvm_init(void) state->suspend.notify =3D xen_suspend_notifier; qemu_register_suspend_notifier(&state->suspend); =20 + state->later_wakeup.notify =3D xen_later_wakeup_notifier; + qemu_register_later_wakeup_notifier(&state->later_wakeup); + xc_get_hvm_param(xen_xc, xen_domid, HVM_PARAM_IOREQ_PFN, &ioreq_pfn); DPRINTF("shared page at pfn %lx\n", ioreq_pfn); state->shared_page =3D xc_map_foreign_range(xen_xc, xen_domid, XC_PAGE= _SIZE, --=20 1.7.1 --_002_DE8DF0795D48FD4CA783C40EC829233501348C81SHSMSX101ccrcor_ Content-Type: application/octet-stream; name="0002-Add-qemu-xen-logic-for-HVM-S3-resume.patch" Content-Description: 0002-Add-qemu-xen-logic-for-HVM-S3-resume.patch Content-Disposition: attachment; filename="0002-Add-qemu-xen-logic-for-HVM-S3-resume.patch"; size=1683; creation-date="Sun, 01 Sep 2013 09:12:37 GMT"; modification-date="Sun, 01 Sep 2013 16:56:12 GMT" Content-Transfer-Encoding: base64 RnJvbSBlN2Q0YmQ3MGVhZThkYTEzMWRjM2ZmMmNlYzcwY2IyYzdiNjU3NWE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSmluc29uZyA8amluc29uZy5saXVAaW50ZWwuY29tPgpE YXRlOiBNb24sIDIgU2VwIDIwMTMgMDA6Mzk6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIDIvMl0g QWRkIHFlbXUgeGVuIGxvZ2ljIGZvciBIVk0gUzMgcmVzdW1lCgpUaGlzIHBhdGNoIGlzIHFlbXUg cGF0Y2ggMiB0byBmaXggSFZNIFMzIGJ1ZywgYWRkaW5nIHFlbXUKeGVuIGxvZ2ljLiBXaGVuIHFl bXUgd2FrZXVwLCBxZW11IHhlbiBsb2dpYyBpcyBub3RpZmllZCBhbmQKaHlwZXJjYWxsIHRvIHhl biBoeXBlcnZpc29yIHRvIHVucGF1c2UgZG9tYWluLgoKU2lnbmVkLW9mZi1ieTogTGl1IEppbnNv bmcgPGppbnNvbmcubGl1QGludGVsLmNvbT4KLS0tCiB4ZW4tYWxsLmMgfCAgICA5ICsrKysrKysr KwogMSBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuLWFsbC5jIGIveGVuLWFsbC5jCmluZGV4IDE1YmU4ZWQuLmJlZjk0NmIgMTAw NjQ0Ci0tLSBhL3hlbi1hbGwuYworKysgYi94ZW4tYWxsLmMKQEAgLTk3LDYgKzk3LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgWGVuSU9TdGF0ZSB7CiAKICAgICBOb3RpZmllciBleGl0OwogICAgIE5vdGlm aWVyIHN1c3BlbmQ7CisgICAgTm90aWZpZXIgbGF0ZXJfd2FrZXVwOwogfSBYZW5JT1N0YXRlOwog CiAvKiBYZW4gc3BlY2lmaWMgZnVuY3Rpb24gZm9yIHBpaXggcGNpICovCkBAIC0xMzksNiArMTQw LDExIEBAIHN0YXRpYyB2b2lkIHhlbl9zdXNwZW5kX25vdGlmaWVyKE5vdGlmaWVyICpub3RpZmll ciwgdm9pZCAqZGF0YSkKICAgICB4Y19zZXRfaHZtX3BhcmFtKHhlbl94YywgeGVuX2RvbWlkLCBI Vk1fUEFSQU1fQUNQSV9TX1NUQVRFLCAzKTsKIH0KIAorc3RhdGljIHZvaWQgeGVuX2xhdGVyX3dh a2V1cF9ub3RpZmllcihOb3RpZmllciAqbm90aWZpZXIsIHZvaWQgKmRhdGEpCit7CisgICAgeGNf c2V0X2h2bV9wYXJhbSh4ZW5feGMsIHhlbl9kb21pZCwgSFZNX1BBUkFNX0FDUElfU19TVEFURSwg MCk7Cit9CisKIC8qIFhlbiBJbnRlcnJ1cHQgQ29udHJvbGxlciAqLwogCiBzdGF0aWMgdm9pZCB4 ZW5fc2V0X2lycSh2b2lkICpvcGFxdWUsIGludCBpcnEsIGludCBsZXZlbCkKQEAgLTExMDYsNiAr MTExMiw5IEBAIGludCB4ZW5faHZtX2luaXQodm9pZCkKICAgICBzdGF0ZS0+c3VzcGVuZC5ub3Rp ZnkgPSB4ZW5fc3VzcGVuZF9ub3RpZmllcjsKICAgICBxZW11X3JlZ2lzdGVyX3N1c3BlbmRfbm90 aWZpZXIoJnN0YXRlLT5zdXNwZW5kKTsKIAorICAgIHN0YXRlLT5sYXRlcl93YWtldXAubm90aWZ5 ID0geGVuX2xhdGVyX3dha2V1cF9ub3RpZmllcjsKKyAgICBxZW11X3JlZ2lzdGVyX2xhdGVyX3dh a2V1cF9ub3RpZmllcigmc3RhdGUtPmxhdGVyX3dha2V1cCk7CisKICAgICB4Y19nZXRfaHZtX3Bh cmFtKHhlbl94YywgeGVuX2RvbWlkLCBIVk1fUEFSQU1fSU9SRVFfUEZOLCAmaW9yZXFfcGZuKTsK ICAgICBEUFJJTlRGKCJzaGFyZWQgcGFnZSBhdCBwZm4gJWx4XG4iLCBpb3JlcV9wZm4pOwogICAg IHN0YXRlLT5zaGFyZWRfcGFnZSA9IHhjX21hcF9mb3JlaWduX3JhbmdlKHhlbl94YywgeGVuX2Rv bWlkLCBYQ19QQUdFX1NJWkUsCi0tIAoxLjcuMQoK --_002_DE8DF0795D48FD4CA783C40EC829233501348C81SHSMSX101ccrcor_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --_002_DE8DF0795D48FD4CA783C40EC829233501348C81SHSMSX101ccrcor_--