From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: [PATCH v4 5/7] libxl: support unmapping static shared memory areas during domain destruction Date: Wed, 31 Jan 2018 01:50:22 +0800 Message-ID: <20180130175024.26921-6-blackskygg@gmail.com> References: <20180130175024.26921-1-blackskygg@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180130175024.26921-1-blackskygg@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.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 dGhlIHdob2xlIHNzaG0gcGF0aC4KKiBGb3IgYSBzbGF2ZTogMSkgdW5tYXAgdGhlIHNoYXJlZCBw YWdlcywgYW5kIGNsZWFudXAgcmVsYXRlZCB4cyBlbnRyaWVzLiBJZgogIHRoZSBzeXN0ZW0gd29y a3Mgbm9ybWFsbHksIGFsbCB0aGUgc2hhcmVkIHBhZ2VzIHdpbGwgYmUgdW5tYXBwZWQsIHNvIHRo ZXJlCiAgd29uJ3QgYmUgcGFnZSBsZWFrcy4gSW4gY2FzZSBvZiBlcnJvcnMsIHRoZSB1bm1hcHBp bmcgcHJvY2VzcyB3aWxsIGdvIG9uIGFuZAogIHVubWFwIGFsbCB0aGUgb3RoZXIgcGFnZXMgdGhh dCBjYW4gYmUgdW5tYXBwZWQsIHNvIHRoZSBvdGhlciBwYWdlcyB3b24ndAogIGJlIGxlYWtlZCwg ZWl0aGVyLiAyKSBEZWNyZWFzZSB0aGUgcmVmY291bnQgb2YgdGhlIHNzaG0gcmVnaW9uLCBpZiB0 aGUKICByZWZjb3VudCByZWFjaGVzIDAsIGNsZWFudXAgdGhlIHdob2xlIHNzaG0gcGF0aC4KClRo aXMgaXMgZm9yIHRoZSBwcm9wb3NhbCAiQWxsb3cgc2V0dGluZyB1cCBzaGFyZWQgbWVtb3J5IGFy ZWFzIGJldHdlZW4gVk1zCmZyb20geGwgY29uZmlnIGZpbGUiIChzZWUgWzFdKS4KClsxXSBodHRw czovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNy0wOC9tc2cwMzI0 Mi5odG1sCgpTaWduZWQtb2ZmLWJ5OiBaaG9uZ3plIExpdSA8YmxhY2tza3lnZ0BnbWFpbC5jb20+ CgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBXZWkgTGl1 IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGlu aUBrZXJuZWwub3JnPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6 IHhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCi0tLQogdG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMg ICB8ICAgNSArKwogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCB8ICAgMiArCiB0b29scy9s aWJ4bC9saWJ4bF9zc2htLmMgICAgIHwgMTA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb21haW4uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2Rv bWFpbi5jCmluZGV4IDEzYjFjNzNkNDAuLjM3ZjAwMTU1NGIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX2RvbWFpbi5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jCkBAIC0x MDI2LDYgKzEwMjYsMTEgQEAgdm9pZCBsaWJ4bF9fZGVzdHJveV9kb21pZChsaWJ4bF9fZWdjICpl Z2MsIGxpYnhsX19kZXN0cm95X2RvbWlkX3N0YXRlICpkaXMpCiAgICAgICAgIGdvdG8gb3V0Owog ICAgIH0KIAorICAgIHJjID0gbGlieGxfX3NzaG1fZGVsKGdjLCBkb21pZCk7CisgICAgaWYgKHJj KSB7CisgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiRGVsZXRpbmcgc3RhdGljIHNobSBmYWls ZWQuIik7CisgICAgfQorCiAgICAgaWYgKGxpYnhsX19kZXZpY2VfcGNpX2Rlc3Ryb3lfYWxsKGdj LCBkb21pZCkgPCAwKQogICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwgIlBjaSBzaHV0ZG93biBm YWlsZWQiKTsKICAgICByYyA9IHhjX2RvbWFpbl9wYXVzZShjdHgtPnhjaCwgZG9taWQpOwpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmgKaW5kZXggMmNmZTRjMDhhNy4uYzM5OGI2YTZiOCAxMDA2NDQKLS0tIGEvdG9v bHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5h bC5oCkBAIC00NDI0LDYgKzQ0MjQsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbGlieGxfX3N0cmlu Z19pc19kZWZhdWx0KGNoYXIgKipzKQogX2hpZGRlbiBpbnQgbGlieGxfX3NzaG1fYWRkKGxpYnhs X19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX3N0YXRpY19zaG0gKnNzaG0sIGludCBsZW4pOwogCitfaGlkZGVuIGludCBsaWJ4bF9fc3No bV9kZWwobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQpOworCiBfaGlkZGVuIGludCBsaWJ4 bF9fc3NobV9jaGVja19vdmVybGFwKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zdGF0aWNfc2htICpzc2ht cywgaW50IGxlbik7CiBfaGlkZGVuIGludCBsaWJ4bF9fc3NobV9zZXRkZWZhdWx0KGxpYnhsX19n YyAqZ2MsIHVpbnQzMl90IGRvbWlkLApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfc3No bS5jIGIvdG9vbHMvbGlieGwvbGlieGxfc3NobS5jCmluZGV4IDU2MmY0NmYyOTkuLjFiZjRkNGMy ZGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3NzaG0uYworKysgYi90b29scy9saWJ4 bC9saWJ4bF9zc2htLmMKQEAgLTg2LDYgKzg2LDExMiBAQCBpbnQgbGlieGxfX3NzaG1fY2hlY2tf b3ZlcmxhcChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICByZXR1cm4gMDsKIH0K IAorLyogRGVjcmVhc2UgdGhlIHJlZmNvdW50IG9mIGFuIHNzaG0uIFdoZW4gcmVmY291bnQgcmVh Y2hlcyAwLAorICogY2xlYW4gdXAgdGhlIHdob2xlIHNzaG0gcGF0aC4KKyAqLworc3RhdGljIHZv aWQgbGlieGxfX3NzaG1fZGVjcmVmKGxpYnhsX19nYyAqZ2MsIHhzX3RyYW5zYWN0aW9uX3QgeHQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3NobV9wYXRoKQor eworICAgIGludCBjb3VudDsKKyAgICBjb25zdCBjaGFyICpjb3VudF9wYXRoLCAqY291bnRfc3Ry aW5nOworCisgICAgY291bnRfcGF0aCA9IEdDU1BSSU5URigiJXMvdXNlcmNudCIsIHNzaG1fcGF0 aCk7CisgICAgaWYgKGxpYnhsX194c19yZWFkX2NoZWNrZWQoZ2MsIHh0LCBjb3VudF9wYXRoLCAm Y291bnRfc3RyaW5nKSkKKyAgICAgICAgcmV0dXJuOworICAgIGNvdW50ID0gYXRvaShjb3VudF9z dHJpbmcpOworCisgICAgaWYgKC0tY291bnQgPT0gMCkgeworICAgICAgICBsaWJ4bF9feHNfcGF0 aF9jbGVhbnVwKGdjLCB4dCwgc3NobV9wYXRoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor ICAgIGNvdW50X3N0cmluZyA9IEdDU1BSSU5URigiJWQiLCBjb3VudCk7CisgICAgbGlieGxfX3hz X3dyaXRlX2NoZWNrZWQoZ2MsIHh0LCBjb3VudF9wYXRoLCBjb3VudF9zdHJpbmcpOworCisgICAg cmV0dXJuOworfQorCitzdGF0aWMgdm9pZCBsaWJ4bF9fc3NobV9kb191bm1hcChsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwgY29uc3QgY2hhciAqaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50NjRfdCBiZWdpbiwgdWludDY0X3QgZW5kKQoreworICAgIGJlZ2lu ID4+PSBYQ19QQUdFX1NISUZUOworICAgIGVuZCA+Pj0gWENfUEFHRV9TSElGVDsKKyAgICBmb3Ig KDsgYmVnaW4gPCBlbmQ7ICsrYmVnaW4pIHsKKyAgICAgICAgaWYgKHhjX2RvbWFpbl9yZW1vdmVf ZnJvbV9waHlzbWFwKENUWC0+eGNoLCBkb21pZCwgYmVnaW4pKSB7CisgICAgICAgICAgICBTU0hN X0VSUk9SKGRvbWlkLCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgInVuYWJsZSB0byB1bm1h cCBzaGFyZWQgcGFnZSBhdCAweCUiUFJJeDY0Ii4iLAorICAgICAgICAgICAgICAgICAgICAgICBi ZWdpbik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGxpYnhsX19zc2htX2Rl bF9zbGF2ZShsaWJ4bF9fZ2MgKmdjLCB4c190cmFuc2FjdGlvbl90IHh0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLCBjb25zdCBjaGFyICppZCwgYm9v bCBpc3JldHJ5KQoreworICAgIGNvbnN0IGNoYXIgKnNsYXZlX3BhdGgsICpiZWdpbl9zdHIsICpl bmRfc3RyOworICAgIHVpbnQ2NF90IGJlZ2luLCBlbmQ7CisKKyAgICBzbGF2ZV9wYXRoID0gR0NT UFJJTlRGKCIlcy9zbGF2ZXMvJSJQUkl1MzIsIFNTSE1fUEFUSChpZCksIGRvbWlkKTsKKworICAg IGJlZ2luX3N0ciA9IGxpYnhsX194c19yZWFkKGdjLCB4dCwgR0NTUFJJTlRGKCIlcy9iZWdpbiIs IHNsYXZlX3BhdGgpKTsKKyAgICBlbmRfc3RyID0gbGlieGxfX3hzX3JlYWQoZ2MsIHh0LCBHQ1NQ UklOVEYoIiVzL2VuZCIsIHNsYXZlX3BhdGgpKTsKKyAgICBiZWdpbiA9IHN0cnRvdWxsKGJlZ2lu X3N0ciwgTlVMTCwgMTYpOworICAgIGVuZCA9IHN0cnRvdWxsKGVuZF9zdHIsIE5VTEwsIDE2KTsK KworICAgIC8qIEF2b2lkIGNhbGxpbmcgZG9fdW5tYXAgbWFueSB0aW1lcyBpbiBjYXNlIG9mIHhz IHRyYW5zYWN0aW9uIHJldHJ5ICovCisgICAgaWYgKCFpc3JldHJ5KQorICAgICAgICBsaWJ4bF9f c3NobV9kb191bm1hcChnYywgZG9taWQsIGlkLCBiZWdpbiwgZW5kKTsKKworICAgIGxpYnhsX194 c19wYXRoX2NsZWFudXAoZ2MsIHh0LCBzbGF2ZV9wYXRoKTsKK30KKworLyogRGVsZXRlIHN0YXRp Y19zaG0gZW50cmllcyBpbiB0aGUgeGVuc290cmUuICovCitpbnQgbGlieGxfX3NzaG1fZGVsKGxp YnhsX19nYyAqZ2MsICB1aW50MzJfdCBkb21pZCkKK3sKKyAgICBpbnQgcmMsIGk7CisgICAgYm9v bCBpc3JldHJ5OworICAgIHhzX3RyYW5zYWN0aW9uX3QgeHQgPSBYQlRfTlVMTDsKKyAgICBjb25z dCBjaGFyICpkb21fcGF0aCwgKmRvbV9zc2htX3BhdGgsICpyb2xlOworICAgIGNoYXIgKipzc2ht X2VudHM7CisgICAgdW5zaWduZWQgaW50IHNzaG1fbnVtOworCisgICAgZG9tX3BhdGggPSBsaWJ4 bF9feHNfZ2V0X2RvbXBhdGgoZ2MsIGRvbWlkKTsKKyAgICBkb21fc3NobV9wYXRoID0gR0NTUFJJ TlRGKCIlcy9zdGF0aWNfc2htIiwgZG9tX3BhdGgpOworCisgICAgaXNyZXRyeSA9IGZhbHNlOwor ICAgIGZvciAoOzspIHsKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fc3RhcnQo Z2MsICZ4dCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICAgICAgaWYgKGxpYnhs X194c19yZWFkKGdjLCB4dCwgZG9tX3NzaG1fcGF0aCkpIHsKKyAgICAgICAgICAgIHNzaG1fZW50 cyA9IGxpYnhsX194c19kaXJlY3RvcnkoZ2MsIHh0LCBkb21fc3NobV9wYXRoLCAmc3NobV9udW0p OworICAgICAgICAgICAgaWYgKCFzc2htX2VudHMpIGNvbnRpbnVlOworCisgICAgICAgICAgICBm b3IgKGkgPSAwOyBpIDwgc3NobV9udW07ICsraSkgeworICAgICAgICAgICAgICAgIHJvbGUgPSBs aWJ4bF9feHNfcmVhZChnYywgeHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdDU1BSSU5URigiJXMvJXMvcm9sZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkb21fc3NobV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NobV9lbnRzW2ldKSk7CisgICAgICAgICAgICAg ICAgYXNzZXJ0KHJvbGUpOworICAgICAgICAgICAgICAgIGlmICghc3RybmNtcChyb2xlLCAic2xh dmUiLCA1KSkKKyAgICAgICAgICAgICAgICAgICAgbGlieGxfX3NzaG1fZGVsX3NsYXZlKGdjLCB4 dCwgZG9taWQsIHNzaG1fZW50c1tpXSwgaXNyZXRyeSk7CisKKyAgICAgICAgICAgICAgICBsaWJ4 bF9fc3NobV9kZWNyZWYoZ2MsIHh0LCBTU0hNX1BBVEgoc3NobV9lbnRzW2ldKSk7CisgICAgICAg ICAgICB9CisgICAgICAgIH0KKworICAgICAgICByYyA9IGxpYnhsX194c190cmFuc2FjdGlvbl9j b21taXQoZ2MsICZ4dCk7CisgICAgICAgIGlmICghcmMpIGJyZWFrOworICAgICAgICBpZiAocmMg PCAwKSBnb3RvIG91dDsKKyAgICAgICAgaXNyZXRyeSA9IHRydWU7CisgICAgfQorCisgICAgcmMg PSAwOworb3V0OgorICAgIGxpYnhsX194c190cmFuc2FjdGlvbl9hYm9ydChnYywgJnh0KTsKKyAg ICByZXR1cm4gcmM7Cit9CisKIC8qICAgbGlieGxfX3NzaG1fZG9fbWFwIC0tIG1hcCBwYWdlcyBp bnRvIHNsYXZlJ3MgcGh5c21hcAogICoKICAqICAgVGhpcyBmdW5jdGlvbnMgbWFwcwotLSAKMi4x Ni4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==