From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH RFC 13/55] x86/mm: rewrite virt_to_xen_l3e Date: Thu, 7 Feb 2019 16:44:14 +0000 Message-ID: <20190207164456.9260-14-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 1grn0y-0000ng-Gs for xen-devel@lists.xenproject.org; Thu, 07 Feb 2019 16:59:04 +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+Ci0tLQogeGVuL2FyY2gveDg2L21tLmMgfCA2MSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCBjN2ZkMmNhMTEz Li44NzUxYmU2ZTNhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJj aC94ODYvbW0uYwpAQCAtNDc2OSw0NSArNDc2OSw3MCBAQCB2b2lkIGZyZWVfeGVuX3BhZ2V0YWJs ZV9uZXcobWZuX3QgbWZuKQogCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG1hcF9wZ2Rpcl9sb2Nr KTsKIAorLyoKKyAqIEdpdmVuIGEgdmlydHVhbCBhZGRyZXNzLCByZXR1cm4gYSBwb2ludGVyIHRv IHhlbidzIEwzIGVudHJ5LiBDYWxsZXIKKyAqIG5lZWRzIHRvIHVubWFwIHRoZSBwb2ludGVyLgor ICovCiBzdGF0aWMgbDNfcGdlbnRyeV90ICp2aXJ0X3RvX3hlbl9sM2UodW5zaWduZWQgbG9uZyB2 KQogewogICAgIGw0X3BnZW50cnlfdCAqcGw0ZTsKKyAgICBsM19wZ2VudHJ5X3QgKnBsM2UgPSBO VUxMOwogCiAgICAgcGw0ZSA9ICZpZGxlX3BnX3RhYmxlW2w0X3RhYmxlX29mZnNldCh2KV07CiAg ICAgaWYgKCAhKGw0ZV9nZXRfZmxhZ3MoKnBsNGUpICYgX1BBR0VfUFJFU0VOVCkgKQogICAgIHsK ICAgICAgICAgYm9vbCBsb2NraW5nID0gc3lzdGVtX3N0YXRlID4gU1lTX1NUQVRFX2Jvb3Q7Ci0g ICAgICAgIGwzX3BnZW50cnlfdCAqbDN0ID0gYWxsb2NfeGVuX3BhZ2V0YWJsZSgpOworICAgICAg ICBsM19wZ2VudHJ5X3QgKmwzdDsKKyAgICAgICAgbWZuX3QgbWZuOworCisgICAgICAgIG1mbiA9 IGFsbG9jX3hlbl9wYWdldGFibGVfbmV3KCk7CisgICAgICAgIGlmICggbWZuX2VxKG1mbiwgSU5W QUxJRF9NRk4pICkKKyAgICAgICAgICAgIGdvdG8gb3V0OworCisgICAgICAgIGwzdCA9IG1hcF94 ZW5fcGFnZXRhYmxlX25ldyhtZm4pOwogCi0gICAgICAgIGlmICggIWwzdCApCi0gICAgICAgICAg ICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKCBsb2NraW5nICkKICAgICAgICAgICAgIHNwaW5f bG9jaygmbWFwX3BnZGlyX2xvY2spOwogICAgICAgICBpZiAoICEobDRlX2dldF9mbGFncygqcGw0 ZSkgJiBfUEFHRV9QUkVTRU5UKSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGw0X3BnZW50cnlf dCBsNGUgPSBsNGVfZnJvbV9wYWRkcihfX3BhKGwzdCksIF9fUEFHRV9IWVBFUlZJU09SKTsKKyAg ICAgICAgICAgIGw0X3BnZW50cnlfdCBsNGUgPSBsNGVfZnJvbV9tZm4obWZuLCBfX1BBR0VfSFlQ RVJWSVNPUik7CiAKICAgICAgICAgICAgIGNsZWFyX3BhZ2UobDN0KTsKICAgICAgICAgICAgIGw0 ZV93cml0ZShwbDRlLCBsNGUpOwogICAgICAgICAgICAgZWZpX3VwZGF0ZV9sNF9wZ3RhYmxlKGw0 X3RhYmxlX29mZnNldCh2KSwgbDRlKTsKKyAgICAgICAgICAgIHBsM2UgPSBsM3QgKyBsM190YWJs ZV9vZmZzZXQodik7CiAgICAgICAgICAgICBsM3QgPSBOVUxMOwogICAgICAgICB9CiAgICAgICAg IGlmICggbG9ja2luZyApCiAgICAgICAgICAgICBzcGluX3VubG9jaygmbWFwX3BnZGlyX2xvY2sp OwogICAgICAgICBpZiAoIGwzdCApCi0gICAgICAgICAgICBmcmVlX3hlbl9wYWdldGFibGUobDN0 KTsKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKCFwbDNlKTsKKyAgICAgICAgICAgIEFT U0VSVCghbWZuX2VxKG1mbiwgSU5WQUxJRF9NRk4pKTsKKyAgICAgICAgICAgIFVOTUFQX1hFTl9Q QUdFVEFCTEVfTkVXKGwzdCk7CisgICAgICAgICAgICBmcmVlX3hlbl9wYWdldGFibGVfbmV3KG1m bik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoICFwbDNlICkKKyAgICB7CisgICAgICAg IEFTU0VSVChsNGVfZ2V0X2ZsYWdzKCpwbDRlKSAmIF9QQUdFX1BSRVNFTlQpOworICAgICAgICBw bDNlID0gKGwzX3BnZW50cnlfdCAqKW1hcF94ZW5fcGFnZXRhYmxlX25ldyhsNGVfZ2V0X21mbigq cGw0ZSkpCisgICAgICAgICAgICArIGwzX3RhYmxlX29mZnNldCh2KTsKICAgICB9CiAKLSAgICBy ZXR1cm4gbDRlX3RvX2wzZSgqcGw0ZSkgKyBsM190YWJsZV9vZmZzZXQodik7Cisgb3V0OgorICAg IHJldHVybiBwbDNlOwogfQogCiBzdGF0aWMgbDJfcGdlbnRyeV90ICp2aXJ0X3RvX3hlbl9sMmUo dW5zaWduZWQgbG9uZyB2KQogewogICAgIGwzX3BnZW50cnlfdCAqcGwzZTsKKyAgICBsMl9wZ2Vu dHJ5X3QgKnBsMmUgPSBOVUxMOwogCiAgICAgcGwzZSA9IHZpcnRfdG9feGVuX2wzZSh2KTsKICAg ICBpZiAoICFwbDNlICkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGdvdG8gb3V0Owog CiAgICAgaWYgKCAhKGwzZV9nZXRfZmxhZ3MoKnBsM2UpICYgX1BBR0VfUFJFU0VOVCkgKQogICAg IHsKQEAgLTQ4MTUsNyArNDg0MCw4IEBAIHN0YXRpYyBsMl9wZ2VudHJ5X3QgKnZpcnRfdG9feGVu X2wyZSh1bnNpZ25lZCBsb25nIHYpCiAgICAgICAgIGwyX3BnZW50cnlfdCAqbDJ0ID0gYWxsb2Nf eGVuX3BhZ2V0YWJsZSgpOwogCiAgICAgICAgIGlmICggIWwydCApCi0gICAgICAgICAgICByZXR1 cm4gTlVMTDsKKyAgICAgICAgICAgIGdvdG8gb3V0OworCiAgICAgICAgIGlmICggbG9ja2luZyAp CiAgICAgICAgICAgICBzcGluX2xvY2soJm1hcF9wZ2Rpcl9sb2NrKTsKICAgICAgICAgaWYgKCAh KGwzZV9nZXRfZmxhZ3MoKnBsM2UpICYgX1BBR0VfUFJFU0VOVCkgKQpAQCAtNDgzMSw3ICs0ODU3 LDExIEBAIHN0YXRpYyBsMl9wZ2VudHJ5X3QgKnZpcnRfdG9feGVuX2wyZSh1bnNpZ25lZCBsb25n IHYpCiAgICAgfQogCiAgICAgQlVHX09OKGwzZV9nZXRfZmxhZ3MoKnBsM2UpICYgX1BBR0VfUFNF KTsKLSAgICByZXR1cm4gbDNlX3RvX2wyZSgqcGwzZSkgKyBsMl90YWJsZV9vZmZzZXQodik7Cisg ICAgcGwyZSA9IGwzZV90b19sMmUoKnBsM2UpICsgbDJfdGFibGVfb2Zmc2V0KHYpOworCisgb3V0 OgorICAgIFVOTUFQX1hFTl9QQUdFVEFCTEVfTkVXKHBsM2UpOworICAgIHJldHVybiBwbDJlOwog fQogCiBsMV9wZ2VudHJ5X3QgKnZpcnRfdG9feGVuX2wxZSh1bnNpZ25lZCBsb25nIHYpCkBAIC00 ODg3LDcgKzQ5MTcsNyBAQCBpbnQgbWFwX3BhZ2VzX3RvX3hlbigKICAgICB1bnNpZ25lZCBpbnQg ZmxhZ3MpCiB7CiAgICAgYm9vbCBsb2NraW5nID0gc3lzdGVtX3N0YXRlID4gU1lTX1NUQVRFX2Jv b3Q7Ci0gICAgbDNfcGdlbnRyeV90ICpwbDNlLCBvbDNlOworICAgIGwzX3BnZW50cnlfdCAqcGwz ZSA9IE5VTEwsIG9sM2U7CiAgICAgbDJfcGdlbnRyeV90ICpwbDJlLCBvbDJlOwogICAgIGwxX3Bn ZW50cnlfdCAqcGwxZSwgb2wxZTsKICAgICB1bnNpZ25lZCBpbnQgIGk7CkBAIC01MjYzLDcgKzUy OTMsOCBAQCBpbnQgbWFwX3BhZ2VzX3RvX3hlbigKICAgICAgICAgICAgIGVsc2UgaWYgKCBsb2Nr aW5nICkKICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmbWFwX3BnZGlyX2xvY2spOwogICAg ICAgICB9Ci0gICAgZW5kX29mX2xvb3A6OworICAgIGVuZF9vZl9sb29wOgorICAgICAgICBVTk1B UF9YRU5fUEFHRVRBQkxFX05FVyhwbDNlKTsKICAgICB9CiAKICN1bmRlZiBmbHVzaF9mbGFncwpA QCAtNTI3MSw2ICs1MzAyLDcgQEAgaW50IG1hcF9wYWdlc190b194ZW4oCiAgICAgcmMgPSAwOwog CiAgb3V0OgorICAgIFVOTUFQX1hFTl9QQUdFVEFCTEVfTkVXKHBsM2UpOwogICAgIHJldHVybiBy YzsKIH0KIApAQCAtNTI5NCw2ICs1MzI2LDcgQEAgaW50IHBvcHVsYXRlX3B0X3JhbmdlKHVuc2ln bmVkIGxvbmcgdmlydCwgdW5zaWduZWQgbG9uZyBucl9tZm5zKQogaW50IG1vZGlmeV94ZW5fbWFw cGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUsIHVuc2lnbmVkIGludCBuZikK IHsKICAgICBib29sIGxvY2tpbmcgPSBzeXN0ZW1fc3RhdGUgPiBTWVNfU1RBVEVfYm9vdDsKKyAg ICBsM19wZ2VudHJ5X3QgKnBsM2UgPSBOVUxMOwogICAgIGwyX3BnZW50cnlfdCAqcGwyZTsKICAg ICBsMV9wZ2VudHJ5X3QgKnBsMWU7CiAgICAgdW5zaWduZWQgaW50ICBpOwpAQCAtNTMwOSw3ICs1 MzQyLDcgQEAgaW50IG1vZGlmeV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25l ZCBsb25nIGUsIHVuc2lnbmVkIGludCBuZikKIAogICAgIHdoaWxlICggdiA8IGUgKQogICAgIHsK LSAgICAgICAgbDNfcGdlbnRyeV90ICpwbDNlID0gdmlydF90b194ZW5fbDNlKHYpOworICAgICAg ICBwbDNlID0gdmlydF90b194ZW5fbDNlKHYpOwogCiAgICAgICAgIGlmICggIXBsM2UgfHwgIShs M2VfZ2V0X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BSRVNFTlQpICkKICAgICAgICAgewpAQCAtNTUz NSw3ICs1NTY4LDggQEAgaW50IG1vZGlmeV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1 bnNpZ25lZCBsb25nIGUsIHVuc2lnbmVkIGludCBuZikKICAgICAgICAgICAgIGVsc2UgaWYgKCBs b2NraW5nICkKICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmbWFwX3BnZGlyX2xvY2spOwog ICAgICAgICB9Ci0gICAgZW5kX29mX2xvb3A6OworICAgIGVuZF9vZl9sb29wOgorICAgICAgICBV Tk1BUF9YRU5fUEFHRVRBQkxFX05FVyhwbDNlKTsKICAgICB9CiAKICAgICBmbHVzaF9hcmVhKE5V TEwsIEZMVVNIX1RMQl9HTE9CQUwpOwpAQCAtNTU0NCw2ICs1NTc4LDcgQEAgaW50IG1vZGlmeV94 ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUsIHVuc2lnbmVkIGlu dCBuZikKICAgICByYyA9IDA7CiAKICBvdXQ6CisgICAgVU5NQVBfWEVOX1BBR0VUQUJMRV9ORVco cGwzZSk7CiAgICAgcmV0dXJuIHJjOwogfQogCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs