From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: [PATCH v2 6/6] libxl: support unmapping static shared memory areas during domain destruction Date: Sun, 27 Aug 2017 16:36:15 +0800 Message-ID: <20170827083615.15712-7-blackskygg@gmail.com> References: <20170827083615.15712-1-blackskygg@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170827083615.15712-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 QWRkIGxpYnhsX19zc2htX2RlbCB0byB1bm1hcCBzdGF0aWMgc2hhcmVkIG1lbW9yeSBhcmVhcyBt YXBwZWQgYnkKbGlieGxfX3NzaG1fYWRkIGR1cmluZyBkb21haW4gY3JlYXRpb24uIFRoZSB1bm1h cHBpbmcgcHJvY2VzcyBpczoKCiogRm9yIGEgbWFzdGVyOiBkZWNyZWFzZSB0aGUgcmVmY291bnQg b2YgdGhlIHNzaG0gcmVnaW9uLCBpZiB0aGUgcmVmY291bnQKICByZWFjaGVzIDAsIGNsZWFudXAg dGhlIHdob2xlIHNzaG0gcGF0aC4KKiBGb3IgYSBzbGF2ZTogdW5tYXAgdGhlIHNoYXJlZCBwYWdl cywgYW5kIGNsZWFudXAgcmVsYXRlZCB4cyBlbnRyaWVzLgogIGRlY3JlYXNlIHRoZSByZWZjb3Vu dCBvZiB0aGUgc3NobSByZWdpb24sIGlmIHRoZSByZWZjb3VudCByZWFjaGVzIDAsCiAgY2xlYW51 cCB0aGUgd2hvbGUgc3NobSBwYXRoLgoKVGhpcyBpcyBmb3IgdGhlIHByb3Bvc2FsICJBbGxvdyBz ZXR0aW5nIHVwIHNoYXJlZCBtZW1vcnkgYXJlYXMgYmV0d2VlbiBWTXMKZnJvbSB4bCBjb25maWcg ZmlsZSIgKHNlZSBbMV0pLgoKWzFdIGh0dHBzOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1s L3hlbi1kZXZlbC8yMDE3LTA4L21zZzAzMjQyLmh0bWwKClNpZ25lZC1vZmYtYnk6IFpob25nemUg TGl1IDxibGFja3NreWdnQGdtYWlsLmNvbT4KCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25A ZXUuY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBTdGVm YW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwg PGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKLS0tCnYy OgogICogdXNlIHRoZSBwcmVkZWZpbmVkIFhDX1BBR0VfU0laRSBpbnN0ZWFkIG9mIGhhcmRjb2Rp bmcgMTIKICAqIHJlZmNvdW50aW5nIHRoZSBub2RlCi0tLQogdG9vbHMvbGlieGwvbGlieGxfZG9t YWluLmMgICB8ICAgNSArKysKIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggfCAgIDIgKwog dG9vbHMvbGlieGwvbGlieGxfc3NobS5jICAgICB8IDEwNSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMgYi90b29scy9saWJ4bC9s aWJ4bF9kb21haW4uYwppbmRleCAwOGVjY2QwODJiLi43M2FjODU2ZmI0IDEwMDY0NAotLS0gYS90 b29scy9saWJ4bC9saWJ4bF9kb21haW4uYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kb21haW4u YwpAQCAtMTAyOCw2ICsxMDI4LDExIEBAIHZvaWQgbGlieGxfX2Rlc3Ryb3lfZG9taWQobGlieGxf X2VnYyAqZWdjLCBsaWJ4bF9fZGVzdHJveV9kb21pZF9zdGF0ZSAqZGlzKQogICAgICAgICBnb3Rv IG91dDsKICAgICB9CiAKKyAgICByYyA9IGxpYnhsX19zc2htX2RlbChnYywgZG9taWQpOworICAg IGlmIChyYykgeworICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwgIkRlbGV0aW5nIHN0YXRpYyBz aG0gZmFpbGVkLiIpOworICAgIH0KKwogICAgIGlmIChsaWJ4bF9fZGV2aWNlX3BjaV9kZXN0cm95 X2FsbChnYywgZG9taWQpIDwgMCkKICAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJQY2kgc2h1 dGRvd24gZmFpbGVkIik7CiAgICAgcmMgPSB4Y19kb21haW5fcGF1c2UoY3R4LT54Y2gsIGRvbWlk KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCmluZGV4IDdhYjJkNDBjNDkuLjczMTgyM2RjMWUgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxf aW50ZXJuYWwuaApAQCAtNDM2MCw2ICs0MzYwLDggQEAgc3RhdGljIGlubGluZSBib29sIGxpYnhs X19hY3BpX2RlZmJvb2xfdmFsKGNvbnN0IGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpiX2luZm8K IF9oaWRkZW4gaW50IGxpYnhsX19zc2htX2FkZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21p ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zdGF0aWNfc2htICpzc2htLCBp bnQgbGVuKTsKIAorX2hpZGRlbiBpbnQgbGlieGxfX3NzaG1fZGVsKGxpYnhsX19nYyAqZ2MsIHVp bnQzMl90IGRvbWlkKTsKKwogX2hpZGRlbiBpbnQgbGlieGxfX3NzaG1fY2hlY2tfb3ZlcmxhcChs aWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobXMsIGludCBsZW4pOwogX2hpZGRlbiBp bnQgbGlieGxfX3NzaG1fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3NzaG0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhs X3NzaG0uYwppbmRleCBhNDA5MWEzMDU2Li5lZGZkZTBhOTA1IDEwMDY0NAotLS0gYS90b29scy9s aWJ4bC9saWJ4bF9zc2htLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfc3NobS5jCkBAIC04Niw2 ICs4NiwxMTEgQEAgaW50IGxpYnhsX19zc2htX2NoZWNrX292ZXJsYXAobGlieGxfX2djICpnYywg dWludDMyX3QgZG9taWQsCiAgICAgcmV0dXJuIDA7CiB9CiAKKy8qIERlY3JlYXNlIHRoZSByZWZj b3VudCBvZiBhbiBzc2htLiBXaGVuIHJlZmNvdW50IHJlYWNoZXMgMCwKKyAqIGNsZWFuIHVwIHRo ZSB3aG9sZSBzc2htIHBhdGggKi8KK3N0YXRpYyB2b2lkIGxpYnhsX19zc2htX2RlY3JlZihsaWJ4 bF9fZ2MgKmdjLCB4c190cmFuc2FjdGlvbl90IHh0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKnNzaG1fcGF0aCkKK3sKKyAgICBpbnQgY291bnQ7CisgICAgY29u c3QgY2hhciAqY291bnRfcGF0aCwgKmNvdW50X3N0cmluZzsKKworICAgIGNvdW50X3BhdGggPSBH Q1NQUklOVEYoIiVzL3VzZXJzIiwgc3NobV9wYXRoKTsKKyAgICBpZiAobGlieGxfX3hzX3JlYWRf Y2hlY2tlZChnYywgeHQsIGNvdW50X3BhdGgsICZjb3VudF9zdHJpbmcpKQorICAgICAgICByZXR1 cm47CisgICAgY291bnQgPSBhdG9pKGNvdW50X3N0cmluZyk7CisKKyAgICBpZiAoLS1jb3VudCA9 PSAwKSB7CisgICAgICAgIGxpYnhsX194c19wYXRoX2NsZWFudXAoZ2MsIHh0LCBzc2htX3BhdGgp OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY291bnRfc3RyaW5nID0gR0NTUFJJTlRG KCIlZCIsIGNvdW50KTsKKyAgICBsaWJ4bF9feHNfd3JpdGVfY2hlY2tlZChnYywgeHQsIGNvdW50 X3BhdGgsIGNvdW50X3N0cmluZyk7CisKKyAgICByZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIGxp YnhsX19zc2htX2RvX3VubWFwKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLCBjb25zdCBj aGFyICppZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGJlZ2lu LCB1aW50NjRfdCBlbmQpCit7CisgICAgYmVnaW4gPj49IFhDX1BBR0VfU0hJRlQ7CisgICAgZW5k ID4+PSBYQ19QQUdFX1NISUZUOworICAgIGZvciAoOyBiZWdpbiA8IGVuZDsgKytiZWdpbikgewor ICAgICAgICBpZiAoeGNfZG9tYWluX3JlbW92ZV9mcm9tX3BoeXNtYXAoQ1RYLT54Y2gsIGRvbWlk LCBiZWdpbikpIHsKKyAgICAgICAgICAgIFNTSE1fRVJST1IoZG9taWQsIGlkLAorICAgICAgICAg ICAgICAgICAgICAgICAidW5hYmxlIHRvIHVubWFwIHNoYXJlZCBwYWdlIGF0IDB4JSJQUkl4NjQi LiIsCisgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luKTsKKyAgICAgICAgfQorICAgIH0KK30K Kworc3RhdGljIHZvaWQgbGlieGxfX3NzaG1fZGVsX3NsYXZlKGxpYnhsX19nYyAqZ2MsIHhzX3Ry YW5zYWN0aW9uX3QgeHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgZG9taWQsIGNvbnN0IGNoYXIgKmlkLCBib29sIGlzcmV0cnkpCit7CisgICAgY29uc3QgY2hh ciAqc2xhdmVfcGF0aCwgKmJlZ2luX3N0ciwgKmVuZF9zdHI7CisgICAgdWludDY0X3QgYmVnaW4s IGVuZDsKKworICAgIHNsYXZlX3BhdGggPSBHQ1NQUklOVEYoIiVzL3NsYXZlcy8lIlBSSXUzMiwg U1NITV9QQVRIKGlkKSwgZG9taWQpOworCisgICAgYmVnaW5fc3RyID0gbGlieGxfX3hzX3JlYWQo Z2MsIHh0LCBHQ1NQUklOVEYoIiVzL2JlZ2luIiwgc2xhdmVfcGF0aCkpOworICAgIGVuZF9zdHIg PSBsaWJ4bF9feHNfcmVhZChnYywgeHQsIEdDU1BSSU5URigiJXMvZW5kIiwgc2xhdmVfcGF0aCkp OworICAgIGJlZ2luID0gc3RydG91bGwoYmVnaW5fc3RyLCBOVUxMLCAxNik7CisgICAgZW5kID0g c3RydG91bGwoZW5kX3N0ciwgTlVMTCwgMTYpOworCisgICAgLyogQXZvaWQgY2FsbGluZyBkb191 bm1hcCBtYW55IHRpbWVzIGluIGNhc2Ugb2YgeHMgdHJhbnNhY3Rpb24gcmV0cnkgKi8KKyAgICBp ZiAoIWlzcmV0cnkpCisgICAgICAgIGxpYnhsX19zc2htX2RvX3VubWFwKGdjLCBkb21pZCwgaWQs IGJlZ2luLCBlbmQpOworCisgICAgbGlieGxfX3hzX3BhdGhfY2xlYW51cChnYywgeHQsIHNsYXZl X3BhdGgpOworfQorCisvKiBEZWxldGUgc3RhdGljX3NobSBlbnRyaWVzIGluIHRoZSB4ZW5zb3Ry ZS4gKi8KK2ludCBsaWJ4bF9fc3NobV9kZWwobGlieGxfX2djICpnYywgIHVpbnQzMl90IGRvbWlk KQoreworICAgIGludCByYywgaTsKKyAgICBib29sIGlzcmV0cnk7CisgICAgeHNfdHJhbnNhY3Rp b25fdCB4dCA9IFhCVF9OVUxMOworICAgIGNvbnN0IGNoYXIgKmRvbV9wYXRoLCAqZG9tX3NzaG1f cGF0aCwgKnJvbGU7CisgICAgY2hhciAqKnNzaG1fZW50czsKKyAgICB1bnNpZ25lZCBpbnQgc3No bV9udW07CisKKyAgICBkb21fcGF0aCA9IGxpYnhsX194c19nZXRfZG9tcGF0aChnYywgZG9taWQp OworICAgIGRvbV9zc2htX3BhdGggPSBHQ1NQUklOVEYoIiVzL3N0YXRpY19zaG0iLCBkb21fcGF0 aCk7CisKKyAgICBpc3JldHJ5ID0gZmFsc2U7CisgICAgZm9yICg7OykgeworICAgICAgICByYyA9 IGxpYnhsX194c190cmFuc2FjdGlvbl9zdGFydChnYywgJnh0KTsKKyAgICAgICAgaWYgKHJjKSBn b3RvIG91dDsKKworICAgICAgICBpZiAobGlieGxfX3hzX3JlYWQoZ2MsIHh0LCBkb21fc3NobV9w YXRoKSkgeworICAgICAgICAgICAgc3NobV9lbnRzID0gbGlieGxfX3hzX2RpcmVjdG9yeShnYywg eHQsIGRvbV9zc2htX3BhdGgsICZzc2htX251bSk7CisgICAgICAgICAgICBpZiAoIXNzaG1fZW50 cykgY29udGludWU7CisKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzc2htX251bTsgKytp KSB7CisgICAgICAgICAgICAgICAgcm9sZSA9IGxpYnhsX194c19yZWFkKGdjLCB4dCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy8lcy9yb2xlIiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbV9zc2ht X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz c2htX2VudHNbaV0pKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQocm9sZSk7CisgICAgICAgICAg ICAgICAgaWYgKCFzdHJuY21wKHJvbGUsICJzbGF2ZSIsIDUpKQorICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9fc3NobV9kZWxfc2xhdmUoZ2MsIHh0LCBkb21pZCwgc3NobV9lbnRzW2ldLCBpc3Jl dHJ5KTsKKworICAgICAgICAgICAgICAgIGxpYnhsX19zc2htX2RlY3JlZihnYywgeHQsIFNTSE1f UEFUSChzc2htX2VudHNbaV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg IHJjID0gbGlieGxfX3hzX3RyYW5zYWN0aW9uX2NvbW1pdChnYywgJnh0KTsKKyAgICAgICAgaWYg KCFyYykgYnJlYWs7CisgICAgICAgIGlmIChyYyA8IDApIGdvdG8gb3V0OworICAgICAgICAgaXNy ZXRyeSA9IHRydWU7CisgICAgfQorCisgICAgcmMgPSAwOworb3V0OgorICAgIGxpYnhsX194c190 cmFuc2FjdGlvbl9hYm9ydChnYywgJnh0KTsKKyAgICByZXR1cm4gcmM7Cit9CisKIC8qIFRoZSBj YWxsZXIgaGF2ZSB0byBndWFyZW50ZWUgdGhhdCBzc2htLT5iZWdpbiA8IHNzaG0tPmVuZCAqLwog c3RhdGljIGludCBsaWJ4bF9fc3NobV9kb19tYXAobGlieGxfX2djICpnYywgdWludDMyX3QgbWlk LCB1aW50MzJfdCBzaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zdGF0 aWNfc2htICpzc2htLAotLSAKMi4xNC4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==