From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruno Alvisio Subject: [PATCH RFC 14/16] Save/Restore Support: Add suspend/restore support for xenbus Date: Tue, 19 Dec 2017 15:42:09 -0800 Message-ID: <1513726931-7516-15-git-send-email-bruno.alvisio@gmail.com> References: <1513726931-7516-1-git-send-email-bruno.alvisio@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eRRZq-0005m2-Ir for xen-devel@lists.xenproject.org; Tue, 19 Dec 2017 23:45:38 +0000 In-Reply-To: <1513726931-7516-1-git-send-email-bruno.alvisio@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org Cc: jgross@suse.com, samuel.thibault@ens-lyon.org, wei.liu2@citrix.com, Bruno Alvisio List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5IHRoZSB3YXRjaCBwYXRoIGlzIG5vdCBzYXZlZCBpbiB0aGUgd2F0Y2ggc3RydWN0 IHdoZW4gaXQgaXMgcmVnaXN0ZXJlZC4KRHVyaW5nIHhlbmJ1cyByZXN1bWUgdGhlIHBhdGggaXMg bmVlZGVkIHNvIHRoYXQgdGhlIHdhdGNoZXMgY2FuIGJlIHJlZ2lzdGVyZWQgYWdhaW4uClRodXMs ICdwYXRoJyBmaWVsZCBpcyBhZGRlZCB0byBzdHJ1Y3Qgd2F0Y2ggc28gdGhhdCB3YXRjaGVzIGNh biBiZSByZS1yZWdpc3RlcmVkCmR1cmluZyB4ZW5idXMgcmVzdW1lLgoKU2lnbmVkLW9mZi1ieTog QnJ1bm8gQWx2aXNpbyA8YnJ1bm8uYWx2aXNpb0BnbWFpbC5jb20+Ci0tLQogaW5jbHVkZS94ZW5i dXMuaCB8ICAgMiArKwoga2VybmVsLmMgICAgICAgICB8ICAgOCArKysrKwogeGVuYnVzL3hlbmJ1 cy5jICB8IDEwNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuYnVzLmggYi9pbmNsdWRlL3hlbmJ1cy5oCmlu ZGV4IGIyZDUwNzIuLjM4NzFmMzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuYnVzLmgKKysrIGIv aW5jbHVkZS94ZW5idXMuaApAQCAtMTIwLDYgKzEyMCw4IEBAIGRvbWlkX3QgeGVuYnVzX2dldF9z ZWxmX2lkKHZvaWQpOwogI2lmZGVmIENPTkZJR19YRU5CVVMKIC8qIFJlc2V0IHRoZSBYZW5CdXMg c3lzdGVtLiAqLwogdm9pZCBmaW5pX3hlbmJ1cyh2b2lkKTsKK3ZvaWQgc3VzcGVuZF94ZW5idXMo dm9pZCk7Cit2b2lkIHJlc3VtZV94ZW5idXMoaW50IGNhbmNlbGVkKTsKICNlbHNlCiBzdGF0aWMg aW5saW5lIHZvaWQgZmluaV94ZW5idXModm9pZCkKIHsKZGlmZiAtLWdpdCBhL2tlcm5lbC5jIGIv a2VybmVsLmMKaW5kZXggYTU2M2Y2MC4uYmMyMzk0ZiAxMDA2NDQKLS0tIGEva2VybmVsLmMKKysr IGIva2VybmVsLmMKQEAgLTExOSw2ICsxMTksMTAgQEAgdm9pZCBzdGFydF9rZXJuZWwodm9pZCog cGFyKQogCiB2b2lkIHByZV9zdXNwZW5kKHZvaWQpCiB7CisjaWZkZWYgQ09ORklHX1hFTkJVUwor ICAgIHN1c3BlbmRfeGVuYnVzKCk7CisjZW5kaWYKKwogICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7 CiAKICAgICBzdXNwZW5kX2dudHRhYigpOwpAQCAtMTM5LDYgKzE0MywxMCBAQCB2b2lkIHBvc3Rf c3VzcGVuZChpbnQgY2FuY2VsZWQpCiAgICAgcmVzdW1lX2dudHRhYigpOwogCiAgICAgbG9jYWxf aXJxX2VuYWJsZSgpOworCisjaWZkZWYgQ09ORklHX1hFTkJVUworICAgIHJlc3VtZV94ZW5idXMo Y2FuY2VsZWQpOworI2VuZGlmCiB9CiAKIHZvaWQgc3RvcF9rZXJuZWwodm9pZCkKZGlmZiAtLWdp dCBhL3hlbmJ1cy94ZW5idXMuYyBiL3hlbmJ1cy94ZW5idXMuYwppbmRleCBjMmQyYmQxLi40YzYy NmZiIDEwMDY0NAotLS0gYS94ZW5idXMveGVuYnVzLmMKKysrIGIveGVuYnVzL3hlbmJ1cy5jCkBA IC01MCw2ICs1MCw3IEBAIERFQ0xBUkVfV0FJVF9RVUVVRV9IRUFEKHhlbmJ1c193YXRjaF9xdWV1 ZSk7CiB4ZW5idXNfZXZlbnRfcXVldWUgeGVuYnVzX2V2ZW50czsKIHN0YXRpYyBzdHJ1Y3Qgd2F0 Y2ggewogICAgIGNoYXIgKnRva2VuOworICAgIGNoYXIgKnBhdGg7CiAgICAgeGVuYnVzX2V2ZW50 X3F1ZXVlICpldmVudHM7CiAgICAgc3RydWN0IHdhdGNoICpuZXh0OwogfSAqd2F0Y2hlczsKQEAg LTYzLDYgKzY0LDggQEAgc3RydWN0IHhlbmJ1c19yZXFfaW5mbwogI2RlZmluZSBOUl9SRVFTIDMy CiBzdGF0aWMgc3RydWN0IHhlbmJ1c19yZXFfaW5mbyByZXFfaW5mb1tOUl9SRVFTXTsKIAorc3Rh dGljIGNoYXIgKmVycm1zZyhzdHJ1Y3QgeHNkX3NvY2ttc2cgKnJlcCk7CisKIHVpbnQzMl90IHhl bmJ1c19ldnRjaG47CiAKICNpZmRlZiBDT05GSUdfUEFSQVZJUlQKQEAgLTIzMSw0NSArMjM0LDM5 IEBAIHN0YXRpYyB2b2lkIHhlbmJ1c190aHJlYWRfZnVuYyh2b2lkICppZ24pCiAgICAgc3RydWN0 IHhzZF9zb2NrbXNnIG1zZzsKICAgICB1bnNpZ25lZCBwcm9kID0geGVuc3RvcmVfYnVmLT5yc3Bf cHJvZDsKIAotICAgIGZvciAoOzspIAotICAgIHsKKyAgICBmb3IgKDs7KSB7CiAgICAgICAgIHdh aXRfZXZlbnQoeGJfd2FpdHEsIHByb2QgIT0geGVuc3RvcmVfYnVmLT5yc3BfcHJvZCk7Ci0gICAg ICAgIHdoaWxlICgxKSAKLSAgICAgICAgeworICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAg ICAgcHJvZCA9IHhlbnN0b3JlX2J1Zi0+cnNwX3Byb2Q7CiAgICAgICAgICAgICBERUJVRygiUnNw X2NvbnMgJWQsIHJzcF9wcm9kICVkLlxuIiwgeGVuc3RvcmVfYnVmLT5yc3BfY29ucywKLSAgICAg ICAgICAgICAgICAgICAgeGVuc3RvcmVfYnVmLT5yc3BfcHJvZCk7CisgICAgICAgICAgICAgICAg ICB4ZW5zdG9yZV9idWYtPnJzcF9wcm9kKTsKICAgICAgICAgICAgIGlmICh4ZW5zdG9yZV9idWYt PnJzcF9wcm9kIC0geGVuc3RvcmVfYnVmLT5yc3BfY29ucyA8IHNpemVvZihtc2cpKQogICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgcm1iKCk7Ci0gICAgICAgICAgICBtZW1jcHlf ZnJvbV9yaW5nKHhlbnN0b3JlX2J1Zi0+cnNwLAotICAgICAgICAgICAgICAgICAgICAmbXNnLAot ICAgICAgICAgICAgICAgICAgICBNQVNLX1hFTlNUT1JFX0lEWCh4ZW5zdG9yZV9idWYtPnJzcF9j b25zKSwKLSAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKG1zZykpOwotICAgICAgICAgICAgREVC VUcoIk1zZyBsZW4gJWQsICVkIGF2YWlsLCBpZCAlZC5cbiIsCi0gICAgICAgICAgICAgICAgICAg IG1zZy5sZW4gKyBzaXplb2YobXNnKSwKLSAgICAgICAgICAgICAgICAgICAgeGVuc3RvcmVfYnVm LT5yc3BfcHJvZCAtIHhlbnN0b3JlX2J1Zi0+cnNwX2NvbnMsCi0gICAgICAgICAgICAgICAgICAg IG1zZy5yZXFfaWQpOworICAgICAgICAgICAgbWVtY3B5X2Zyb21fcmluZyh4ZW5zdG9yZV9idWYt PnJzcCwgJm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFTS19YRU5TVE9SRV9J RFgoeGVuc3RvcmVfYnVmLT5yc3BfY29ucyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVvZihtc2cpKTsKKyAgICAgICAgICAgIERFQlVHKCJNc2cgbGVuICVkLCAlZCBhdmFpbCwg aWQgJWQuXG4iLCBtc2cubGVuICsgc2l6ZW9mKG1zZyksCisgICAgICAgICAgICAgICAgICB4ZW5z dG9yZV9idWYtPnJzcF9wcm9kIC0geGVuc3RvcmVfYnVmLT5yc3BfY29ucywgbXNnLnJlcV9pZCk7 CisKICAgICAgICAgICAgIGlmICh4ZW5zdG9yZV9idWYtPnJzcF9wcm9kIC0geGVuc3RvcmVfYnVm LT5yc3BfY29ucyA8Ci0gICAgICAgICAgICAgICAgICAgIHNpemVvZihtc2cpICsgbXNnLmxlbikK KyAgICAgICAgICAgICAgICBzaXplb2YobXNnKSArIG1zZy5sZW4pCiAgICAgICAgICAgICAgICAg YnJlYWs7CiAKICAgICAgICAgICAgIERFQlVHKCJNZXNzYWdlIGlzIGdvb2QuXG4iKTsKIAotICAg ICAgICAgICAgaWYobXNnLnR5cGUgPT0gWFNfV0FUQ0hfRVZFTlQpCi0gICAgICAgICAgICB7Ci0J CXN0cnVjdCB4ZW5idXNfZXZlbnQgKmV2ZW50ID0gbWFsbG9jKHNpemVvZigqZXZlbnQpICsgbXNn Lmxlbik7CisgICAgICAgICAgICBpZiAobXNnLnR5cGUgPT0gWFNfV0FUQ0hfRVZFTlQpIHsKKwkJ ICAgICAgICBzdHJ1Y3QgeGVuYnVzX2V2ZW50ICpldmVudCA9IG1hbGxvYyhzaXplb2YoKmV2ZW50 KSArIG1zZy5sZW4pOwogICAgICAgICAgICAgICAgIHhlbmJ1c19ldmVudF9xdWV1ZSAqZXZlbnRz ID0gTlVMTDsKLQkJY2hhciAqZGF0YSA9IChjaGFyKilldmVudCArIHNpemVvZigqZXZlbnQpOwor CQkgICAgICAgIGNoYXIgKmRhdGEgPSAoY2hhciopZXZlbnQgKyBzaXplb2YoKmV2ZW50KTsKICAg ICAgICAgICAgICAgICBzdHJ1Y3Qgd2F0Y2ggKndhdGNoOwogCi0gICAgICAgICAgICAgICAgbWVt Y3B5X2Zyb21fcmluZyh4ZW5zdG9yZV9idWYtPnJzcCwKLQkJICAgIGRhdGEsCisgICAgICAgICAg ICAgICAgbWVtY3B5X2Zyb21fcmluZyh4ZW5zdG9yZV9idWYtPnJzcCwgZGF0YSwKICAgICAgICAg ICAgICAgICAgICAgTUFTS19YRU5TVE9SRV9JRFgoeGVuc3RvcmVfYnVmLT5yc3BfY29ucyArIHNp emVvZihtc2cpKSwKICAgICAgICAgICAgICAgICAgICAgbXNnLmxlbik7CiAKLQkJZXZlbnQtPnBh dGggPSBkYXRhOwotCQlldmVudC0+dG9rZW4gPSBldmVudC0+cGF0aCArIHN0cmxlbihldmVudC0+ cGF0aCkgKyAxOworCQkgICAgICAgIGV2ZW50LT5wYXRoID0gZGF0YTsKKwkJICAgICAgICBldmVu dC0+dG9rZW4gPSBldmVudC0+cGF0aCArIHN0cmxlbihldmVudC0+cGF0aCkgKyAxOwogCiAgICAg ICAgICAgICAgICAgbWIoKTsKICAgICAgICAgICAgICAgICB4ZW5zdG9yZV9idWYtPnJzcF9jb25z ICs9IG1zZy5sZW4gKyBzaXplb2YobXNnKTsKQEAgLTI4OCwxNSArMjg1LDExIEBAIHN0YXRpYyB2 b2lkIHhlbmJ1c190aHJlYWRfZnVuYyh2b2lkICppZ24pCiAgICAgICAgICAgICAgICAgICAgIHBy aW50aygidW5leHBlY3RlZCB3YXRjaCB0b2tlbiAlc1xuIiwgZXZlbnQtPnRva2VuKTsKICAgICAg ICAgICAgICAgICAgICAgZnJlZShldmVudCk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgfQotCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7CisgICAgICAgICAgICB9IGVs c2UgewogICAgICAgICAgICAgICAgIHJlcV9pbmZvW21zZy5yZXFfaWRdLnJlcGx5ID0gbWFsbG9j KHNpemVvZihtc2cpICsgbXNnLmxlbik7Ci0gICAgICAgICAgICAgICAgbWVtY3B5X2Zyb21fcmlu Zyh4ZW5zdG9yZV9idWYtPnJzcCwKLSAgICAgICAgICAgICAgICAgICAgcmVxX2luZm9bbXNnLnJl cV9pZF0ucmVwbHksCi0gICAgICAgICAgICAgICAgICAgIE1BU0tfWEVOU1RPUkVfSURYKHhlbnN0 b3JlX2J1Zi0+cnNwX2NvbnMpLAotICAgICAgICAgICAgICAgICAgICBtc2cubGVuICsgc2l6ZW9m KG1zZykpOworICAgICAgICAgICAgICAgIG1lbWNweV9mcm9tX3JpbmcoeGVuc3RvcmVfYnVmLT5y c3AsIHJlcV9pbmZvW21zZy5yZXFfaWRdLnJlcGx5LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTUFTS19YRU5TVE9SRV9JRFgoeGVuc3RvcmVfYnVmLT5yc3BfY29ucyksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cubGVuICsgc2l6ZW9mKG1zZykpOwogICAg ICAgICAgICAgICAgIG1iKCk7CiAgICAgICAgICAgICAgICAgeGVuc3RvcmVfYnVmLT5yc3BfY29u cyArPSBtc2cubGVuICsgc2l6ZW9mKG1zZyk7CiAgICAgICAgICAgICAgICAgd2FrZV91cCgmcmVx X2luZm9bbXNnLnJlcV9pZF0ud2FpdHEpOwpAQCAtMzgwLDYgKzM3Myw1NSBAQCB2b2lkIGZpbmlf eGVuYnVzKHZvaWQpCiB7CiB9CiAKK3ZvaWQgc3VzcGVuZF94ZW5idXModm9pZCkKK3sKKyAgLyog Q2hlY2sgZm9yIGxpdmUgcmVxdWVzdHMgYW5kIHdhaXQgdW50aWwgdGhleSBmaW5pc2ggKi8KKyAg ICB3aGlsZSAoMSkKKyAgICB7CisgICAgICAgIHNwaW5fbG9jaygmcmVxX2xvY2spOworICAgICAg ICBpZiAobnJfbGl2ZV9yZXFzID09IDApCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgc3Bp bl91bmxvY2soJnJlcV9sb2NrKTsKKyAgICAgICAgd2FpdF9ldmVudChyZXFfd3EsIChucl9saXZl X3JlcXMgPT0gMCkpOworICAgIH0KKworICAgIG1hc2tfZXZ0Y2huKHhlbmJ1c19ldnRjaG4pOwor ICAgIHhlbnN0b3JlX2J1ZiA9IE5VTEw7CisgICAgc3Bpbl91bmxvY2soJnJlcV9sb2NrKTsKK30K Kwordm9pZCByZXN1bWVfeGVuYnVzKGludCBjYW5jZWxlZCkKK3sKKyAgICBjaGFyICptc2c7Cisg ICAgc3RydWN0IHdhdGNoICp3YXRjaDsKKyAgICBzdHJ1Y3Qgd3JpdGVfcmVxIHJlcVsyXTsKKyAg ICBzdHJ1Y3QgeHNkX3NvY2ttc2cgKnJlcDsKKworI2lmZGVmIENPTkZJR19QQVJBVklSVAorICAg IGdldF94ZW5idXMoJnN0YXJ0X2luZm8pOworI2Vsc2UKKyAgICBnZXRfeGVuYnVzKDApOworI2Vu ZGlmCisgICAgdW5tYXNrX2V2dGNobih4ZW5idXNfZXZ0Y2huKTsKKworICAgIGlmICghY2FuY2Vs ZWQpIHsKKyAgICAgICAgZm9yICh3YXRjaCA9IHdhdGNoZXM7IHdhdGNoOyB3YXRjaCA9IHdhdGNo LT5uZXh0KSB7CisgICAgICAgICAgICByZXFbMF0uZGF0YSA9IHdhdGNoLT5wYXRoOworICAgICAg ICAgICAgcmVxWzBdLmxlbiA9IHN0cmxlbih3YXRjaC0+cGF0aCkgKyAxOworICAgICAgICAgICAg cmVxWzFdLmRhdGEgPSB3YXRjaC0+dG9rZW47CisgICAgICAgICAgICByZXFbMV0ubGVuID0gc3Ry bGVuKHdhdGNoLT50b2tlbikgKyAxOworCisgICAgICAgICAgICByZXAgPSB4ZW5idXNfbXNnX3Jl cGx5KFhTX1dBVENILCBYQlRfTklMLCByZXEsIEFSUkFZX1NJWkUocmVxKSk7CisgICAgICAgICAg ICBtc2cgPSBlcnJtc2cocmVwKTsKKyAgICAgICAgICAgIGlmIChtc2cpCisgICAgICAgICAgICAg ICAgeHByaW50aygiZXJyb3Igb24gWFNfV0FUQ0g6ICVzXG4iLCBtc2cpOworICAgICAgICAgICAg ZnJlZShyZXApOworICAgICAgICB9CisgICAgfQorCisgICAgbm90aWZ5X3JlbW90ZV92aWFfZXZ0 Y2huKHhlbmJ1c19ldnRjaG4pOworfQorCiAvKiBTZW5kIGRhdGEgdG8geGVuYnVzLiAgVGhpcyBj YW4gYmxvY2suICBBbGwgb2YgdGhlIHJlcXVlc3RzIGFyZSBzZWVuCiAgICBieSB4ZW5idXMgYXMg aWYgc2VudCBhdG9taWNhbGx5LiAgVGhlIGhlYWRlciBpcyBhZGRlZAogICAgYXV0b21hdGljYWxs eSwgdXNpbmcgdHlwZSAldHlwZSwgcmVxX2lkICVyZXFfaWQsIGFuZCB0cmFuc19pZApAQCAtNTAx LDcgKzU0Myw3IEBAIHN0YXRpYyBjaGFyICplcnJtc2coc3RydWN0IHhzZF9zb2NrbXNnICpyZXAp CiAgICAgcmVzW3JlcC0+bGVuXSA9IDA7CiAgICAgZnJlZShyZXApOwogICAgIHJldHVybiByZXM7 Ci19CQorfQogCiAvKiBTZW5kIGEgZGVidWcgbWVzc2FnZSB0byB4ZW5idXMuICBDYW4gYmxvY2su ICovCiBzdGF0aWMgdm9pZCB4ZW5idXNfZGVidWdfbXNnKGNvbnN0IGNoYXIgKm1zZykKQEAgLTYw MSw2ICs2NDMsNyBAQCBjaGFyKiB4ZW5idXNfd2F0Y2hfcGF0aF90b2tlbiggeGVuYnVzX3RyYW5z YWN0aW9uX3QgeGJ0LCBjb25zdCBjaGFyICpwYXRoLCBjb25zdAogICAgICAgICBldmVudHMgPSAm eGVuYnVzX2V2ZW50czsKIAogICAgIHdhdGNoLT50b2tlbiA9IHN0cmR1cCh0b2tlbik7CisgICAg d2F0Y2gtPnBhdGggPSBzdHJkdXAocGF0aCk7CiAgICAgd2F0Y2gtPmV2ZW50cyA9IGV2ZW50czsK ICAgICB3YXRjaC0+bmV4dCA9IHdhdGNoZXM7CiAgICAgd2F0Y2hlcyA9IHdhdGNoOwpAQCAtNjM2 LDYgKzY3OSw3IEBAIGNoYXIqIHhlbmJ1c191bndhdGNoX3BhdGhfdG9rZW4oIHhlbmJ1c190cmFu c2FjdGlvbl90IHhidCwgY29uc3QgY2hhciAqcGF0aCwgY29uCiAgICAgZm9yIChwcmV2ID0gJndh dGNoZXMsIHdhdGNoID0gKnByZXY7IHdhdGNoOyBwcmV2ID0gJndhdGNoLT5uZXh0LCB3YXRjaCA9 ICpwcmV2KQogICAgICAgICBpZiAoIXN0cmNtcCh3YXRjaC0+dG9rZW4sIHRva2VuKSkgewogICAg ICAgICAgICAgZnJlZSh3YXRjaC0+dG9rZW4pOworICAgICAgICAgICAgZnJlZSh3YXRjaC0+cGF0 aCk7CiAgICAgICAgICAgICAqcHJldiA9IHdhdGNoLT5uZXh0OwogICAgICAgICAgICAgZnJlZSh3 YXRjaCk7CiAgICAgICAgICAgICBicmVhazsKLS0gCjIuMy4yIChBcHBsZSBHaXQtNTUpCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==