From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: [PATCH v3 5/7] libxl: support unmapping static shared memory areas during domain destruction Date: Thu, 19 Oct 2017 10:36:33 +0800 Message-ID: <20171019023635.19812-6-blackskygg@gmail.com> References: <20171019023635.19812-1-blackskygg@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171019023635.19812-1-blackskygg@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu , Zhongze Liu List-Id: xen-devel@lists.xenproject.org QWRkIGxpYnhsX19zc2htX2RlbCB0byB1bm1hcCBzdGF0aWMgc2hhcmVkIG1lbW9yeSBhcmVhcyBt YXBwZWQgYnkKbGlieGxfX3NzaG1fYWRkIGR1cmluZyBkb21haW4gY3JlYXRpb24uIFRoZSB1bm1h cHBpbmcgcHJvY2VzcyBpczoKCiogRm9yIGEgbWFzdGVyOiBkZWNyZWFzZSB0aGUgcmVmY291bnQg b2YgdGhlIHNzaG0gcmVnaW9uLCBpZiB0aGUgcmVmY291bnQKICByZWFjaGVzIDAsIGNsZWFudXAg dGhlIHdob2xlIHNzaG0gcGF0aC4KKiBGb3IgYSBzbGF2ZTogdW5tYXAgdGhlIHNoYXJlZCBwYWdl cywgYW5kIGNsZWFudXAgcmVsYXRlZCB4cyBlbnRyaWVzLgogIGRlY3JlYXNlIHRoZSByZWZjb3Vu dCBvZiB0aGUgc3NobSByZWdpb24sIGlmIHRoZSByZWZjb3VudCByZWFjaGVzIDAsCiAgY2xlYW51 cCB0aGUgd2hvbGUgc3NobSBwYXRoLgoKVGhpcyBpcyBmb3IgdGhlIHByb3Bvc2FsICJBbGxvdyBz ZXR0aW5nIHVwIHNoYXJlZCBtZW1vcnkgYXJlYXMgYmV0d2VlbiBWTXMKZnJvbSB4bCBjb25maWcg ZmlsZSIgKHNlZSBbMV0pLgoKWzFdIGh0dHBzOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1s L3hlbi1kZXZlbC8yMDE3LTA4L21zZzAzMjQyLmh0bWwKClNpZ25lZC1vZmYtYnk6IFpob25nemUg TGl1IDxibGFja3NreWdnQGdtYWlsLmNvbT4KCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25A ZXUuY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBTdGVm YW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwg PGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKLS0tCiB0 b29scy9saWJ4bC9saWJ4bF9kb21haW4uYyAgIHwgICA1ICsrKwogdG9vbHMvbGlieGwvbGlieGxf aW50ZXJuYWwuaCB8ICAgMiArCiB0b29scy9saWJ4bC9saWJ4bF9zc2htLmMgICAgIHwgMTA1ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMTEyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb21h aW4uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jCmluZGV4IDgxNGY4MTI4YTEuLmNlOTAz ODcxNzMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jCisrKyBiL3Rvb2xz L2xpYnhsL2xpYnhsX2RvbWFpbi5jCkBAIC0xMDI2LDYgKzEwMjYsMTEgQEAgdm9pZCBsaWJ4bF9f ZGVzdHJveV9kb21pZChsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19kZXN0cm95X2RvbWlkX3N0YXRl ICpkaXMpCiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAorICAgIHJjID0gbGlieGxfX3NzaG1f ZGVsKGdjLCBkb21pZCk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIExPR0QoRVJST1IsIGRvbWlk LCAiRGVsZXRpbmcgc3RhdGljIHNobSBmYWlsZWQuIik7CisgICAgfQorCiAgICAgaWYgKGxpYnhs X19kZXZpY2VfcGNpX2Rlc3Ryb3lfYWxsKGdjLCBkb21pZCkgPCAwKQogICAgICAgICBMT0dEKEVS Uk9SLCBkb21pZCwgIlBjaSBzaHV0ZG93biBmYWlsZWQiKTsKICAgICByYyA9IHhjX2RvbWFpbl9w YXVzZShjdHgtPnhjaCwgZG9taWQpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggZmMyODE5MTYyNS4u ZGM1OTM3ZTcxMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysg Yi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC00MzU4LDYgKzQzNTgsOCBAQCBzdGF0 aWMgaW5saW5lIGJvb2wgbGlieGxfX3N0cmluZ19pc19kZWZhdWx0KGNoYXIgKipzKQogX2hpZGRl biBpbnQgbGlieGxfX3NzaG1fYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3N0YXRpY19zaG0gKnNzaG0sIGludCBsZW4p OwogCitfaGlkZGVuIGludCBsaWJ4bF9fc3NobV9kZWwobGlieGxfX2djICpnYywgdWludDMyX3Qg ZG9taWQpOworCiBfaGlkZGVuIGludCBsaWJ4bF9fc3NobV9jaGVja19vdmVybGFwKGxpYnhsX19n YyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9zdGF0aWNfc2htICpzc2htcywgaW50IGxlbik7CiBfaGlkZGVuIGludCBsaWJ4 bF9fc3NobV9zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLApkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGwvbGlieGxfc3NobS5jIGIvdG9vbHMvbGlieGwvbGlieGxfc3NobS5j CmluZGV4IGIyMGMzN2RhYjguLmY5NzdjN2VjNWIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xp YnhsX3NzaG0uYworKysgYi90b29scy9saWJ4bC9saWJ4bF9zc2htLmMKQEAgLTg2LDYgKzg2LDEx MSBAQCBpbnQgbGlieGxfX3NzaG1fY2hlY2tfb3ZlcmxhcChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJf dCBkb21pZCwKICAgICByZXR1cm4gMDsKIH0KIAorLyogRGVjcmVhc2UgdGhlIHJlZmNvdW50IG9m IGFuIHNzaG0uIFdoZW4gcmVmY291bnQgcmVhY2hlcyAwLAorICogY2xlYW4gdXAgdGhlIHdob2xl IHNzaG0gcGF0aCAqLworc3RhdGljIHZvaWQgbGlieGxfX3NzaG1fZGVjcmVmKGxpYnhsX19nYyAq Z2MsIHhzX3RyYW5zYWN0aW9uX3QgeHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqc3NobV9wYXRoKQoreworICAgIGludCBjb3VudDsKKyAgICBjb25zdCBjaGFy ICpjb3VudF9wYXRoLCAqY291bnRfc3RyaW5nOworCisgICAgY291bnRfcGF0aCA9IEdDU1BSSU5U RigiJXMvdXNlcnMiLCBzc2htX3BhdGgpOworICAgIGlmIChsaWJ4bF9feHNfcmVhZF9jaGVja2Vk KGdjLCB4dCwgY291bnRfcGF0aCwgJmNvdW50X3N0cmluZykpCisgICAgICAgIHJldHVybjsKKyAg ICBjb3VudCA9IGF0b2koY291bnRfc3RyaW5nKTsKKworICAgIGlmICgtLWNvdW50ID09IDApIHsK KyAgICAgICAgbGlieGxfX3hzX3BhdGhfY2xlYW51cChnYywgeHQsIHNzaG1fcGF0aCk7CisgICAg ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb3VudF9zdHJpbmcgPSBHQ1NQUklOVEYoIiVkIiwg Y291bnQpOworICAgIGxpYnhsX194c193cml0ZV9jaGVja2VkKGdjLCB4dCwgY291bnRfcGF0aCwg Y291bnRfc3RyaW5nKTsKKworICAgIHJldHVybjsKK30KKworc3RhdGljIHZvaWQgbGlieGxfX3Nz aG1fZG9fdW5tYXAobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsIGNvbnN0IGNoYXIgKmlk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYmVnaW4sIHVpbnQ2 NF90IGVuZCkKK3sKKyAgICBiZWdpbiA+Pj0gWENfUEFHRV9TSElGVDsKKyAgICBlbmQgPj49IFhD X1BBR0VfU0hJRlQ7CisgICAgZm9yICg7IGJlZ2luIDwgZW5kOyArK2JlZ2luKSB7CisgICAgICAg IGlmICh4Y19kb21haW5fcmVtb3ZlX2Zyb21fcGh5c21hcChDVFgtPnhjaCwgZG9taWQsIGJlZ2lu KSkgeworICAgICAgICAgICAgU1NITV9FUlJPUihkb21pZCwgaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICJ1bmFibGUgdG8gdW5tYXAgc2hhcmVkIHBhZ2UgYXQgMHglIlBSSXg2NCIuIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgYmVnaW4pOworICAgICAgICB9CisgICAgfQorfQorCitzdGF0 aWMgdm9pZCBsaWJ4bF9fc3NobV9kZWxfc2xhdmUobGlieGxfX2djICpnYywgeHNfdHJhbnNhY3Rp b25fdCB4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21p ZCwgY29uc3QgY2hhciAqaWQsIGJvb2wgaXNyZXRyeSkKK3sKKyAgICBjb25zdCBjaGFyICpzbGF2 ZV9wYXRoLCAqYmVnaW5fc3RyLCAqZW5kX3N0cjsKKyAgICB1aW50NjRfdCBiZWdpbiwgZW5kOwor CisgICAgc2xhdmVfcGF0aCA9IEdDU1BSSU5URigiJXMvc2xhdmVzLyUiUFJJdTMyLCBTU0hNX1BB VEgoaWQpLCBkb21pZCk7CisKKyAgICBiZWdpbl9zdHIgPSBsaWJ4bF9feHNfcmVhZChnYywgeHQs IEdDU1BSSU5URigiJXMvYmVnaW4iLCBzbGF2ZV9wYXRoKSk7CisgICAgZW5kX3N0ciA9IGxpYnhs X194c19yZWFkKGdjLCB4dCwgR0NTUFJJTlRGKCIlcy9lbmQiLCBzbGF2ZV9wYXRoKSk7CisgICAg YmVnaW4gPSBzdHJ0b3VsbChiZWdpbl9zdHIsIE5VTEwsIDE2KTsKKyAgICBlbmQgPSBzdHJ0b3Vs bChlbmRfc3RyLCBOVUxMLCAxNik7CisKKyAgICAvKiBBdm9pZCBjYWxsaW5nIGRvX3VubWFwIG1h bnkgdGltZXMgaW4gY2FzZSBvZiB4cyB0cmFuc2FjdGlvbiByZXRyeSAqLworICAgIGlmICghaXNy ZXRyeSkKKyAgICAgICAgbGlieGxfX3NzaG1fZG9fdW5tYXAoZ2MsIGRvbWlkLCBpZCwgYmVnaW4s IGVuZCk7CisKKyAgICBsaWJ4bF9feHNfcGF0aF9jbGVhbnVwKGdjLCB4dCwgc2xhdmVfcGF0aCk7 Cit9CisKKy8qIERlbGV0ZSBzdGF0aWNfc2htIGVudHJpZXMgaW4gdGhlIHhlbnNvdHJlLiAqLwor aW50IGxpYnhsX19zc2htX2RlbChsaWJ4bF9fZ2MgKmdjLCAgdWludDMyX3QgZG9taWQpCit7Cisg ICAgaW50IHJjLCBpOworICAgIGJvb2wgaXNyZXRyeTsKKyAgICB4c190cmFuc2FjdGlvbl90IHh0 ID0gWEJUX05VTEw7CisgICAgY29uc3QgY2hhciAqZG9tX3BhdGgsICpkb21fc3NobV9wYXRoLCAq cm9sZTsKKyAgICBjaGFyICoqc3NobV9lbnRzOworICAgIHVuc2lnbmVkIGludCBzc2htX251bTsK KworICAgIGRvbV9wYXRoID0gbGlieGxfX3hzX2dldF9kb21wYXRoKGdjLCBkb21pZCk7CisgICAg ZG9tX3NzaG1fcGF0aCA9IEdDU1BSSU5URigiJXMvc3RhdGljX3NobSIsIGRvbV9wYXRoKTsKKwor ICAgIGlzcmV0cnkgPSBmYWxzZTsKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHJjID0gbGlieGxf X3hzX3RyYW5zYWN0aW9uX3N0YXJ0KGdjLCAmeHQpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0 OworCisgICAgICAgIGlmIChsaWJ4bF9feHNfcmVhZChnYywgeHQsIGRvbV9zc2htX3BhdGgpKSB7 CisgICAgICAgICAgICBzc2htX2VudHMgPSBsaWJ4bF9feHNfZGlyZWN0b3J5KGdjLCB4dCwgZG9t X3NzaG1fcGF0aCwgJnNzaG1fbnVtKTsKKyAgICAgICAgICAgIGlmICghc3NobV9lbnRzKSBjb250 aW51ZTsKKworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNzaG1fbnVtOyArK2kpIHsKKyAg ICAgICAgICAgICAgICByb2xlID0gbGlieGxfX3hzX3JlYWQoZ2MsIHh0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzLyVzL3JvbGUiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tX3NzaG1fcGF0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzaG1fZW50 c1tpXSkpOworICAgICAgICAgICAgICAgIGFzc2VydChyb2xlKTsKKyAgICAgICAgICAgICAgICBp ZiAoIXN0cm5jbXAocm9sZSwgInNsYXZlIiwgNSkpCisgICAgICAgICAgICAgICAgICAgIGxpYnhs X19zc2htX2RlbF9zbGF2ZShnYywgeHQsIGRvbWlkLCBzc2htX2VudHNbaV0sIGlzcmV0cnkpOwor CisgICAgICAgICAgICAgICAgbGlieGxfX3NzaG1fZGVjcmVmKGdjLCB4dCwgU1NITV9QQVRIKHNz aG1fZW50c1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmMgPSBs aWJ4bF9feHNfdHJhbnNhY3Rpb25fY29tbWl0KGdjLCAmeHQpOworICAgICAgICBpZiAoIXJjKSBi cmVhazsKKyAgICAgICAgaWYgKHJjIDwgMCkgZ290byBvdXQ7CisgICAgICAgICBpc3JldHJ5ID0g dHJ1ZTsKKyAgICB9CisKKyAgICByYyA9IDA7CitvdXQ6CisgICAgbGlieGxfX3hzX3RyYW5zYWN0 aW9uX2Fib3J0KGdjLCAmeHQpOworICAgIHJldHVybiByYzsKK30KKwogLyogICBsaWJ4bF9fc3No bV9kb19tYXAgLS0gbWFwIHBhZ2VzIGludG8gc2xhdmUncyBwaHlzbWFwCiAgKgogICogICBUaGlz IGZ1bmN0aW9ucyBtYXBzCi0tIAoyLjE0LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK