From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v7 4/8] libxl: support unmapping static shared memory areas during domain destruction Date: Fri, 10 Aug 2018 17:00:12 -0700 Message-ID: <1533945616-14915-4-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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: Stefano Stabellini , sstabellini@kernel.org, wei.liu2@citrix.com, blackskygg@gmail.com, ian.jackson@eu.citrix.com, julien.grall@arm.com List-Id: xen-devel@lists.xenproject.org RnJvbTogWmhvbmd6ZSBMaXUgPGJsYWNrc2t5Z2dAZ21haWwuY29tPgoKQXV0aG9yOiBaaG9uZ3pl IExpdSA8YmxhY2tza3lnZ0BnbWFpbC5jb20+CgpBZGQgbGlieGxfX3NzaG1fZGVsIHRvIHVubWFw IHN0YXRpYyBzaGFyZWQgbWVtb3J5IGFyZWFzIG1hcHBlZCBieQpsaWJ4bF9fc3NobV9hZGQgZHVy aW5nIGRvbWFpbiBjcmVhdGlvbi4gVGhlIHVubWFwcGluZyBwcm9jZXNzIGlzOgoKKiBGb3IgYSBt YXN0ZXI6IGRlY3JlYXNlIHRoZSByZWZjb3VudCBvZiB0aGUgc3NobSByZWdpb24sIGlmIHRoZSBy ZWZjb3VudAogIHJlYWNoZXMgMCwgY2xlYW51cCB0aGUgd2hvbGUgc3NobSBwYXRoLgoKKiBGb3Ig YSBzbGF2ZToKICAxKSB1bm1hcCB0aGUgc2hhcmVkIHBhZ2VzLCBhbmQgY2xlYW51cCByZWxhdGVk IHhzIGVudHJpZXMuIElmIHRoZQogICAgIHN5c3RlbSB3b3JrcyBub3JtYWxseSwgYWxsIHRoZSBz aGFyZWQgcGFnZXMgd2lsbCBiZSB1bm1hcHBlZCwgc28gdGhlcmUKICAgICB3b24ndCBiZSBwYWdl IGxlYWtzLiBJbiBjYXNlIG9mIGVycm9ycywgdGhlIHVubWFwcGluZyBwcm9jZXNzIHdpbGwgZ28K ICAgICBvbiBhbmQgdW5tYXAgYWxsIHRoZSBvdGhlciBwYWdlcyB0aGF0IGNhbiBiZSB1bm1hcHBl ZCwgc28gdGhlIG90aGVyCiAgICAgcGFnZXMgd29uJ3QgYmUgbGVha2VkLCBlaXRoZXIuCiAgMikg RGVjcmVhc2UgdGhlIHJlZmNvdW50IG9mIHRoZSBzc2htIHJlZ2lvbiwgaWYgdGhlIHJlZmNvdW50 IHJlYWNoZXMKICAgICAwLCBjbGVhbnVwIHRoZSB3aG9sZSBzc2htIHBhdGguCgpUaGlzIGlzIGZv ciB0aGUgcHJvcG9zYWwgIkFsbG93IHNldHRpbmcgdXAgc2hhcmVkIG1lbW9yeSBhcmVhcyBiZXR3 ZWVuIFZNcwpmcm9tIHhsIGNvbmZpZyBmaWxlIiAoc2VlIFsxXSkuCgpbMV0gaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTctMDgvbXNnMDMyNDIuaHRtbAoK U2lnbmVkLW9mZi1ieTogWmhvbmd6ZSBMaXUgPGJsYWNrc2t5Z2dAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+CgpDYzogSWFu IEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1 MkBjaXRyaXguY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu b3JnPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6IHhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCgotLS0KQ2hhbmdlcyBpbiB2NToKLSBmaXggdHlwb3MKLSBhZGQgY29t bWVudHMKLSBjYW5ub3QgbW92ZSB1bm1hcCBiZWZvcmUgeGVuc3RvcmUgdHJhbnNhY3Rpb24gYmVj YXVzZSBpdCBuZWVkcyB0bwogIHJldHJpZXZlIGJlZ2luL3NpemUgdmFsdWVzIGZyb20geGVuc3Rv cmUKLS0tCiB0b29scy9saWJ4bC9saWJ4bF9kb21haW4uYyAgIHwgICA1ICsrCiB0b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oIHwgICAyICsKIHRvb2xzL2xpYnhsL2xpYnhsX3NzaG0uYyAgICAg fCAxMDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxl cyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xp YnhsX2RvbWFpbi5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMKaW5kZXggNTMzYmNkZi4u MDUzYmJlMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMKKysrIGIvdG9v bHMvbGlieGwvbGlieGxfZG9tYWluLmMKQEAgLTEwNjAsNiArMTA2MCwxMSBAQCB2b2lkIGxpYnhs X19kZXN0cm95X2RvbWlkKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2Rlc3Ryb3lfZG9taWRfc3Rh dGUgKmRpcykKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCisgICAgcmMgPSBsaWJ4bF9fc3No bV9kZWwoZ2MsIGRvbWlkKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgTE9HRChFUlJPUiwgZG9t aWQsICJEZWxldGluZyBzdGF0aWMgc2htIGZhaWxlZC4iKTsKKyAgICB9CisKICAgICBpZiAobGli eGxfX2RldmljZV9wY2lfZGVzdHJveV9hbGwoZ2MsIGRvbWlkKSA8IDApCiAgICAgICAgIExPR0Qo RVJST1IsIGRvbWlkLCAiUGNpIHNodXRkb3duIGZhaWxlZCIpOwogICAgIHJjID0geGNfZG9tYWlu X3BhdXNlKGN0eC0+eGNoLCBkb21pZCk7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9p bnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCBiYjZiODQwLi45 MzdiNzQzIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKQEAgLTQ0MzEsNiArNDQzMSw4IEBAIHN0YXRpYyBp bmxpbmUgYm9vbCBsaWJ4bF9fc3RyaW5nX2lzX2RlZmF1bHQoY2hhciAqKnMpCiBfaGlkZGVuIGlu dCBsaWJ4bF9fc3NobV9hZGQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobSwgaW50IGxlbik7CiAK K19oaWRkZW4gaW50IGxpYnhsX19zc2htX2RlbChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21p ZCk7CisKIF9oaWRkZW4gaW50IGxpYnhsX19zc2htX2NoZWNrX292ZXJsYXAobGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX3N0YXRpY19zaG0gKnNzaG1zLCBpbnQgbGVuKTsKIF9oaWRkZW4gaW50IGxpYnhsX19z c2htX3NldGRlZmF1bHQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCmRpZmYgLS1naXQg YS90b29scy9saWJ4bC9saWJ4bF9zc2htLmMgYi90b29scy9saWJ4bC9saWJ4bF9zc2htLmMKaW5k ZXggZjYxYjgwYy4uOTY3MjA1NiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfc3NobS5j CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3NzaG0uYwpAQCAtOTQsNiArOTQsMTEzIEBAIGludCBs aWJ4bF9fc3NobV9jaGVja19vdmVybGFwKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAog ICAgIHJldHVybiAwOwogfQogCisvKgorICogRGVjcmVhc2UgdGhlIHJlZmNvdW50IG9mIGFuIHNz aG0uIFdoZW4gcmVmY291bnQgcmVhY2hlcyAwLAorICogY2xlYW4gdXAgdGhlIHdob2xlIHNzaG0g cGF0aC4KKyAqIFhlbnN0b3JlIG9wZXJhdGlvbnMgYXJlIGRvbmUgd2l0aGluIHRoZSBzYW1lIHRy YW5zYWN0aW9uLgorICovCitzdGF0aWMgdm9pZCBsaWJ4bF9fc3NobV9kZWNyZWYobGlieGxfX2dj ICpnYywgeHNfdHJhbnNhY3Rpb25fdCB4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpzc2htX3BhdGgpCit7CisgICAgaW50IGNvdW50OworICAgIGNvbnN0IGNo YXIgKmNvdW50X3BhdGgsICpjb3VudF9zdHJpbmc7CisKKyAgICBjb3VudF9wYXRoID0gR0NTUFJJ TlRGKCIlcy91c2VyY250Iiwgc3NobV9wYXRoKTsKKyAgICBpZiAobGlieGxfX3hzX3JlYWRfY2hl Y2tlZChnYywgeHQsIGNvdW50X3BhdGgsICZjb3VudF9zdHJpbmcpKQorICAgICAgICByZXR1cm47 CisgICAgY291bnQgPSBhdG9pKGNvdW50X3N0cmluZyk7CisKKyAgICBpZiAoLS1jb3VudCA9PSAw KSB7CisgICAgICAgIGxpYnhsX194c19wYXRoX2NsZWFudXAoZ2MsIHh0LCBzc2htX3BhdGgpOwor ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY291bnRfc3RyaW5nID0gR0NTUFJJTlRGKCIl ZCIsIGNvdW50KTsKKyAgICBsaWJ4bF9feHNfd3JpdGVfY2hlY2tlZChnYywgeHQsIGNvdW50X3Bh dGgsIGNvdW50X3N0cmluZyk7CisKKyAgICByZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIGxpYnhs X19zc2htX2RvX3VubWFwKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLCBjb25zdCBjaGFy ICppZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGJlZ2luLCB1 aW50NjRfdCBzaXplKQoreworICAgIHVpbnQ2NF90IGVuZDsKKyAgICBiZWdpbiA+Pj0gWENfUEFH RV9TSElGVDsKKyAgICBzaXplID4+PSBYQ19QQUdFX1NISUZUOworICAgIGVuZCA9IGJlZ2luICsg c2l6ZTsKKyAgICBmb3IgKDsgYmVnaW4gPCBlbmQ7ICsrYmVnaW4pIHsKKyAgICAgICAgaWYgKHhj X2RvbWFpbl9yZW1vdmVfZnJvbV9waHlzbWFwKENUWC0+eGNoLCBkb21pZCwgYmVnaW4pKSB7Cisg ICAgICAgICAgICBTU0hNX0VSUk9SKGRvbWlkLCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg InVuYWJsZSB0byB1bm1hcCBzaGFyZWQgcGFnZSBhdCAweCUiUFJJeDY0Ii4iLAorICAgICAgICAg ICAgICAgICAgICAgICBiZWdpbik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lk IGxpYnhsX19zc2htX2RlbF9zbGF2ZShsaWJ4bF9fZ2MgKmdjLCB4c190cmFuc2FjdGlvbl90IHh0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLCBjb25z dCBjaGFyICppZCwgYm9vbCBpc3JldHJ5KQoreworICAgIGNvbnN0IGNoYXIgKnNsYXZlX3BhdGgs ICpiZWdpbl9zdHIsICpzaXplX3N0cjsKKyAgICB1aW50NjRfdCBiZWdpbiwgc2l6ZTsKKworICAg IHNsYXZlX3BhdGggPSBHQ1NQUklOVEYoIiVzL3NsYXZlcy8lIlBSSXUzMiwgU1NITV9QQVRIKGlk KSwgZG9taWQpOworCisgICAgYmVnaW5fc3RyID0gbGlieGxfX3hzX3JlYWQoZ2MsIHh0LCBHQ1NQ UklOVEYoIiVzL2JlZ2luIiwgc2xhdmVfcGF0aCkpOworICAgIHNpemVfc3RyID0gbGlieGxfX3hz X3JlYWQoZ2MsIHh0LCBHQ1NQUklOVEYoIiVzL3NpemUiLCBzbGF2ZV9wYXRoKSk7CisgICAgYmVn aW4gPSBzdHJ0b3VsbChiZWdpbl9zdHIsIE5VTEwsIDE2KTsKKyAgICBzaXplID0gc3RydG91bGwo c2l6ZV9zdHIsIE5VTEwsIDE2KTsKKworICAgIGxpYnhsX19zc2htX2RvX3VubWFwKGdjLCBkb21p ZCwgaWQsIGJlZ2luLCBzaXplKTsKKyAgICBsaWJ4bF9feHNfcGF0aF9jbGVhbnVwKGdjLCB4dCwg c2xhdmVfcGF0aCk7Cit9CisKKy8qIERlbGV0ZSBzdGF0aWNfc2htIGVudHJpZXMgaW4gdGhlIHhl bnNvdHJlLiAqLworaW50IGxpYnhsX19zc2htX2RlbChsaWJ4bF9fZ2MgKmdjLCAgdWludDMyX3Qg ZG9taWQpCit7CisgICAgaW50IHJjLCBpOworICAgIGJvb2wgaXNyZXRyeTsKKyAgICB4c190cmFu c2FjdGlvbl90IHh0ID0gWEJUX05VTEw7CisgICAgY29uc3QgY2hhciAqZG9tX3BhdGgsICpkb21f c3NobV9wYXRoLCAqcm9sZTsKKyAgICBjaGFyICoqc3NobV9lbnRzOworICAgIHVuc2lnbmVkIGlu dCBzc2htX251bTsKKworICAgIGRvbV9wYXRoID0gbGlieGxfX3hzX2dldF9kb21wYXRoKGdjLCBk b21pZCk7CisgICAgZG9tX3NzaG1fcGF0aCA9IEdDU1BSSU5URigiJXMvc3RhdGljX3NobSIsIGRv bV9wYXRoKTsKKworICAgIGlzcmV0cnkgPSBmYWxzZTsKKyAgICBmb3IgKDs7KSB7CisgICAgICAg IHJjID0gbGlieGxfX3hzX3RyYW5zYWN0aW9uX3N0YXJ0KGdjLCAmeHQpOworICAgICAgICBpZiAo cmMpIGdvdG8gb3V0OworCisgICAgICAgIGlmIChsaWJ4bF9feHNfcmVhZChnYywgeHQsIGRvbV9z c2htX3BhdGgpKSB7CisgICAgICAgICAgICBzc2htX2VudHMgPSBsaWJ4bF9feHNfZGlyZWN0b3J5 KGdjLCB4dCwgZG9tX3NzaG1fcGF0aCwgJnNzaG1fbnVtKTsKKyAgICAgICAgICAgIGlmICghc3No bV9lbnRzKSBjb250aW51ZTsKKworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNzaG1fbnVt OyArK2kpIHsKKyAgICAgICAgICAgICAgICByb2xlID0gbGlieGxfX3hzX3JlYWQoZ2MsIHh0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzLyVzL3Jv bGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9t X3NzaG1fcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNzaG1fZW50c1tpXSkpOworICAgICAgICAgICAgICAgIGFzc2VydChyb2xlKTsKKyAgICAg ICAgICAgICAgICBpZiAoIXN0cm5jbXAocm9sZSwgInNsYXZlIiwgNSkpCisgICAgICAgICAgICAg ICAgICAgIGxpYnhsX19zc2htX2RlbF9zbGF2ZShnYywgeHQsIGRvbWlkLCBzc2htX2VudHNbaV0s IGlzcmV0cnkpOworCisgICAgICAgICAgICAgICAgbGlieGxfX3NzaG1fZGVjcmVmKGdjLCB4dCwg U1NITV9QQVRIKHNzaG1fZW50c1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg ICAgICAgcmMgPSBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fY29tbWl0KGdjLCAmeHQpOworICAgICAg ICBpZiAoIXJjKSBicmVhazsKKyAgICAgICAgaWYgKHJjIDwgMCkgZ290byBvdXQ7CisgICAgICAg IGlzcmV0cnkgPSB0cnVlOworICAgIH0KKworICAgIHJjID0gMDsKK291dDoKKyAgICBsaWJ4bF9f eHNfdHJhbnNhY3Rpb25fYWJvcnQoZ2MsICZ4dCk7CisgICAgcmV0dXJuIHJjOworfQorCiAvKiAg IGxpYnhsX19zc2htX2RvX21hcCAtLSBtYXAgcGFnZXMgaW50byBzbGF2ZSdzIHBoeXNtYXAKICAq CiAgKiAgIFRoaXMgZnVuY3Rpb25zIG1hcHMKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==