From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH RFC 14/55] x86/mm: rewrite xen_to_virt_l2e Date: Thu, 7 Feb 2019 16:44:15 +0000 Message-ID: <20190207164456.9260-15-wei.liu2@citrix.com> References: <20190207164456.9260-1-wei.liu2@citrix.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] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1grn1z-0001yf-Rp for xen-devel@lists.xenproject.org; Thu, 07 Feb 2019 17:00:07 +0000 In-Reply-To: <20190207164456.9260-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org UmV3cml0ZSB0aGF0IGZ1bmN0aW9uIHRvIHVzZSB0aGUgbmV3IEFQSXMuIE1vZGlmeSBpdHMgY2Fs bGVycyB0byB1bm1hcAp0aGUgcG9pbnRlciByZXR1cm5lZC4KClNpZ25lZC1vZmYtYnk6IFdlaSBM aXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L21tLmMgfCA0NiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMzcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDg3NTFiZTZlM2EuLjkxYmI1M2I4 YjkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5j CkBAIC00ODI1LDYgKzQ4MjUsMTAgQEAgc3RhdGljIGwzX3BnZW50cnlfdCAqdmlydF90b194ZW5f bDNlKHVuc2lnbmVkIGxvbmcgdikKICAgICByZXR1cm4gcGwzZTsKIH0KIAorLyoKKyAqIEdpdmVu IGEgdmlydHVhbCBhZGRyZXNzLCByZXR1cm4gYSBwb2ludGVyIHRvIHhlbidzIEwyIGVudHJ5LiBD YWxsZXIKKyAqIG5lZWRzIHRvIHVubWFwIHRoZSBwb2ludGVyLgorICovCiBzdGF0aWMgbDJfcGdl bnRyeV90ICp2aXJ0X3RvX3hlbl9sMmUodW5zaWduZWQgbG9uZyB2KQogewogICAgIGwzX3BnZW50 cnlfdCAqcGwzZTsKQEAgLTQ4MzcsMjcgKzQ4NDEsNDQgQEAgc3RhdGljIGwyX3BnZW50cnlfdCAq dmlydF90b194ZW5fbDJlKHVuc2lnbmVkIGxvbmcgdikKICAgICBpZiAoICEobDNlX2dldF9mbGFn cygqcGwzZSkgJiBfUEFHRV9QUkVTRU5UKSApCiAgICAgewogICAgICAgICBib29sIGxvY2tpbmcg PSBzeXN0ZW1fc3RhdGUgPiBTWVNfU1RBVEVfYm9vdDsKLSAgICAgICAgbDJfcGdlbnRyeV90ICps MnQgPSBhbGxvY194ZW5fcGFnZXRhYmxlKCk7CisgICAgICAgIGwyX3BnZW50cnlfdCAqbDJ0Owor ICAgICAgICBtZm5fdCBtZm47CiAKLSAgICAgICAgaWYgKCAhbDJ0ICkKKyAgICAgICAgbWZuID0g YWxsb2NfeGVuX3BhZ2V0YWJsZV9uZXcoKTsKKyAgICAgICAgaWYgKCBtZm5fZXEobWZuLCBJTlZB TElEX01GTikgKQogICAgICAgICAgICAgZ290byBvdXQ7CiAKKyAgICAgICAgbDJ0ID0gbWFwX3hl bl9wYWdldGFibGVfbmV3KG1mbik7CisKICAgICAgICAgaWYgKCBsb2NraW5nICkKICAgICAgICAg ICAgIHNwaW5fbG9jaygmbWFwX3BnZGlyX2xvY2spOwogICAgICAgICBpZiAoICEobDNlX2dldF9m bGFncygqcGwzZSkgJiBfUEFHRV9QUkVTRU5UKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGNs ZWFyX3BhZ2UobDJ0KTsKLSAgICAgICAgICAgIGwzZV93cml0ZShwbDNlLCBsM2VfZnJvbV9wYWRk cihfX3BhKGwydCksIF9fUEFHRV9IWVBFUlZJU09SKSk7CisgICAgICAgICAgICBsM2Vfd3JpdGUo cGwzZSwgbDNlX2Zyb21fbWZuKG1mbiwgX19QQUdFX0hZUEVSVklTT1IpKTsKKyAgICAgICAgICAg IHBsMmUgPSBsMnQgKyBsMl90YWJsZV9vZmZzZXQodik7CiAgICAgICAgICAgICBsMnQgPSBOVUxM OwogICAgICAgICB9CiAgICAgICAgIGlmICggbG9ja2luZyApCiAgICAgICAgICAgICBzcGluX3Vu bG9jaygmbWFwX3BnZGlyX2xvY2spOworCiAgICAgICAgIGlmICggbDJ0ICkKLSAgICAgICAgICAg IGZyZWVfeGVuX3BhZ2V0YWJsZShsMnQpOworICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQo IXBsMmUpOworICAgICAgICAgICAgQVNTRVJUKCFtZm5fZXEobWZuLCBJTlZBTElEX01GTikpOwor ICAgICAgICAgICAgVU5NQVBfWEVOX1BBR0VUQUJMRV9ORVcobDJ0KTsKKyAgICAgICAgICAgIGZy ZWVfeGVuX3BhZ2V0YWJsZV9uZXcobWZuKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIEJVR19P TihsM2VfZ2V0X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BTRSk7Ci0gICAgcGwyZSA9IGwzZV90b19s MmUoKnBsM2UpICsgbDJfdGFibGVfb2Zmc2V0KHYpOworCisgICAgaWYgKCAhcGwyZSApCisgICAg eworICAgICAgICBBU1NFUlQobDNlX2dldF9mbGFncygqcGwzZSkgJiBfUEFHRV9QUkVTRU5UKTsK KyAgICAgICAgcGwyZSA9IChsMl9wZ2VudHJ5X3QgKiltYXBfeGVuX3BhZ2V0YWJsZV9uZXcobDNl X2dldF9tZm4oKnBsM2UpKQorICAgICAgICAgICAgKyBsMl90YWJsZV9vZmZzZXQodik7CisgICAg fQogCiAgb3V0OgogICAgIFVOTUFQX1hFTl9QQUdFVEFCTEVfTkVXKHBsM2UpOwpAQCAtNDg2Nywx MCArNDg4OCwxMSBAQCBzdGF0aWMgbDJfcGdlbnRyeV90ICp2aXJ0X3RvX3hlbl9sMmUodW5zaWdu ZWQgbG9uZyB2KQogbDFfcGdlbnRyeV90ICp2aXJ0X3RvX3hlbl9sMWUodW5zaWduZWQgbG9uZyB2 KQogewogICAgIGwyX3BnZW50cnlfdCAqcGwyZTsKKyAgICBsMV9wZ2VudHJ5X3QgKnBsMWUgPSBO VUxMOwogCiAgICAgcGwyZSA9IHZpcnRfdG9feGVuX2wyZSh2KTsKICAgICBpZiAoICFwbDJlICkK LSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGdvdG8gb3V0OwogCiAgICAgaWYgKCAhKGwy ZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJFU0VOVCkgKQogICAgIHsKQEAgLTQ4NzgsNyAr NDkwMCw3IEBAIGwxX3BnZW50cnlfdCAqdmlydF90b194ZW5fbDFlKHVuc2lnbmVkIGxvbmcgdikK ICAgICAgICAgbDFfcGdlbnRyeV90ICpsMXQgPSBhbGxvY194ZW5fcGFnZXRhYmxlKCk7CiAKICAg ICAgICAgaWYgKCAhbDF0ICkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAg Z290byBvdXQ7CiAgICAgICAgIGlmICggbG9ja2luZyApCiAgICAgICAgICAgICBzcGluX2xvY2so Jm1hcF9wZ2Rpcl9sb2NrKTsKICAgICAgICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYg X1BBR0VfUFJFU0VOVCkgKQpAQCAtNDg5NCw3ICs0OTE2LDExIEBAIGwxX3BnZW50cnlfdCAqdmly dF90b194ZW5fbDFlKHVuc2lnbmVkIGxvbmcgdikKICAgICB9CiAKICAgICBCVUdfT04obDJlX2dl dF9mbGFncygqcGwyZSkgJiBfUEFHRV9QU0UpOwotICAgIHJldHVybiBsMmVfdG9fbDFlKCpwbDJl KSArIGwxX3RhYmxlX29mZnNldCh2KTsKKyAgICBwbDFlID0gbDJlX3RvX2wxZSgqcGwyZSkgKyBs MV90YWJsZV9vZmZzZXQodik7CisKKyBvdXQ6CisgICAgVU5NQVBfWEVOX1BBR0VUQUJMRV9ORVco cGwyZSk7CisgICAgcmV0dXJuIHBsMWU7CiB9CiAKIC8qIENvbnZlcnQgdG8gZnJvbSBzdXBlcnBh Z2UtbWFwcGluZyBmbGFncyBmb3IgbWFwX3BhZ2VzX3RvX3hlbigpLiAqLwpAQCAtNDkxOCw3ICs0 OTQ0LDcgQEAgaW50IG1hcF9wYWdlc190b194ZW4oCiB7CiAgICAgYm9vbCBsb2NraW5nID0gc3lz dGVtX3N0YXRlID4gU1lTX1NUQVRFX2Jvb3Q7CiAgICAgbDNfcGdlbnRyeV90ICpwbDNlID0gTlVM TCwgb2wzZTsKLSAgICBsMl9wZ2VudHJ5X3QgKnBsMmUsIG9sMmU7CisgICAgbDJfcGdlbnRyeV90 ICpwbDJlID0gTlVMTCwgb2wyZTsKICAgICBsMV9wZ2VudHJ5X3QgKnBsMWUsIG9sMWU7CiAgICAg dW5zaWduZWQgaW50ICBpOwogICAgIGludCByYyA9IC1FTk9NRU07CkBAIC01Mjk0LDYgKzUzMjAs NyBAQCBpbnQgbWFwX3BhZ2VzX3RvX3hlbigKICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygm bWFwX3BnZGlyX2xvY2spOwogICAgICAgICB9CiAgICAgZW5kX29mX2xvb3A6CisgICAgICAgIFVO TUFQX1hFTl9QQUdFVEFCTEVfTkVXKHBsMmUpOwogICAgICAgICBVTk1BUF9YRU5fUEFHRVRBQkxF X05FVyhwbDNlKTsKICAgICB9CiAKQEAgLTUzMDIsNiArNTMyOSw3IEBAIGludCBtYXBfcGFnZXNf dG9feGVuKAogICAgIHJjID0gMDsKIAogIG91dDoKKyAgICBVTk1BUF9YRU5fUEFHRVRBQkxFX05F VyhwbDJlKTsKICAgICBVTk1BUF9YRU5fUEFHRVRBQkxFX05FVyhwbDNlKTsKICAgICByZXR1cm4g cmM7CiB9Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9q ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVu LWRldmVs