From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Liu Subject: [PATCH 1/2] tmem: add full support for x86 up to 16Tb Date: Mon, 23 Sep 2013 10:23:34 +0800 Message-ID: <1379903015-15955-1-git-send-email-bob.liu@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Bob Liu , keir@xen.org, ian.campbell@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org dG1lbSB1c2VkIHRvIGhhdmUgY29kZSBhc3N1bWluZyB0byBiZSBhYmxlIHRvIGRpcmVjdGx5IGFj Y2VzcyBhbGwgbWVtb3J5LgpUaGlzIHBhdGNoIHRyeSB0byBmaXggdGhpcyBwcm9ibGVtIGZ1bGx5 IHNvIHRoYXQgdG1lbSBjYW4gd29yayBvbiB4ODYgdXAgdG8KMTZUYi4KCnRtZW0gYWxsb2NhdGVz IHBhZ2VzIG1haW5seSBmb3IgdHdvIHB1cnBvc2VzLgoxLiBzdG9yZSBwYWdlcyBwYXNzZWQgZnJv bSBndWVzdHMgdGhyb3VnaCB0aGUgZnJvbnRzd2FwL2NsZWFuY2FjaGUgZnJvbnRlbmQuCkluIHRo aXMgY2FzZSB0bWVtIGNvZGUgaGFzIGFscmVhZHkgdXNpbmcgbWFwX2RvbWFpbl9wYWdlKCkgYmVm b3JlCmFjY2Vzc2luZyB0aGUgbWVtb3J5LCBubyBuZWVkIHRvIGNoYW5nZSBmb3IgMTZUYiBzdXBw b3J0aW5nLgoKMi4gc3RvcmUgdG1lbSBtZXRhIGRhdGEuCkluIHRoaXMgY2FzZSwgdGhlcmUgaXMg YSBwcm9ibGVtIGlmIHdlIHVzZSBtYXBfZG9tYWluX3BhZ2UoKS4gVGhhdCdzIHRoZSBtYXBwaW5n CmVudHJ5cyBhcmUgbGltaXRlZCwgaW7CoHRoZcKgMsKgVkNQVcKgZ3Vlc3TCoHdlwqBvbmx5wqBo YXZlwqAzMsKgZW50cmllcyBhbmQgdG1lbSBjYW4ndApjYWxsIHVubWFwIGluIGEgc2hvcnTCoHRp bWUuClRoZSBmaXhpbmcgaXMgYWxsb2NhdGUgeGVuIGhlYXAgcGFnZXMgaW5zdGVhZCBvZiBkb21h aW4gaGVhcCBmb3IgdG1lbSBtZXRhCmRhdGEuCgpTaWduZWQtb2ZmLWJ5OiBCb2IgTGl1IDxib2Iu bGl1QG9yYWNsZS5jb20+Ci0tLQogeGVuL2NvbW1vbi90bWVtLmMgICAgICAgICAgfCAgICA5ICsr KystLQogeGVuL2NvbW1vbi90bWVtX3hlbi5jICAgICAgfCAgICA0ICstLQogeGVuL2luY2x1ZGUv eGVuL3RtZW1feGVuLmggfCAgIDcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdG1lbS5jIGIveGVuL2NvbW1vbi90bWVtLmMK aW5kZXggYTEyMjY1MS4uY2U2YTc4OCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi90bWVtLmMKKysr IGIveGVuL2NvbW1vbi90bWVtLmMKQEAgLTM1MiwxMCArMzUyLDEzIEBAIHN0YXRpYyBOT0lOTElO RSBwZnBfdCAqdG1lbV9wYWdlX2FsbG9jKHBvb2xfdCAqcG9vbCkKIHsKICAgICBwZnBfdCAqcGZw ID0gTlVMTDsKIAorICAgIC8qCisgICAgICogQWxsIHBhZ2VzIGFyZSBhbGxvY2F0ZWQgZnJvbSBk b21haW4gaGVhcC4KKyAgICAgKi8KICAgICBpZiAoIHBvb2wgIT0gTlVMTCAmJiBpc19wZXJzaXN0 ZW50KHBvb2wpICkKLSAgICAgICAgcGZwID0gdG1oX2FsbG9jX3BhZ2VfdGhpc3Bvb2wocG9vbCk7 CisgICAgICAgIHBmcCA9IHRtaF9hbGxvY19wYWdlX3RoaXNwb29sKHBvb2wsMCk7CiAgICAgZWxz ZQotICAgICAgICBwZnAgPSB0bWhfYWxsb2NfcGFnZShwb29sLDApOworICAgICAgICBwZnAgPSB0 bWhfYWxsb2NfcGFnZShwb29sLDAsMCk7CiAgICAgaWYgKCBwZnAgPT0gTlVMTCApCiAgICAgICAg IGFsbG9jX3BhZ2VfZmFpbGVkKys7CiAgICAgZWxzZQpAQCAtMjkxMSw3ICsyOTE0LDcgQEAgRVhQ T1JUIHZvaWQgKnRtZW1fcmVsaW5xdWlzaF9wYWdlcyh1bnNpZ25lZCBpbnQgb3JkZXIsIHVuc2ln bmVkIGludCBtZW1mbGFncykKICAgICAgICAgICAgIHJlYWRfbG9jaygmdG1lbV9yd2xvY2spOwog ICAgIH0KIAotICAgIHdoaWxlICggKHBmcCA9IHRtaF9hbGxvY19wYWdlKE5VTEwsMSkpID09IE5V TEwgKQorICAgIHdoaWxlICggKHBmcCA9IHRtaF9hbGxvY19wYWdlKE5VTEwsMSwwKSkgPT0gTlVM TCApCiAgICAgewogICAgICAgICBpZiAoIChtYXhfZXZpY3Rpb25zLS0gPD0gMCkgfHwgIXRtZW1f ZXZpY3QoKSkKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi90bWVt X3hlbi5jIGIveGVuL2NvbW1vbi90bWVtX3hlbi5jCmluZGV4IDU0ZWMwOWYuLjM0OTZjODIgMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24vdG1lbV94ZW4uYworKysgYi94ZW4vY29tbW9uL3RtZW1feGVu LmMKQEAgLTM1Myw3ICszNTMsNyBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCAqdG1oX21lbXBvb2xf cGFnZV9nZXQodW5zaWduZWQgbG9uZyBzaXplKQogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBpOwog CiAgICAgQVNTRVJUKHNpemUgPT0gUEFHRV9TSVpFKTsKLSAgICBpZiAoIChwaSA9IHRtaF9hbGxv Y19wYWdlKE5VTEwsMCkpID09IE5VTEwgKQorICAgIGlmICggKHBpID0gdG1oX2FsbG9jX3BhZ2Uo TlVMTCwwLDEpKSA9PSBOVUxMICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgQVNTRVJUKElT X1ZBTElEX1BBR0UocGkpKTsKICAgICByZXR1cm4gcGFnZV90b192aXJ0KHBpKTsKQEAgLTM4Miw3 ICszODIsNyBAQCBzdGF0aWMgdm9pZCAqdG1oX3BlcnNpc3RlbnRfcG9vbF9wYWdlX2dldCh1bnNp Z25lZCBsb25nIHNpemUpCiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsK IAogICAgIEFTU0VSVChzaXplID09IFBBR0VfU0laRSk7Ci0gICAgaWYgKCAocGkgPSBfdG1oX2Fs bG9jX3BhZ2VfdGhpc3Bvb2woZCkpID09IE5VTEwgKQorICAgIGlmICggKHBpID0gX3RtaF9hbGxv Y19wYWdlX3RoaXNwb29sKGQsMSkpID09IE5VTEwgKQogICAgICAgICByZXR1cm4gTlVMTDsKICAg ICBBU1NFUlQoSVNfVkFMSURfUEFHRShwaSkpOwogICAgIHJldHVybiBwYWdlX3RvX3ZpcnQocGkp OwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3RtZW1feGVuLmggYi94ZW4vaW5jbHVkZS94 ZW4vdG1lbV94ZW4uaAppbmRleCBhZDFkZGQ1Li5kNTJkNjhjIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS94ZW4vdG1lbV94ZW4uaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vdG1lbV94ZW4uaApAQCAt MTU2LDcgKzE1Niw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfdG1oX2ZyZWVfc3VicGFnZV90aGlz cG9vbChzdHJ1Y3QgeG1lbV9wb29sICpjbWVtX21lbXBvb2wsCiAjZGVmaW5lIHRtaF9mcmVlX3N1 YnBhZ2VfdGhpc3Bvb2woX3Bvb2wsIF9wLCBfcykgXAogIF90bWhfZnJlZV9zdWJwYWdlX3RoaXNw b29sKF9wb29sLT5jbGllbnQtPnRtaC0+cGVyc2lzdGVudF9wb29sLCBfcCwgX3MpCiAKLXN0YXRp YyBpbmxpbmUgc3RydWN0IHBhZ2VfaW5mbyAqX3RtaF9hbGxvY19wYWdlX3RoaXNwb29sKHN0cnVj dCBkb21haW4gKmQpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2luZm8gKl90bWhfYWxsb2Nf cGFnZV90aGlzcG9vbChzdHJ1Y3QgZG9tYWluICpkLAorCQkJCQkJCWludCB4ZW5faGVhcCkKIHsK ICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwaTsKIApAQCAtMTY2LDM4ICsxNjcsNDggQEAgc3RhdGlj IGlubGluZSBzdHJ1Y3QgcGFnZV9pbmZvICpfdG1oX2FsbG9jX3BhZ2VfdGhpc3Bvb2woc3RydWN0 IGRvbWFpbiAqZCkKICAgICBpZiAoIGQtPnRvdF9wYWdlcyA+PSBkLT5tYXhfcGFnZXMgKQogICAg ICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICggdG1oX3BhZ2VfbGlzdF9wYWdlcyApCi0gICAg ewotICAgICAgICBpZiAoIChwaSA9IHRtaF9wYWdlX2xpc3RfZ2V0KCkpICE9IE5VTEwgKQotICAg ICAgICB7Ci0gICAgICAgICAgICBpZiAoIGRvbmF0ZV9wYWdlKGQscGksMCkgPT0gMCApCi0gICAg ICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg dG1oX3BhZ2VfbGlzdF9wdXQocGkpOwotICAgICAgICB9CisgICAgaWYgKHhlbl9oZWFwKQorCSAg ICBwaSA9IGFsbG9jX3hlbmhlYXBfcGFnZXMoMCxNRU1GX3RtZW0pOworICAgIGVsc2UgeworCSAg ICBpZiAoIHRtaF9wYWdlX2xpc3RfcGFnZXMgKQorCSAgICB7CisJCSAgICBpZiAoIChwaSA9IHRt aF9wYWdlX2xpc3RfZ2V0KCkpICE9IE5VTEwgKQorCQkgICAgeworCQkJICAgIGlmICggZG9uYXRl X3BhZ2UoZCxwaSwwKSA9PSAwICkKKwkJCQkgICAgZ290byBvdXQ7CisJCQkgICAgZWxzZQorCQkJ CSAgICB0bWhfcGFnZV9saXN0X3B1dChwaSk7CisJCSAgICB9CisJICAgIH0KKworCSAgICBwaSA9 IGFsbG9jX2RvbWhlYXBfcGFnZXMoZCwwLE1FTUZfdG1lbSk7CiAgICAgfQogCi0gICAgcGkgPSBh bGxvY19kb21oZWFwX3BhZ2VzKGQsMCxNRU1GX3RtZW0pOwotCiBvdXQ6CiAgICAgQVNTRVJUKChw aSA9PSBOVUxMKSB8fCBJU19WQUxJRF9QQUdFKHBpKSk7CiAgICAgcmV0dXJuIHBpOwogfQotI2Rl ZmluZSB0bWhfYWxsb2NfcGFnZV90aGlzcG9vbChfcG9vbCkgXAotICAgIF90bWhfYWxsb2NfcGFn ZV90aGlzcG9vbChfcG9vbC0+Y2xpZW50LT50bWgtPmRvbWFpbikKKyNkZWZpbmUgdG1oX2FsbG9j X3BhZ2VfdGhpc3Bvb2woX3Bvb2wseGVuX2hlYXApIFwKKyAgICBfdG1oX2FsbG9jX3BhZ2VfdGhp c3Bvb2woX3Bvb2wtPmNsaWVudC0+dG1oLT5kb21haW4seGVuX2hlYXApCiAKIHN0YXRpYyBpbmxp bmUgdm9pZCBfdG1oX2ZyZWVfcGFnZV90aGlzcG9vbChzdHJ1Y3QgcGFnZV9pbmZvICpwaSkKIHsK ICAgICBzdHJ1Y3QgZG9tYWluICpkID0gcGFnZV9nZXRfb3duZXIocGkpOworICAgIGludCB4ZW5f aGVhcCA9IGlzX3hlbl9oZWFwX3BhZ2UocGkpOwogCiAgICAgQVNTRVJUKElTX1ZBTElEX1BBR0Uo cGkpKTsKLSAgICBpZiAoIChkID09IE5VTEwpIHx8IHN0ZWFsX3BhZ2UoZCxwaSwwKSA9PSAwICkK LSAgICAgICAgdG1oX3BhZ2VfbGlzdF9wdXQocGkpOworICAgIGlmICggKGQgPT0gTlVMTCkgfHwg c3RlYWxfcGFnZShkLHBpLDApID09IDAgKSB7CisJICAgIGlmICgheGVuX2hlYXApCisJCSAgICB0 bWhfcGFnZV9saXN0X3B1dChwaSk7CisgICAgfQogICAgIGVsc2UKICAgICB7CiAgICAgICAgIHNj cnViX29uZV9wYWdlKHBpKTsKICAgICAgICAgQVNTRVJUKChwaS0+Y291bnRfaW5mbyAmIH4oUEdD X2FsbG9jYXRlZCB8IDEpKSA9PSAwKTsKLSAgICAgICAgZnJlZV9kb21oZWFwX3BhZ2VzKHBpLDAp OworCWlmICh4ZW5faGVhcCkKKwkJZnJlZV94ZW5oZWFwX3BhZ2VzKHBpLDApOworCWVsc2UKKwkJ ZnJlZV9kb21oZWFwX3BhZ2VzKHBpLDApOwogICAgIH0KIH0KICNkZWZpbmUgdG1oX2ZyZWVfcGFn ZV90aGlzcG9vbChfcG9vbCxfcGcpIFwKQEAgLTIyMSwxMiArMjMyLDE5IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCB0bWhfZnJlZV9zdWJwYWdlKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpCiAgICAgeG1l bV9wb29sX2ZyZWUocHRyLHRtaF9tZW1wb29sKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3Qg cGFnZV9pbmZvICp0bWhfYWxsb2NfcGFnZSh2b2lkICpwb29sLCBpbnQgbm9faGVhcCkKK3N0YXRp YyBpbmxpbmUgc3RydWN0IHBhZ2VfaW5mbyAqdG1oX2FsbG9jX3BhZ2Uodm9pZCAqcG9vbCwgaW50 IG5vX2hlYXAsCisJCQkJCQlpbnQgeGVuX2hlYXApCiB7Ci0gICAgc3RydWN0IHBhZ2VfaW5mbyAq cGkgPSB0bWhfcGFnZV9saXN0X2dldCgpOworICAgIHN0cnVjdCBwYWdlX2luZm8gKnBpID0gTlVM TDsKKyAgICBpZiAoIXhlbl9oZWFwKQorCSAgICBwaSA9IHRtaF9wYWdlX2xpc3RfZ2V0KCk7CiAK LSAgICBpZiAoIHBpID09IE5VTEwgJiYgIW5vX2hlYXAgKQotICAgICAgICBwaSA9IGFsbG9jX2Rv bWhlYXBfcGFnZXMoMCwwLE1FTUZfdG1lbSk7CisgICAgaWYgKCBwaSA9PSBOVUxMICYmICFub19o ZWFwICkgeworICAgIAlpZiAoeGVuX2hlYXApCisJCXBpID0gYWxsb2NfeGVuaGVhcF9wYWdlcygw LE1FTUZfdG1lbSk7CisJZWxzZQorCQlwaSA9IGFsbG9jX2RvbWhlYXBfcGFnZXMoMCwwLE1FTUZf dG1lbSk7CisgICAgfQogICAgIEFTU0VSVCgocGkgPT0gTlVMTCkgfHwgSVNfVkFMSURfUEFHRShw aSkpOwogICAgIGlmICggcGkgIT0gTlVMTCAmJiAhbm9faGVhcCApCiAgICAgICAgIGF0b21pY19p bmMoJmZyZWVhYmxlX3BhZ2VfY291bnQpOwpAQCAtMjM1LDkgKzI1MywxNiBAQCBzdGF0aWMgaW5s aW5lIHN0cnVjdCBwYWdlX2luZm8gKnRtaF9hbGxvY19wYWdlKHZvaWQgKnBvb2wsIGludCBub19o ZWFwKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgdG1oX2ZyZWVfcGFnZShzdHJ1Y3QgcGFnZV9pbmZv ICpwaSkKIHsKKyAgICBpbnQgeGVuX2hlYXAgPSBpc194ZW5faGVhcF9wYWdlKHBpKTsKICAgICBB U1NFUlQoSVNfVkFMSURfUEFHRShwaSkpOwotICAgIHRtaF9wYWdlX2xpc3RfcHV0KHBpKTsKLSAg ICBhdG9taWNfZGVjKCZmcmVlYWJsZV9wYWdlX2NvdW50KTsKKyAgICBpZiAoeGVuX2hlYXApewor CSAgICBzY3J1Yl9vbmVfcGFnZShwaSk7CisJICAgIEFTU0VSVCgocGktPmNvdW50X2luZm8gJiB+ KFBHQ19hbGxvY2F0ZWQgfCAxKSkgPT0gMCk7CisJICAgIGZyZWVfeGVuaGVhcF9wYWdlcyhwaSww KTsKKyAgICB9IGVsc2UgeworCSAgICB0bWhfcGFnZV9saXN0X3B1dChwaSk7CisJICAgIGF0b21p Y19kZWMoJmZyZWVhYmxlX3BhZ2VfY291bnQpOworICAgIH0KIH0KIAogc3RhdGljIGlubGluZSB1 bnNpZ25lZCBpbnQgdG1lbV9zdWJwYWdlX21heHNpemUodm9pZCkKLS0gCjEuNy4xMC40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK