From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH 3/5] x86: use PDEP/PEXT for maddr/direct-map-offset conversion when available Date: Wed, 28 Feb 2018 06:57:52 -0700 Message-ID: <5A96C37002000078001ACD05@prv-mh.provo.novell.com> References: <5A96C1D602000078001ACCEC@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1er2F3-0008RF-0Z for xen-devel@lists.xenproject.org; Wed, 28 Feb 2018 13:57:57 +0000 In-Reply-To: <5A96C1D602000078001ACCEC@prv-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org Qm90aCByZXBsYWNlIDYgaW5zdHJ1Y3Rpb25zIGJ5IGEgc2luZ2xlIG9uZSwgZnVydGhlciByZWR1 Y2luZyBjb2RlIHNpemUsCmNhY2hlLCBhbmQgVExCIGZvb3RwcmludCAoaW4gcGFydGljdWxhciBv biBzeXN0ZW1zIHN1cHBvcnRpbmcgQk1JMikuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8 amJldWxpY2hAc3VzZS5jb20+CgotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJj aC94ODYvbW0uYwpAQCAtMzkzLDExICszOTMsMjYgQEAgdm9pZCBfX2luaXQgYXJjaF9pbml0X21l bW9yeSh2b2lkKQogCiBjb25zdCBpbnRwdGVfdCBwdGVfZmxhZ3NfbWFzayA9IH4oUEFERFJfTUFT SyAmIFBBR0VfTUFTSyk7CiAKK3BhZGRyX3QgX19yZWFkX21vc3RseSBtYV9yZWFsX21hc2sgPSB+ MFVMOworCiAjaWZuZGVmIEhBVkVfR0FTX1FVT1RFRF9FWFBSX1NZTQogaW50cHRlX3QgcHV0X3B0 ZV9mbGFnc192KHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgICByZXR1cm4gcHV0X3B0ZV9mbGFn c19jKGZsYWdzKTsKIH0KKworLyogQ29udmVyc2lvbiBiZXR3ZWVuIG1hY2hpbmUgYWRkcmVzcyBh bmQgZGlyZWN0IG1hcCBvZmZzZXQuICovCitwYWRkcl90IGRvMm1hKHVuc2lnbmVkIGxvbmcgb2Zm KQoreworICAgIHJldHVybiAob2ZmICYgbWFfdmFfYm90dG9tX21hc2spIHwKKyAgICAgICAgICAg KChvZmYgPDwgcGZuX3BkeF9ob2xlX3NoaWZ0KSAmIG1hX3RvcF9tYXNrKTsKK30KKwordW5zaWdu ZWQgbG9uZyBtYTJkbyhwYWRkcl90IG1hKQoreworICAgIHJldHVybiAobWEgJiBtYV92YV9ib3R0 b21fbWFzaykgfAorICAgICAgICAgICAoKG1hICYgbWFfdG9wX21hc2spID4+IHBmbl9wZHhfaG9s ZV9zaGlmdCk7Cit9CiAjZW5kaWYKIAogaW50IHBhZ2VfaXNfcmFtX3R5cGUodW5zaWduZWQgbG9u ZyBtZm4sIHVuc2lnbmVkIGxvbmcgbWVtX3R5cGUpCi0tLSBhL3hlbi9hcmNoL3g4Ni9zcmF0LmMK KysrIGIveGVuL2FyY2gveDg2L3NyYXQuYwpAQCAtNDQ2LDYgKzQ0Niw4IEBAIHZvaWQgX19pbml0 IHNyYXRfcGFyc2VfcmVnaW9ucyh1NjQgYWRkcikKIAl9CiAKIAlwZm5fcGR4X2hvbGVfc2V0dXAo bWFzayA+PiBQQUdFX1NISUZUKTsKKworCW1hX3JlYWxfbWFzayA9IG1hX3RvcF9tYXNrIHwgbWFf dmFfYm90dG9tX21hc2s7CiB9CiAKIC8qIFVzZSB0aGUgaW5mb3JtYXRpb24gZGlzY292ZXJlZCBh Ym92ZSB0byBhY3R1YWxseSBzZXQgdXAgdGhlIG5vZGVzLiAqLwotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L3g4Nl82NC9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni94ODZfNjQvcGFn ZS5oCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUgPHhlbi9wZHguaD4KIAogZXh0ZXJuIHVu c2lnbmVkIGxvbmcgeGVuX3ZpcnRfZW5kOworZXh0ZXJuIHBhZGRyX3QgbWFfcmVhbF9tYXNrOwor CitwYWRkcl90IGRvMm1hKHVuc2lnbmVkIGxvbmcpOwordW5zaWduZWQgbG9uZyBtYTJkbyhwYWRk cl90KTsKIAogLyoKICAqIE5vdGU6IFRoZXNlIGFyZSBzb2xlbHkgZm9yIHRoZSB1c2UgYnkgcGFn ZV97Z2V0LHNldH1fb3duZXIoKSwgYW5kCkBAIC01Miw4ICs1NiwxMCBAQCBleHRlcm4gdW5zaWdu ZWQgbG9uZyB4ZW5fdmlydF9lbmQ7CiAjZGVmaW5lIHBkeF90b192aXJ0KHBkeCkgKCh2b2lkICop KERJUkVDVE1BUF9WSVJUX1NUQVJUICsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKHVuc2lnbmVkIGxvbmcpKHBkeCkgPDwgUEFHRV9TSElGVCkpKQogCi1zdGF0aWMgaW5s aW5lIHVuc2lnbmVkIGxvbmcgX192aXJ0X3RvX21hZGRyKHVuc2lnbmVkIGxvbmcgdmEpCitzdGF0 aWMgYWx3YXlzX2lubGluZSBwYWRkcl90IF9fdmlydF90b19tYWRkcih1bnNpZ25lZCBsb25nIHZh KQogeworICAgIHBhZGRyX3QgbWE7CisKICAgICBBU1NFUlQodmEgPCBESVJFQ1RNQVBfVklSVF9F TkQpOwogICAgIGlmICggdmEgPj0gRElSRUNUTUFQX1ZJUlRfU1RBUlQgKQogICAgICAgICB2YSAt PSBESVJFQ1RNQVBfVklSVF9TVEFSVDsKQEAgLTY2LDE2ICs3Miw4MSBAQCBzdGF0aWMgaW5saW5l IHVuc2lnbmVkIGxvbmcgX192aXJ0X3RvX21hCiAKICAgICAgICAgdmEgKz0geGVuX3BoeXNfc3Rh cnQgLSBYRU5fVklSVF9TVEFSVDsKICAgICB9Ci0gICAgcmV0dXJuICh2YSAmIG1hX3ZhX2JvdHRv bV9tYXNrKSB8Ci0gICAgICAgICAgICgodmEgPDwgcGZuX3BkeF9ob2xlX3NoaWZ0KSAmIG1hX3Rv cF9tYXNrKTsKKworI2lmZGVmIEhBVkVfR0FTX1FVT1RFRF9FWFBSX1NZTQorI2RlZmluZSBTWU1O QU1FKHBmeC4uLikgIlwiIiAjcGZ4ICJkbzJtYV8lW21hXV8lW29mZl1cIiIKKyAgICBhbHRlcm5h dGl2ZV9pb18yKCJjYWxsICIgU1lNTkFNRSgpICI7ICIgQVNNX05PUDQgIlx0IgorICAgICAgICAg ICAgICAgICAgICAgTElOS09OQ0VfUFJPTE9HVUUoU1lNTkFNRSkKKyAgICAgICAgICAgICAgICAg ICAgICJtb3YgJVtzaGlmdF0sICUlZWN4XG5cdCIKKyAgICAgICAgICAgICAgICAgICAgICJtb3Yg JVtvZmZdLCAlW21hXVxuXHQiCisgICAgICAgICAgICAgICAgICAgICAiYW5kICVbYm1hc2tdLCAl W21hXVxuXHQiCisgICAgICAgICAgICAgICAgICAgICAic2hsICUlY2wsICVbb2ZmXVxuXHQiCisg ICAgICAgICAgICAgICAgICAgICAiYW5kICVbdG1hc2tdLCAlW29mZl1cblx0IgorICAgICAgICAg ICAgICAgICAgICAgIm9yICVbb2ZmXSwgJVttYV1cblx0IgorICAgICAgICAgICAgICAgICAgICAg InJldFxuXHQiCisgICAgICAgICAgICAgICAgICAgICBMSU5LT05DRV9FUElMT0dVRShTWU1OQU1F KSwKKyAgICAgICAgICAgICAgICAgICAgICJjYWxsICIgU1lNTkFNRSgpLCBYODZfRkVBVFVSRV9B TFdBWVMsCisgICAgICAgICAgICAgICAgICAgICAicGRlcCAlW21hc2tdLCAlW29mZl0sICVbbWFd IiwgWDg2X0ZFQVRVUkVfQk1JMiwKKyAgICAgICAgICAgICAgICAgICAgIEFTTV9PVVRQVVQyKFtt YV0gIj0mciIgKG1hKSwgW29mZl0gIityIiAodmEpKSwKKyAgICAgICAgICAgICAgICAgICAgIFtt YXNrXSAibSIgKG1hX3JlYWxfbWFzayksCisgICAgICAgICAgICAgICAgICAgICBbc2hpZnRdICJt IiAocGZuX3BkeF9ob2xlX3NoaWZ0KSwKKyAgICAgICAgICAgICAgICAgICAgIFtibWFza10gIm0i IChtYV92YV9ib3R0b21fbWFzayksCisgICAgICAgICAgICAgICAgICAgICBbdG1hc2tdICJtIiAo bWFfdG9wX21hc2spCisgICAgICAgICAgICAgICAgICAgICA6ICJlY3giKTsKKyN1bmRlZiBTWU1O QU1FCisjZWxzZQorICAgIGFsdGVybmF0aXZlX2lvXzIoImNhbGwgZG8ybWE7ICIgQVNNX05PUDQs CisgICAgICAgICAgICAgICAgICAgICAiY2FsbCBkbzJtYSIsIFg4Nl9GRUFUVVJFX0FMV0FZUywK KyAgICAgICAgICAgICAgICAgICAgIC8qIHBkZXAgbWFfcmVhbF9tYXNrKCVyaXApLCAlcmRpLCAl cmF4ICovCisgICAgICAgICAgICAgICAgICAgICAiLmJ5dGUgMHhjNCwgMHhlMiwgMHhjMywgMHhm NSwgMHgwNVxuXHQiCisgICAgICAgICAgICAgICAgICAgICAiLmxvbmcgbWFfcmVhbF9tYXNrIC0g NCAtIC4iLAorICAgICAgICAgICAgICAgICAgICAgWDg2X0ZFQVRVUkVfQk1JMiwKKyAgICAgICAg ICAgICAgICAgICAgIEFTTV9PVVRQVVQyKCI9YSIgKG1hKSwgIitEIiAodmEpKSwgIm0iIChtYV9y ZWFsX21hc2spCisgICAgICAgICAgICAgICAgICAgICA6ICJyY3giLCAicmR4IiwgInJzaSIsICJy OCIsICJyOSIsICJyMTAiLCAicjExIik7CisjZW5kaWYKKworICAgIHJldHVybiBtYTsKIH0KIAot c3RhdGljIGlubGluZSB2b2lkICpfX21hZGRyX3RvX3ZpcnQodW5zaWduZWQgbG9uZyBtYSkKK3N0 YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgKl9fbWFkZHJfdG9fdmlydChwYWRkcl90IG1hKQogewor ICAgIHVuc2lnbmVkIGxvbmcgb2ZmOworCiAgICAgQVNTRVJUKHBmbl90b19wZHgobWEgPj4gUEFH RV9TSElGVCkgPCAoRElSRUNUTUFQX1NJWkUgPj4gUEFHRV9TSElGVCkpOwotICAgIHJldHVybiAo dm9pZCAqKShESVJFQ1RNQVBfVklSVF9TVEFSVCArCi0gICAgICAgICAgICAgICAgICAgICgobWEg JiBtYV92YV9ib3R0b21fbWFzaykgfAotICAgICAgICAgICAgICAgICAgICAgKChtYSAmIG1hX3Rv cF9tYXNrKSA+PiBwZm5fcGR4X2hvbGVfc2hpZnQpKSk7CisKKyNpZmRlZiBIQVZFX0dBU19RVU9U RURfRVhQUl9TWU0KKyNkZWZpbmUgU1lNTkFNRShwZnguLi4pICJcIiIgI3BmeCAibWEyZG9fJVtv ZmZdXyVbbWFdXCIiCisgICAgYWx0ZXJuYXRpdmVfaW9fMigiY2FsbCAiIFNZTU5BTUUoKSAiOyAi IEFTTV9OT1A0ICJcdCIKKyAgICAgICAgICAgICAgICAgICAgIExJTktPTkNFX1BST0xPR1VFKFNZ TU5BTUUpCisgICAgICAgICAgICAgICAgICAgICAibW92ICVbdG1hc2tdLCAlW29mZl1cblx0Igor ICAgICAgICAgICAgICAgICAgICAgIm1vdiAlW3NoaWZ0XSwgJSVlY3hcblx0IgorICAgICAgICAg ICAgICAgICAgICAgImFuZCAlW21hXSwgJVtvZmZdXG5cdCIKKyAgICAgICAgICAgICAgICAgICAg ICJhbmQgJVtibWFza10sICVbbWFdXG5cdCIKKyAgICAgICAgICAgICAgICAgICAgICJzaHIgJSVj bCwgJVtvZmZdXG5cdCIKKyAgICAgICAgICAgICAgICAgICAgICJvciAlW21hXSwgJVtvZmZdXG5c dCIKKyAgICAgICAgICAgICAgICAgICAgICJyZXRcblx0IgorICAgICAgICAgICAgICAgICAgICAg TElOS09OQ0VfRVBJTE9HVUUoU1lNTkFNRSksCisgICAgICAgICAgICAgICAgICAgICAiY2FsbCAi IFNZTU5BTUUoKSwgWDg2X0ZFQVRVUkVfQUxXQVlTLAorICAgICAgICAgICAgICAgICAgICAgInBl eHQgJVttYXNrXSwgJVttYV0sICVbb2ZmXSIsIFg4Nl9GRUFUVVJFX0JNSTIsCisgICAgICAgICAg ICAgICAgICAgICBBU01fT1VUUFVUMihbb2ZmXSAiPSZyIiAob2ZmKSwgW21hXSAiK3IiIChtYSkp LAorICAgICAgICAgICAgICAgICAgICAgW21hc2tdICJtIiAobWFfcmVhbF9tYXNrKSwKKyAgICAg ICAgICAgICAgICAgICAgIFtzaGlmdF0gIm0iIChwZm5fcGR4X2hvbGVfc2hpZnQpLAorICAgICAg ICAgICAgICAgICAgICAgW2JtYXNrXSAibSIgKG1hX3ZhX2JvdHRvbV9tYXNrKSwKKyAgICAgICAg ICAgICAgICAgICAgIFt0bWFza10gIm0iIChtYV90b3BfbWFzaykKKyAgICAgICAgICAgICAgICAg ICAgIDogImVjeCIpOworI3VuZGVmIFNZTU5BTUUKKyNlbHNlCisgICAgYWx0ZXJuYXRpdmVfaW9f MigiY2FsbCBtYTJkbzsgIiBBU01fTk9QNCwKKyAgICAgICAgICAgICAgICAgICAgICJjYWxsIG1h MmRvIiwgWDg2X0ZFQVRVUkVfQUxXQVlTLAorICAgICAgICAgICAgICAgICAgICAgLyogcGV4dCBt YV9yZWFsX21hc2soJXJpcCksICVyZGksICVyYXggKi8KKyAgICAgICAgICAgICAgICAgICAgICIu Ynl0ZSAweGM0LCAweGUyLCAweGMyLCAweGY1LCAweDA1XG5cdCIKKyAgICAgICAgICAgICAgICAg ICAgICIubG9uZyBtYV9yZWFsX21hc2sgLSA0IC0gLiIsCisgICAgICAgICAgICAgICAgICAgICBY ODZfRkVBVFVSRV9CTUkyLAorICAgICAgICAgICAgICAgICAgICAgQVNNX09VVFBVVDIoIj1hIiAo b2ZmKSwgIitEIiAobWEpKSwgIm0iIChtYV9yZWFsX21hc2spCisgICAgICAgICAgICAgICAgICAg ICA6ICJyY3giLCAicmR4IiwgInJzaSIsICJyOCIsICJyOSIsICJyMTAiLCAicjExIik7CisjZW5k aWYKKworICAgIHJldHVybiAodm9pZCAqKURJUkVDVE1BUF9WSVJUX1NUQVJUICsgb2ZmOwogfQog CiAvKiByZWFkIGFjY2VzcyAoc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgZGVidWcgcHJpbnRrJ3Mp ICovCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=