From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: [PATCH 6/6] libxl: support unmapping static shared memory areas during domain destruction Date: Wed, 23 Aug 2017 02:08:40 +0800 Message-ID: <20170822180840.20981-7-blackskygg@gmail.com> References: <20170822180840.20981-1-blackskygg@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170822180840.20981-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: Wei Liu , Julien Grall , Stefano Stabellini , Ian Jackson , Zhongze Liu List-Id: xen-devel@lists.xenproject.org QWRkIGxpYnhsX19zc2htX2RlbCB0byBVbm1hcCBzdGF0aWMgc2hhcmVkIG1lbW9yeSBhcmVhcyBt YXBwZWQgYnkKbGlieGxfX3NzaG1fYWRkIGR1cmluZyBkb21haW4gY3JlYXRpb24uIFRoZSB1bm1h cHBpbmcgcHJvY2VzcyBpczoKCiogRm9yIGEgbWFzdGVyOiBjaGVjayBpZiBpdCBzdGlsbCBoYXMg bGl2aW5nIHNsYXZlczogMSkgaWYgeWVzLCBtYXJrIGl0cwogIHN0YXR1cyBhcyAiem9tYmllIiwg YW5kIGRvbid0IGRlc3Ryb3kgdGhlIGluZm9ybWF0aW9uIHVuZGVyCiAgL2xvY2FsL3N0YXRpY19z aG07IDIpIGlmIG5vLCBzaW1wbHkgY2xlYW51cCByZWxhdGVkIHhzIGVudHJpZXMKKiBGb3IgYSBz bGF2ZTogdW5tYXAgdGhlIHNoYXJlZCBwYWdlcywgYW5kIGNsZWFudXAgcmVsYXRlZCB4cyBlbnRy aWVzLiBJZgogIHRoaXMgaXMgdGhlIG9ubHkgc2xhdmUsIGFuZCBpdCdzIG1hc3RlciBpcyBpbiB6 b21iaWUgc3RhdGUsIGFsc28gY2xlYW51cAogIHRoZSBtYXN0ZXIgZW50cmllcy4KClRoaXMgaXMg Zm9yIHRoZSBwcm9wb3NhbCAiQWxsb3cgc2V0dGluZyB1cCBzaGFyZWQgbWVtb3J5IGFyZWFzIGJl dHdlZW4gVk1zCmZyb20geGwgY29uZmlnIGZpbGUiIChzZWUgWzFdKS4KClsxXSBodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTctMDcvbXNnMDMw NDcuaHRtbAoKU2lnbmVkLW9mZi1ieTogWmhvbmd6ZSBMaXUgPGJsYWNrc2t5Z2dAZ21haWwuY29t PgoKQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxp bmlAa2VybmVsLm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNj OiB4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwotLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5j ICAgfCAgIDUgKysKIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggfCAgIDIgKwogdG9vbHMv bGlieGwvbGlieGxfc3NobS5jICAgICB8IDEyNSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMgYi90b29scy9saWJ4bC9saWJ4bF9k b21haW4uYwppbmRleCAwOGVjY2QwODJiLi43M2FjODU2ZmI0IDEwMDY0NAotLS0gYS90b29scy9s aWJ4bC9saWJ4bF9kb21haW4uYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kb21haW4uYwpAQCAt MTAyOCw2ICsxMDI4LDExIEBAIHZvaWQgbGlieGxfX2Rlc3Ryb3lfZG9taWQobGlieGxfX2VnYyAq ZWdjLCBsaWJ4bF9fZGVzdHJveV9kb21pZF9zdGF0ZSAqZGlzKQogICAgICAgICBnb3RvIG91dDsK ICAgICB9CiAKKyAgICByYyA9IGxpYnhsX19zc2htX2RlbChnYywgZG9taWQpOworICAgIGlmIChy YykgeworICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwgIkRlbGV0aW5nIHN0YXRpYyBzaG0gZmFp bGVkLiIpOworICAgIH0KKwogICAgIGlmIChsaWJ4bF9fZGV2aWNlX3BjaV9kZXN0cm95X2FsbChn YywgZG9taWQpIDwgMCkKICAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJQY2kgc2h1dGRvd24g ZmFpbGVkIik7CiAgICAgcmMgPSB4Y19kb21haW5fcGF1c2UoY3R4LT54Y2gsIGRvbWlkKTsKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29scy9saWJ4bC9saWJ4 bF9pbnRlcm5hbC5oCmluZGV4IDc0YmMwYWNiMjEuLjY0OGVhZWU4YzIgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJu YWwuaApAQCAtNDM2MSw2ICs0MzYxLDggQEAgc3RhdGljIGlubGluZSBib29sIGxpYnhsX19hY3Bp X2RlZmJvb2xfdmFsKGNvbnN0IGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpiX2luZm8KIF9oaWRk ZW4gaW50IGxpYnhsX19zc2htX2FkZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zdGF0aWNfc2htICpzc2htLCBpbnQgbGVu KTsKIAorX2hpZGRlbiBpbnQgbGlieGxfX3NzaG1fZGVsKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90 IGRvbWlkKTsKKwogX2hpZGRlbiBpbnQgbGlieGxfX3NzaG1fY2hlY2tfb3ZlcmxhcChsaWJ4bF9f Z2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobXMsIGludCBsZW4pOwogX2hpZGRlbiBpbnQgbGli eGxfX3NzaG1fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3NzaG0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3NzaG0u YwppbmRleCBlMTZjMjRjY2I5Li40MTdhNGNkMGE0IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9s aWJ4bF9zc2htLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfc3NobS5jCkBAIC03OSw2ICs3OSwx MzEgQEAgaW50IGxpYnhsX19zc2htX2NoZWNrX292ZXJsYXAobGlieGxfX2djICpnYywgdWludDMy X3QgZG9taWQsCiAgICAgcmV0dXJuIDA7CiB9CiAKKy8qIERlbGV0ZSBzc2htIG1hc3RlciBpbmZv bWF0aW9uIGZyb20geGVuc3RvcmUuIElmIHRoZXJlIGFyZSBzdGlsbCBsaXZpbmcKKyAqIHNsYXZl cywgbWFyayB0aGUgbWFzdGVyIGFzIGluIHpvbWJpZSBzdGF0ZSwgYnV0IGRvIG5vdCBkZWxldGUg aXQsCisgKiBhbmQgaXQgd2lsbCBiZSB0b3RhbGx5IGRlbGV0ZWQgbGF0ZXIgYWZ0ZXIgYWxsIHNs YXZlcyBhcmUgZ29uZSAqLworc3RhdGljIHZvaWQgbGlieGxfX3NzaG1fZGVsX21hc3RlcihsaWJ4 bF9fZ2MgKmdjLCB4c190cmFuc2FjdGlvbl90IHh0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCBkb21pZCwgY29uc3QgY2hhciAqaWQpCit7CisgICAgY2hhciAq c3NobV9wYXRoOworCisgICAgc3NobV9wYXRoID0gbGlieGxfX3hzX2dldF9zc2htcGF0aChnYywg aWQpOworCisgICAgLyogd2Uga25vdyB0aGF0IGRvbWlkIGNhbid0IGJlIGJvdGggYSBtYXN0ZXIg YW5kIGEgc2xhdmUgZm9yIG9uZSBpZAorICAgICAqIChlbmZvcmNlZCBpbiB0aGUgKl9hZGRfbWFz dGVyKCkgYW5kICpfYWRkX3NsYXZlKCkgY29kZSksCisgICAgICogc28gdGhlIG51bWJlciBvZiBz bGF2ZXMgd29uJ3QgY2hhbmdlIGR1cmluZyBpdGVyYXRpb24uIFNpbXBseSBjaGVjaworICAgICAq IHNzaG1fcGF0aC9zbGF2ZXMgdG8gdGVsbCBpZiB0aGVyZSBhcmUgc3RpbGwgbGl2aW5nIHNsYXZl cy4gKi8KKyAgICBpZiAobGlieGxfX3hzX3JlYWQoZ2MsIHh0LCBHQ1NQUklOVEYoIiVzL3NsYXZl cyIsIHNzaG1fcGF0aCkpKSB7CisgICAgICAgIFNTSE1fRVJST1IoZG9taWQsIGlkLAorICAgICAg ICAgICAgICAgICAgICJ0aGVyZSBhcmUgbGl2aW5nIHNsYXZlcywgd29uJ3QgYmUgdG90YWxseSBk ZXN0cm95ZWQiKTsKKworICAgICAgICBsaWJ4bF9feHNfd3JpdGVfY2hlY2tlZChnYywgeHQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvc3RhdHVzIiwgc3No bV9wYXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpvbWJpZSIpOworICAg IH0gZWxzZSB7CisgICAgICAgIGxpYnhsX194c19wYXRoX2NsZWFudXAoZ2MsIHh0LCBzc2htX3Bh dGgpOworICAgIH0KKworICAgIHJldHVybjsKK30KKworc3RhdGljIHZvaWQgbGlieGxfX3NzaG1f ZG9fdW5tYXAobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsIGNvbnN0IGNoYXIgKmlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYmVnaW4sIHVpbnQ2NF90 IGVuZCkKK3sKKyAgICBiZWdpbiA+Pj0gMTI7CisgICAgZW5kID4+PSAxMjsKKyAgICBmb3IgKDsg YmVnaW4gPCBlbmQ7ICsrYmVnaW4pIHsKKyAgICAgICAgaWYgKHhjX2RvbWFpbl9yZW1vdmVfZnJv bV9waHlzbWFwKENUWC0+eGNoLCBkb21pZCwgYmVnaW4pKSB7CisgICAgICAgICAgICBTU0hNX0VS Uk9SKGRvbWlkLCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgInVuYWJsZSB0byB1bm1hcCBz aGFyZWQgcGFnZSBhdCAweCUiUFJJeDY0Ii4iLAorICAgICAgICAgICAgICAgICAgICAgICBiZWdp bik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGxpYnhsX19zc2htX2RlbF9z bGF2ZShsaWJ4bF9fZ2MgKmdjLCB4c190cmFuc2FjdGlvbl90IHh0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLCBjb25zdCBjaGFyICppZCwgYm9vbCBp c3JldHJ5KQoreworICAgIGNoYXIgKnNzaG1fcGF0aCwgKnNsYXZlX3BhdGg7CisgICAgY2hhciAq bWFzdGVyX3N0YXQsICptZG9taWRfc3RyLCAqYmVnaW5fc3RyLCAqZW5kX3N0cjsKKyAgICB1aW50 NjRfdCBiZWdpbiwgZW5kOworICAgIHVpbnQzMl90IG1hc3Rlcl9kb21pZDsKKworICAgIHNzaG1f cGF0aCA9IGxpYnhsX194c19nZXRfc3NobXBhdGgoZ2MsIGlkKTsKKyAgICBzbGF2ZV9wYXRoID0g R0NTUFJJTlRGKCIlcy9zbGF2ZXMvJSJQUkl1MzIsIHNzaG1fcGF0aCwgZG9taWQpOworCisgICAg YmVnaW5fc3RyID0gbGlieGxfX3hzX3JlYWQoZ2MsIHh0LCBHQ1NQUklOVEYoIiVzL2JlZ2luIiwg c2xhdmVfcGF0aCkpOworICAgIGVuZF9zdHIgPSBsaWJ4bF9feHNfcmVhZChnYywgeHQsIEdDU1BS SU5URigiJXMvZW5kIiwgc2xhdmVfcGF0aCkpOworICAgIGJlZ2luID0gc3RydG91bGwoYmVnaW5f c3RyLCBOVUxMLCAxNik7CisgICAgZW5kID0gc3RydG91bGwoZW5kX3N0ciwgTlVMTCwgMTYpOwor CisgICAgLyogQXZvaWQgY2FsbGluZyBkb191bm1hcCBtYW55IHRpbWVzIGluIGNhc2Ugb2YgeHMg dHJhbnNhY3Rpb24gcmV0cnkgKi8KKyAgICBpZiAoIWlzcmV0cnkpCisgICAgICAgIGxpYnhsX19z c2htX2RvX3VubWFwKGdjLCBkb21pZCwgaWQsIGJlZ2luLCBlbmQpOworCisgICAgbGlieGxfX3hz X3BhdGhfY2xlYW51cChnYywgeHQsIHNsYXZlX3BhdGgpOworCisgICAgLyogY2hlY2sgaWYgbWFz dGVyIGlzIGluIHpvbWJpZSBzdGF0ZSBhbmQgaGFzIG5vIHNsYXZlcyBub3csCisgICAgICogaWYg eWVzLCBub3cgaXQncyB0aGUgdGltZSB0byBkZXN0cm95IGl0ICovCisgICAgbWFzdGVyX3N0YXQg PSBsaWJ4bF9feHNfcmVhZChnYywgeHQsIEdDU1BSSU5URigiJXMvc3RhdHVzIiwgc3NobV9wYXRo KSk7CisgICAgaWYgKCFzdHJuY21wKG1hc3Rlcl9zdGF0LCAiem9tYmllIiwgNikgJiYKKyAgICAg ICAgIWxpYnhsX194c19yZWFkKGdjLCB4dCwgR0NTUFJJTlRGKCIlcy9zbGF2ZXMiLCBzc2htX3Bh dGgpKSkKKyAgICB7CisgICAgICAgIG1kb21pZF9zdHIgPSBsaWJ4bF9feHNfcmVhZChnYywgeHQs IEdDU1BSSU5URigiJXMvbWFzdGVyIiwgc3NobV9wYXRoKSk7CisgICAgICAgIG1hc3Rlcl9kb21p ZCA9IHN0cnRvdWwobWRvbWlkX3N0ciwgTlVMTCwgMTApOworICAgICAgICBsaWJ4bF9fc3NobV9k ZWxfbWFzdGVyKGdjLCB4dCwgbWFzdGVyX2RvbWlkLCBpZCk7CisgICAgfQorfQorCisvKiBEZWxl dGUgc3RhdGljX3NobSBlbnRyaWVzIGluIHRoZSB4ZW5zb3RyZS4gKi8KK2ludCBsaWJ4bF9fc3No bV9kZWwobGlieGxfX2djICpnYywgIHVpbnQzMl90IGRvbWlkKQoreworICAgIGludCByYywgaTsK KyAgICBib29sIGlzcmV0cnk7CisgICAgeHNfdHJhbnNhY3Rpb25fdCB4dCA9IFhCVF9OVUxMOwor ICAgIGNoYXIgKmRvbV9wYXRoLCAqZG9tX3NzaG1fcGF0aDsKKyAgICBjb25zdCBjaGFyICpyb2xl OworICAgIGNoYXIgKipzc2htX2VudHM7CisgICAgdW5zaWduZWQgaW50IHNzaG1fbnVtOworCisg ICAgZG9tX3BhdGggPSBsaWJ4bF9feHNfZ2V0X2RvbXBhdGgoZ2MsIGRvbWlkKTsKKyAgICBkb21f c3NobV9wYXRoID0gR0NTUFJJTlRGKCIlcy9zdGF0aWNfc2htIiwgZG9tX3BhdGgpOworCisgICAg aXNyZXRyeSA9IGZhbHNlOworICAgIGZvciAoOzspIHsKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNf dHJhbnNhY3Rpb25fc3RhcnQoZ2MsICZ4dCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisK KyAgICAgICAgaWYgKGxpYnhsX194c19yZWFkKGdjLCB4dCwgZG9tX3NzaG1fcGF0aCkpIHsKKyAg ICAgICAgICAgIHNzaG1fZW50cyA9IGxpYnhsX194c19kaXJlY3RvcnkoZ2MsIHh0LCBkb21fc3No bV9wYXRoLCAmc3NobV9udW0pOworICAgICAgICAgICAgaWYgKCFzc2htX2VudHMpIGNvbnRpbnVl OworCisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3NobV9udW07ICsraSkgeworICAgICAg ICAgICAgICAgIHJvbGUgPSBsaWJ4bF9feHNfcmVhZChnYywgeHQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvJXMvcm9sZSIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21fc3NobV9wYXRoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NobV9lbnRzW2ld KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KHJvbGUpOworICAgICAgICAgICAgICAgIGlmICgh c3RybmNtcChyb2xlLCAic2xhdmUiLCA1KSkgeworICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f c3NobV9kZWxfc2xhdmUoZ2MsIHh0LCBkb21pZCwgc3NobV9lbnRzW2ldLCBpc3JldHJ5KTsKKyAg ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3NobV9k ZWxfbWFzdGVyKGdjLCB4dCwgZG9taWQsIHNzaG1fZW50c1tpXSk7CisgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfdHJh bnNhY3Rpb25fY29tbWl0KGdjLCAmeHQpOworICAgICAgICBpZiAoIXJjKSBicmVhazsKKyAgICAg ICAgaWYgKHJjIDwgMCkgZ290byBvdXQ7CisJIGlzcmV0cnkgPSB0cnVlOworICAgIH0KKworICAg IHJjID0gMDsKK291dDoKKyAgICBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fYWJvcnQoZ2MsICZ4dCk7 CisgICAgcmV0dXJuIHJjOworfQorCiAvKiBUaGUgY2FsbGVyIGhhdmUgdG8gZ3VhcmVudGVlIHRo YXQgc3NobS0+YmVnaW4gPCBzc2htLT5lbmQgKi8KIHN0YXRpYyBpbnQgbGlieGxfX3NzaG1fZG9f bWFwKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IG1pZCwgdWludDMyX3Qgc2lkLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobSwKLS0gCjIuMTQuMAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=