From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [RFC QEMU PATCH v4 03/10] hostmem-xen: add a host memory backend for Xen Date: Thu, 7 Dec 2017 18:18:05 +0800 Message-ID: <20171207101812.23602-4-haozhong.zhang@intel.com> References: <20171207101812.23602-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eMtHf-0000av-8U for xen-devel@lists.xenproject.org; Thu, 07 Dec 2017 10:20:03 +0000 In-Reply-To: <20171207101812.23602-1-haozhong.zhang@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-devel@nongnu.org, xen-devel@lists.xenproject.org Cc: Haozhong Zhang , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Igor Mammedov , Anthony Perard , Chao Peng , Dan Williams List-Id: xen-devel@lists.xenproject.org dk5WRElNTSByZXF1aXJlcyBhIGhvc3QgbWVtb3J5IGJhY2tlbmQgdG8gYWxsb2NhdGUgaXRzIGJh Y2tlbmQKcmVzb3VyY2VzIHRvIHRoZSBndWVzdC4gV2hlbiBRRU1VIGlzIHVzZWQgYXMgWGVuIGRl dmljZSBtb2RlbCwgdGhlCmJhY2tlbmQgcmVzb3VyY2UgYWxsb2NhdGlvbiBvZiB2TlZESU1NIGlz IG1hbmFnZWQgb3V0IG9mIFFFTVUuIEEgbmV3Cmhvc3QgbWVtb3J5IGJhY2tlbmQgJ21lbW9yeS1i YWNrZW5kLXhlbicgaXMgaW50cm9kdWNlZCB0byByZXByZXNlbnQKdGhlIGJhY2tlbmQgcmVzb3Vy Y2UgYWxsb2NhdGVkIGJ5IFhlbi4gSXQgc2ltcGx5IGNyZWF0ZXMgYSBtZW1vcnkKcmVnaW9uIG9m IHRoZSBzcGVjaWZpZWQgc2l6ZSBhcyBhIHBsYWNlaG9sZGVyIGluIHRoZSBndWVzdCBhZGRyZXNz CnNwYWNlLCB3aGljaCB3aWxsIGJlIG1hcHBlZCBieSBYZW4gdG8gdGhlIGFjdHVhbCBiYWNrZW5k IHJlc291cmNlLgoKRm9sbG93aW5nIGV4YW1wbGUgUUVNVSBvcHRpb25zIGNyZWF0ZSBhIHZOVkRJ TU0gZGV2aWNlIGJhY2tlZCBieSBhIDRHQgpob3N0IFBNRU0gcmVnaW9uIGF0IGhvc3QgcGh5c2lj YWwgYWRkcmVzcyAweDEwMDAwMDAwMDoKICAgLW9iamVjdCBtZW1vcnktYmFja2VuZC14ZW4saWQ9 bWVtMSxob3N0LWFkZHI9MHgxMDAwMDAwMDAsc2l6ZT00RwogICAtZGV2aWNlIG52ZGltbSxpZD1u dmRpbW0xLG1lbWRldj1tZW0xCgpTaWduZWQtb2ZmLWJ5OiBIYW96aG9uZyBaaGFuZyA8aGFvemhv bmcuemhhbmdAaW50ZWwuY29tPgotLS0KQ2M6IEVkdWFyZG8gSGFia29zdCA8ZWhhYmtvc3RAcmVk aGF0LmNvbT4KQ2M6IElnb3IgTWFtbWVkb3YgPGltYW1tZWRvQHJlZGhhdC5jb20+CkNjOiAiTWlj aGFlbCBTLiBUc2lya2luIiA8bXN0QHJlZGhhdC5jb20+Ci0tLQogYmFja2VuZHMvTWFrZWZpbGUu b2JqcyB8ICAgMSArCiBiYWNrZW5kcy9ob3N0bWVtLXhlbi5jIHwgMTA4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGJhY2tlbmRzL2hvc3RtZW0uYyAg ICAgfCAgIDkgKysrKysKIGh3L21lbS9wYy1kaW1tLmMgICAgICAgfCAgIDYgKystCiA0IGZpbGVz IGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgYmFja2VuZHMvaG9zdG1lbS14ZW4uYwoKZGlmZiAtLWdpdCBhL2JhY2tlbmRzL01ha2Vm aWxlLm9ianMgYi9iYWNrZW5kcy9NYWtlZmlsZS5vYmpzCmluZGV4IDA0MDA3OTllZmQuLjMwOTZm ZGUyMWYgMTAwNjQ0Ci0tLSBhL2JhY2tlbmRzL01ha2VmaWxlLm9ianMKKysrIGIvYmFja2VuZHMv TWFrZWZpbGUub2JqcwpAQCAtNSw2ICs1LDcgQEAgY29tbW9uLW9iai0kKENPTkZJR19UUE0pICs9 IHRwbS5vCiAKIGNvbW1vbi1vYmoteSArPSBob3N0bWVtLm8gaG9zdG1lbS1yYW0ubwogY29tbW9u LW9iai0kKENPTkZJR19MSU5VWCkgKz0gaG9zdG1lbS1maWxlLm8KK2NvbW1vbi1vYmotJHtDT05G SUdfWEVOX0JBQ0tFTkR9ICs9IGhvc3RtZW0teGVuLm8KIAogY29tbW9uLW9iai15ICs9IGNyeXB0 b2Rldi5vCiBjb21tb24tb2JqLXkgKz0gY3J5cHRvZGV2LWJ1aWx0aW4ubwpkaWZmIC0tZ2l0IGEv YmFja2VuZHMvaG9zdG1lbS14ZW4uYyBiL2JhY2tlbmRzL2hvc3RtZW0teGVuLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTkyMTFlZmQ4MQotLS0gL2Rldi9udWxsCisr KyBiL2JhY2tlbmRzL2hvc3RtZW0teGVuLmMKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBRRU1V IEhvc3QgTWVtb3J5IEJhY2tlbmQgZm9yIFhlbgorICoKKyAqIENvcHlyaWdodChDKSAyMDE3IElu dGVsIENvcnBvcmF0aW9uLgorICoKKyAqIEF1dGhvcjoKKyAqICAgSGFvemhvbmcgWmhhbmcgPGhh b3pob25nLnpoYW5nQGludGVsLmNvbT4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg KiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4KKyAqLworCisjaW5jbHVkZSAicWVtdS9vc2RlcC5oIgorI2lu Y2x1ZGUgInN5c2VtdS9ob3N0bWVtLmgiCisjaW5jbHVkZSAicWFwaS9lcnJvci5oIgorI2luY2x1 ZGUgInFvbS9vYmplY3RfaW50ZXJmYWNlcy5oIgorCisjZGVmaW5lIFRZUEVfTUVNT1JZX0JBQ0tF TkRfWEVOICJtZW1vcnktYmFja2VuZC14ZW4iCisKKyNkZWZpbmUgTUVNT1JZX0JBQ0tFTkRfWEVO KG9iaikgXAorICAgIE9CSkVDVF9DSEVDSyhIb3N0TWVtb3J5QmFja2VuZFhlbiwgKG9iaiksIFRZ UEVfTUVNT1JZX0JBQ0tFTkRfWEVOKQorCit0eXBlZGVmIHN0cnVjdCBIb3N0TWVtb3J5QmFja2Vu ZFhlbiBIb3N0TWVtb3J5QmFja2VuZFhlbjsKKworc3RydWN0IEhvc3RNZW1vcnlCYWNrZW5kWGVu IHsKKyAgICBIb3N0TWVtb3J5QmFja2VuZCBwYXJlbnRfb2JqOworCisgICAgdWludDY0X3QgaG9z dF9hZGRyOworfTsKKworc3RhdGljIHZvaWQgeGVuX2JhY2tlbmRfZ2V0X2hvc3RfYWRkcihPYmpl Y3QgKm9iaiwgVmlzaXRvciAqdiwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdm9pZCAqb3BhcXVlLCBFcnJvciAqKmVycnApCit7CisgICAg SG9zdE1lbW9yeUJhY2tlbmRYZW4gKmJhY2tlbmQgPSBNRU1PUllfQkFDS0VORF9YRU4ob2JqKTsK KyAgICB1aW50NjRfdCB2YWx1ZSA9IGJhY2tlbmQtPmhvc3RfYWRkcjsKKworICAgIHZpc2l0X3R5 cGVfc2l6ZSh2LCBuYW1lLCAmdmFsdWUsIGVycnApOworfQorCitzdGF0aWMgdm9pZCB4ZW5fYmFj a2VuZF9zZXRfaG9zdF9hZGRyKE9iamVjdCAqb2JqLCBWaXNpdG9yICp2LCBjb25zdCBjaGFyICpu YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpvcGFxdWUs IEVycm9yICoqZXJycCkKK3sKKyAgICBIb3N0TWVtb3J5QmFja2VuZCAqYmFja2VuZCA9IE1FTU9S WV9CQUNLRU5EKG9iaik7CisgICAgSG9zdE1lbW9yeUJhY2tlbmRYZW4gKnhiID0gTUVNT1JZX0JB Q0tFTkRfWEVOKG9iaik7CisgICAgRXJyb3IgKmxvY2FsX2VyciA9IE5VTEw7CisgICAgdWludDY0 X3QgdmFsdWU7CisKKyAgICBpZiAobWVtb3J5X3JlZ2lvbl9zaXplKCZiYWNrZW5kLT5tcikpIHsK KyAgICAgICAgZXJyb3Jfc2V0ZygmbG9jYWxfZXJyLCAiY2Fubm90IGNoYW5nZSBwcm9wZXJ0eSB2 YWx1ZSIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICB2aXNpdF90eXBlX3NpemUo diwgbmFtZSwgJnZhbHVlLCAmbG9jYWxfZXJyKTsKKyAgICBpZiAobG9jYWxfZXJyKSB7CisgICAg ICAgIGdvdG8gb3V0OworICAgIH0KKyAgICB4Yi0+aG9zdF9hZGRyID0gdmFsdWU7CisKKyBvdXQ6 CisgICAgZXJyb3JfcHJvcGFnYXRlKGVycnAsIGxvY2FsX2Vycik7Cit9CisKK3N0YXRpYyB2b2lk IHhlbl9iYWNrZW5kX2FsbG9jKEhvc3RNZW1vcnlCYWNrZW5kICpiYWNrZW5kLCBFcnJvciAqKmVy cnApCit7CisgICAgaWYgKCFiYWNrZW5kLT5zaXplKSB7CisgICAgICAgIGVycm9yX3NldGcoZXJy cCwgImNhbid0IGNyZWF0ZSBiYWNrZW5kIHdpdGggc2l6ZSAwIik7CisgICAgICAgIHJldHVybjsK KyAgICB9CisgICAgbWVtb3J5X3JlZ2lvbl9pbml0KCZiYWNrZW5kLT5tciwgT0JKRUNUKGJhY2tl bmQpLCAiaG9zdG1lbS14ZW4iLAorICAgICAgICAgICAgICAgICAgICAgICBiYWNrZW5kLT5zaXpl KTsKKyAgICBiYWNrZW5kLT5tci5hbGlnbiA9IGdldHBhZ2VzaXplKCk7Cit9CisKK3N0YXRpYyB2 b2lkIHhlbl9iYWNrZW5kX2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKm9jLCB2b2lkICpkYXRhKQor eworICAgIEhvc3RNZW1vcnlCYWNrZW5kQ2xhc3MgKmJjID0gTUVNT1JZX0JBQ0tFTkRfQ0xBU1Mo b2MpOworCisgICAgYmMtPmFsbG9jID0geGVuX2JhY2tlbmRfYWxsb2M7CisKKyAgICBvYmplY3Rf Y2xhc3NfcHJvcGVydHlfYWRkKG9jLCAiaG9zdC1hZGRyIiwgImludCIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB4ZW5fYmFja2VuZF9nZXRfaG9zdF9hZGRyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeGVuX2JhY2tlbmRfc2V0X2hvc3RfYWRkciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsICZlcnJvcl9hYm9ydCk7Cit9CisKK3N0YXRp YyBjb25zdCBUeXBlSW5mbyB4ZW5fYmFja2VuZF9pbmZvID0geworICAgIC5uYW1lID0gVFlQRV9N RU1PUllfQkFDS0VORF9YRU4sCisgICAgLnBhcmVudCA9IFRZUEVfTUVNT1JZX0JBQ0tFTkQsCisg ICAgLmNsYXNzX2luaXQgPSB4ZW5fYmFja2VuZF9jbGFzc19pbml0LAorICAgIC5pbnN0YW5jZV9z aXplID0gc2l6ZW9mKEhvc3RNZW1vcnlCYWNrZW5kWGVuKSwKK307CisKK3N0YXRpYyB2b2lkIHJl Z2lzdGVyX3R5cGVzKHZvaWQpCit7CisgICAgdHlwZV9yZWdpc3Rlcl9zdGF0aWMoJnhlbl9iYWNr ZW5kX2luZm8pOworfQorCit0eXBlX2luaXQocmVnaXN0ZXJfdHlwZXMpOwpkaWZmIC0tZ2l0IGEv YmFja2VuZHMvaG9zdG1lbS5jIGIvYmFja2VuZHMvaG9zdG1lbS5jCmluZGV4IGVlMmMyZDViZmQu LmJhMTNhNTI5OTQgMTAwNjQ0Ci0tLSBhL2JhY2tlbmRzL2hvc3RtZW0uYworKysgYi9iYWNrZW5k cy9ob3N0bWVtLmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlICJxZW11L29zZGVwLmgiCiAj aW5jbHVkZSAic3lzZW11L2hvc3RtZW0uaCIKICNpbmNsdWRlICJody9ib2FyZHMuaCIKKyNpbmNs dWRlICJody94ZW4veGVuLmgiCiAjaW5jbHVkZSAicWFwaS9lcnJvci5oIgogI2luY2x1ZGUgInFh cGkvdmlzaXRvci5oIgogI2luY2x1ZGUgInFhcGktdHlwZXMuaCIKQEAgLTI3Nyw2ICsyNzgsMTQg QEAgaG9zdF9tZW1vcnlfYmFja2VuZF9tZW1vcnlfY29tcGxldGUoVXNlckNyZWF0YWJsZSAqdWMs IEVycm9yICoqZXJycCkKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAKKyAgICAg ICAgLyoKKyAgICAgICAgICogVGhlIGJhY2tlbmQgc3RvcmFnZSBvZiBNRU1PUllfQkFDS0VORF9Y RU4gaXMgbWFuYWdlZCBieSBYZW4sCisgICAgICAgICAqIHNvIG5vIGZ1cnRoZXIgd29yayBpbiB0 aGlzIGZ1bmN0aW9uIGlzIG5lZWRlZC4KKyAgICAgICAgICovCisgICAgICAgIGlmICh4ZW5fZW5h YmxlZCgpICYmICFiYWNrZW5kLT5tci5yYW1fYmxvY2spIHsKKyAgICAgICAgICAgIGdvdG8gb3V0 OworICAgICAgICB9CisKICAgICAgICAgcHRyID0gbWVtb3J5X3JlZ2lvbl9nZXRfcmFtX3B0cigm YmFja2VuZC0+bXIpOwogICAgICAgICBzeiA9IG1lbW9yeV9yZWdpb25fc2l6ZSgmYmFja2VuZC0+ bXIpOwogCmRpZmYgLS1naXQgYS9ody9tZW0vcGMtZGltbS5jIGIvaHcvbWVtL3BjLWRpbW0uYwpp bmRleCA2NmVhY2U1YTVjLi5kY2JmY2UzM2Q1IDEwMDY0NAotLS0gYS9ody9tZW0vcGMtZGltbS5j CisrKyBiL2h3L21lbS9wYy1kaW1tLmMKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJzeXNl bXUva3ZtLmgiCiAjaW5jbHVkZSAidHJhY2UuaCIKICNpbmNsdWRlICJody92aXJ0aW8vdmhvc3Qu aCIKKyNpbmNsdWRlICJody94ZW4veGVuLmgiCiAKIHR5cGVkZWYgc3RydWN0IHBjX2RpbW1zX2Nh cGFjaXR5IHsKICAgICAgdWludDY0X3Qgc2l6ZTsKQEAgLTEwOCw3ICsxMDksMTAgQEAgdm9pZCBw Y19kaW1tX21lbW9yeV9wbHVnKERldmljZVN0YXRlICpkZXYsIE1lbW9yeUhvdHBsdWdTdGF0ZSAq aHBtcywKICAgICB9CiAKICAgICBtZW1vcnlfcmVnaW9uX2FkZF9zdWJyZWdpb24oJmhwbXMtPm1y LCBhZGRyIC0gaHBtcy0+YmFzZSwgbXIpOwotICAgIHZtc3RhdGVfcmVnaXN0ZXJfcmFtKHZtc3Rh dGVfbXIsIGRldik7CisgICAgLyogbWVtb3J5LWJhY2tlbmQteGVuIGlzIG5vdCBiYWNrZWQgYnkg UkFNLiAqLworICAgIGlmICgheGVuX2VuYWJsZWQoKSkgeworICAgICAgICB2bXN0YXRlX3JlZ2lz dGVyX3JhbSh2bXN0YXRlX21yLCBkZXYpOworICAgIH0KICAgICBudW1hX3NldF9tZW1fbm9kZV9p ZChhZGRyLCBtZW1vcnlfcmVnaW9uX3NpemUobXIpLCBkaW1tLT5ub2RlKTsKIAogb3V0OgotLSAK Mi4xNS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==