From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [RFC XEN PATCH v2 13/15] tools/libxl: add support to map host pmem device to guests Date: Mon, 20 Mar 2017 08:09:47 +0800 Message-ID: <20170320000949.24675-14-haozhong.zhang@intel.com> References: <20170320000949.24675-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170320000949.24675-1-haozhong.zhang@intel.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: Konrad Rzeszutek Wilk , Dan Williams , Ian Jackson , Wei Liu , Haozhong Zhang List-Id: xen-devel@lists.xenproject.org V2UgY2FuIG1hcCBob3N0IHBtZW0gZGV2aWNlcyBvciBmaWxlcyBvbiBwbWVtIGRldmljZXMgdG8g Z3Vlc3RzLiBUaGlzCnBhdGNoIGFkZHMgc3VwcG9ydCB0byBtYXAgcG1lbSBkZXZpY2VzLiBUaGUg aW1wbGVtZW50YXRpb24gcmVsaWVzIG9uCnRoZSBMaW51eCBwbWVtIGRyaXZlciAoQ09ORklHX0FD UElfTkZJVCwgQ09ORklHX0xJQk5WRElNTSwgQ09ORklHX0JMS19ERVZfUE1FTSksCnNvIGl0IGZ1 bmN0aW9ucyBvbmx5IHdoZW4gbGlieGwgaXMgY29tcGlsZWQgZm9yIExpbnV4IHJpZ2h0IG5vdy4K ClNpZ25lZC1vZmYtYnk6IEhhb3pob25nIFpoYW5nIDxoYW96aG9uZy56aGFuZ0BpbnRlbC5jb20+ Ci0tLQpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBXZWkg TGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIHRvb2xzL2xpYnhsL01ha2VmaWxlICAgICAg IHwgICA0ICsKIHRvb2xzL2xpYnhsL2xpYnhsX252ZGltbS5jIHwgMTgyICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMvbGlieGwvbGlieGxfbnZkaW1t LmggfCAgNDIgKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjI4IGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9saWJ4bC9saWJ4bF9udmRpbW0uYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHRvb2xzL2xpYnhsL2xpYnhsX252ZGltbS5oCgpkaWZmIC0tZ2l0IGEvdG9vbHMv bGlieGwvTWFrZWZpbGUgYi90b29scy9saWJ4bC9NYWtlZmlsZQppbmRleCBhM2U1ZTk5MDlmLi42 YmZjNzg5NzJmIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9NYWtlZmlsZQorKysgYi90b29scy9s aWJ4bC9NYWtlZmlsZQpAQCAtMTE1LDYgKzExNSwxMCBAQCBlbmRpZgogZW5kaWYKIGVuZGlmCiAK K2lmZXEgKCQoQ09ORklHX0xpbnV4KSwgeSkKK0xJQlhMX09CSlMteSArPSBsaWJ4bF9udmRpbW0u bworZW5kaWYKKwogaWZlcSAoJChGTEVYKSwpCiAlLmMgJS5oOjogJS5sCiAJJCh3YXJuaW5nIEZs ZXggaXMgbmVlZGVkIHRvIHJlYnVpbGQgc29tZSBsaWJ4bCBwYXJzZXJzIGFuZCBcCmRpZmYgLS1n aXQgYS90b29scy9saWJ4bC9saWJ4bF9udmRpbW0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX252ZGlt bS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjFiM2M4M2YyY2EKLS0t IC9kZXYvbnVsbAorKysgYi90b29scy9saWJ4bC9saWJ4bF9udmRpbW0uYwpAQCAtMCwwICsxLDE4 MiBAQAorLyoKKyAqIHRvb2xzL2xpYnhsL2xpYnhsX252ZGltbS5jCisgKgorICogQ29weXJpZ2h0 IChDKSAyMDE3LCAgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNl bnNlLCB2ZXJzaW9uIDIuMSwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor ICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1 ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5o PgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRl ICJsaWJ4bF9pbnRlcm5hbC5oIgorI2luY2x1ZGUgImxpYnhsX2FyY2guaCIKKyNpbmNsdWRlICJs aWJ4bF9udmRpbW0uaCIKKworI2luY2x1ZGUgPHhlbmN0cmwuaD4KKworI2RlZmluZSBCTEtfREVW SUNFX1JPT1QgIi9zeXMvZGV2L2Jsb2NrIgorCitzdGF0aWMgaW50IG52ZGltbV9zeXNmc19yZWFk KGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBtYWpvciwgdW5zaWduZWQgaW50IG1pbm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpuYW1lLCB2b2lkICoqZGF0YV9yKQoreworICAgIGNoYXIgKnBhdGggPSBs aWJ4bF9fc3ByaW50ZihnYywgQkxLX0RFVklDRV9ST09UIi8ldToldS9kZXZpY2UvJXMiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWpvciwgbWlub3IsIG5hbWUpOworICAgIHJl dHVybiBsaWJ4bF9fcmVhZF9zeXNmc19maWxlX2NvbnRlbnRzKGdjLCBwYXRoLCBkYXRhX3IsIE5V TEwpOworfQorCitzdGF0aWMgaW50IG52ZGltbV9nZXRfc3BhKGxpYnhsX19nYyAqZ2MsIHVuc2ln bmVkIGludCBtYWpvciwgdW5zaWduZWQgaW50IG1pbm9yLAorICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50NjRfdCAqc3BhX3IpCit7CisgICAgdm9pZCAqZGF0YTsKKyAgICBpbnQgcmV0ID0g bnZkaW1tX3N5c2ZzX3JlYWQoZ2MsIG1ham9yLCBtaW5vciwgInJlc291cmNlIiwgJmRhdGEpOwor CisgICAgaWYgKCByZXQgKQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgKnNwYV9yID0gc3Ry dG9sbChkYXRhLCBOVUxMLCAwKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBudmRp bW1fZ2V0X3NpemUobGlieGxfX2djICpnYywgdW5zaWduZWQgaW50IG1ham9yLCB1bnNpZ25lZCBp bnQgbWlub3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqc2l6ZV9yKQor eworICAgIHZvaWQgKmRhdGE7CisgICAgaW50IHJldCA9IG52ZGltbV9zeXNmc19yZWFkKGdjLCBt YWpvciwgbWlub3IsICJzaXplIiwgJmRhdGEpOworCisgICAgaWYgKCByZXQgKQorICAgICAgICBy ZXR1cm4gcmV0OworCisgICAgKnNpemVfciA9IHN0cnRvbGwoZGF0YSwgTlVMTCwgMCk7CisKKyAg ICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhZGRfcGFnZXMobGlieGxfX2djICpnYywgdWlu dDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgbWZuLCB4ZW5fcGZu X3QgZ3BmbiwgdW5zaWduZWQgbG9uZyBucl9tZm5zKQoreworICAgIHVuc2lnbmVkIGludCBucjsK KyAgICBpbnQgcmV0ID0gMDsKKworICAgIHdoaWxlICggbnJfbWZucyApCisgICAgeworICAgICAg ICBuciA9IG1pbihucl9tZm5zLCAodW5zaWduZWQgbG9uZykgVUlOVF9NQVgpOworCisgICAgICAg IHJldCA9IHhjX2RvbWFpbl9wb3B1bGF0ZV9wbWVtbWFwKENUWC0+eGNoLCBkb21pZCwgbWZuLCBn cGZuLCBucik7CisgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgeworICAgICAgICAgICAgTE9H KEVSUk9SLCAiZmFpbGVkIHRvIG1hcCBwbWVtIHBhZ2VzLCAiCisgICAgICAgICAgICAgICAgIm1m biAweCUiIFBSSXg2NCIsIGdwZm4gMHglIiBQUkl4NjQgIiwgbnJfbWZucyAldSwgZXJyICVkIiwK KyAgICAgICAgICAgICAgICBtZm4sIGdwZm4sIG5yLCByZXQpOworICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgIH0KKworICAgICAgICBucl9tZm5zIC09IG5yOworICAgICAgICBtZm4gKz0gbnI7 CisgICAgICAgIGdwZm4gKz0gbnI7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworaW50 IGxpYnhsX252ZGltbV9hZGRfZGV2aWNlKGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDMyX3QgZG9taWQsIGNvbnN0IGNoYXIgKnBhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDY0X3QgZ3Vlc3Rfc3BhLCB1aW50NjRfdCBndWVzdF9zaXpl KQoreworICAgIGludCBmZDsKKyAgICBzdHJ1Y3Qgc3RhdCBzdDsKKyAgICB1bnNpZ25lZCBpbnQg bWFqb3IsIG1pbm9yOworICAgIHVpbnQ2NF90IGhvc3Rfc3BhLCBob3N0X3NpemU7CisgICAgeGVu X3Bmbl90IG1mbiwgZ3BmbjsKKyAgICB1bnNpZ25lZCBsb25nIG5yX2dwZm5zOworICAgIGludCBy ZXQ7CisKKyAgICBpZiAoIChndWVzdF9zcGEgJiB+WENfUEFHRV9NQVNLKSB8fCAoZ3Vlc3Rfc2l6 ZSAmIH5YQ19QQUdFX01BU0spICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBmZCA9 IG9wZW4ocGF0aCwgT19SRE9OTFkpOworICAgIGlmICggZmQgPCAwICkKKyAgICB7CisgICAgICAg IExPRyhFUlJPUiwgImZhaWxlZCB0byBvcGVuIGZpbGUgJXMgKGVycjogJWQpIiwgcGF0aCwgZXJy bm8pOworICAgICAgICByZXR1cm4gLUVJTzsKKyAgICB9CisKKyAgICByZXQgPSBmc3RhdChmZCwg JnN0KTsKKyAgICBpZiAoIHJldCApCisgICAgeworICAgICAgICBMT0coRVJST1IsICJmYWlsZWQg dG8gZ2V0IHN0YXR1cyBvZiBmaWxlICVzIChlcnI6ICVkKSIsCisgICAgICAgICAgICBwYXRoLCBl cnJubyk7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIHN3aXRjaCAoIHN0LnN0X21v ZGUgJiBTX0lGTVQgKQorICAgIHsKKyAgICBjYXNlIFNfSUZCTEs6CisgICAgICAgIG1ham9yID0g bWFqb3Ioc3Quc3RfcmRldik7CisgICAgICAgIG1pbm9yID0gbWlub3Ioc3Quc3RfcmRldik7Cisg ICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgTE9HKEVSUk9SLCAib25seSBz dXBwb3J0IGJsb2NrIGRldmljZSBub3ciKTsKKyAgICAgICAgcmV0ID0gLUVJTlZBTDsKKyAgICAg ICAgZ290byBvdXQ7CisgICAgfQorCisgICAgcmV0ID0gbnZkaW1tX2dldF9zcGEoZ2MsIG1ham9y LCBtaW5vciwgJmhvc3Rfc3BhKTsKKyAgICBpZiAoIHJldCApCisgICAgeworICAgICAgICBMT0co RVJST1IsICJmYWlsZWQgdG8gZ2V0IFNQQSBvZiBkZXZpY2UgJXU6JXUiLCBtYWpvciwgbWlub3Ip OworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAgZWxzZSBpZiAoIGhvc3Rfc3BhICYgflhD X1BBR0VfTUFTSyApCisgICAgeworICAgICAgICByZXQgPSAtRUlOVkFMOworICAgICAgICBnb3Rv IG91dDsKKyAgICB9CisKKyAgICByZXQgPSBudmRpbW1fZ2V0X3NpemUoZ2MsIG1ham9yLCBtaW5v ciwgJmhvc3Rfc2l6ZSk7CisgICAgaWYgKCByZXQgKQorICAgIHsKKyAgICAgICAgTE9HKEVSUk9S LCAiZmFpbGVkIHRvIGdldCBzaXplIG9mIGRldmljZSAldToldSIsIG1ham9yLCBtaW5vcik7Cisg ICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICBlbHNlIGlmICggZ3Vlc3Rfc2l6ZSA+IGhvc3Rf c2l6ZSApCisgICAgeworICAgICAgICBMT0coRVJST1IsICJ2TlZESU1NIHNpemUgJSIgUFJJdTY0 ICIgZXhwaXJlcyBOVkRJTU0gc2l6ZSAlIiBQUkl1NjQsCisgICAgICAgICAgICBndWVzdF9zaXpl LCBob3N0X3NpemUpOworICAgICAgICByZXQgPSAtRUlOVkFMOworICAgICAgICBnb3RvIG91dDsK KyAgICB9CisKKyAgICBtZm4gPSBob3N0X3NwYSA+PiBYQ19QQUdFX1NISUZUOworICAgIGdwZm4g PSBndWVzdF9zcGEgPj4gWENfUEFHRV9TSElGVDsKKyAgICBucl9ncGZucyA9IGd1ZXN0X3NpemUg Pj4gWENfUEFHRV9TSElGVDsKKyAgICByZXQgPSBhZGRfcGFnZXMoZ2MsIGRvbWlkLCBtZm4sIGdw Zm4sIG5yX2dwZm5zKTsKKworIG91dDoKKyAgICBjbG9zZShmZCk7CisgICAgcmV0dXJuIHJldDsK K30KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtYmFzaWMtb2Zm c2V0OiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGwvbGlieGxfbnZkaW1tLmggYi90b29scy9saWJ4bC9saWJ4bF9udmRpbW0u aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lOTViZTk5YzY3Ci0tLSAv ZGV2L251bGwKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfbnZkaW1tLmgKQEAgLTAsMCArMSw0MiBA QAorLyoKKyAqIHRvb2xzL2xpYnhsL2xpYnhsX252ZGltbS5oCisgKgorICogQ29weXJpZ2h0IChD KSAyMDE3LCAgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl LCB2ZXJzaW9uIDIuMSwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpZm5kZWYgTElCWExfTlZESU1NX0gKKyNkZWZp bmUgTElCWExfTlZESU1NX0gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgImxpYnhs X2ludGVybmFsLmgiCisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykKKworaW50IGxpYnhsX252ZGlt bV9hZGRfZGV2aWNlKGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgZG9taWQsIGNvbnN0IGNoYXIgKnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDY0X3Qgc3BhLCB1aW50NjRfdCBsZW5ndGgpOworCisjZWxzZQorCitzdGF0aWMg aW5saW5lIGludCBsaWJ4bF9udmRpbW1fYWRkX2RldmljZShsaWJ4bF9fZ2MgKmdjLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQsIGNvbnN0 IGNoYXIgKnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50NjRfdCBzcGEsIHVpbnQ2NF90IGxlbmd0aCkKK3sKKyAgICByZXR1cm4gLUVOT1NZUzsKK30K KworI2VuZGlmIC8qIF9fbGludXhfXyAqLworCisjZW5kaWYgLyogIUxJQlhMX05WRElNTV9IICov Ci0tIAoyLjEyLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK