From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH RFC 15/55] x86/mm: rewrite virt_to_xen_l1e Date: Thu, 7 Feb 2019 16:44:16 +0000 Message-ID: <20190207164456.9260-16-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 us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1grn14-0000tz-9N for xen-devel@lists.xenproject.org; Thu, 07 Feb 2019 16:59:10 +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 UmV3cml0ZSB0aGlzIGZ1bmN0aW9uIHRvIHVzZSBuZXcgQVBJcy4gTW9kaWZ5IGl0cyBjYWxsZXJz IHRvIHVubWFwIHRoZQpwb2ludGVyIHJldHVybmVkLgoKU2lnbmVkLW9mZi1ieTogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyB8IDEw ICsrKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgIHwgMzAgKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMgYi94 ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYwppbmRleCA0YTA3Y2ZiMThlLi4yNDA4M2U5YTg2IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYworKysgYi94ZW4vYXJjaC94ODYv ZG9tYWluX3BhZ2UuYwpAQCAtMzMzLDIxICszMzMsMjMgQEAgdm9pZCB1bm1hcF9kb21haW5fcGFn ZV9nbG9iYWwoY29uc3Qgdm9pZCAqcHRyKQogbWZuX3QgZG9tYWluX3BhZ2VfbWFwX3RvX21mbihj b25zdCB2b2lkICpwdHIpCiB7CiAgICAgdW5zaWduZWQgbG9uZyB2YSA9ICh1bnNpZ25lZCBsb25n KXB0cjsKLSAgICBjb25zdCBsMV9wZ2VudHJ5X3QgKnBsMWU7CisgICAgbDFfcGdlbnRyeV90IGwx ZTsKIAogICAgIGlmICggdmEgPj0gRElSRUNUTUFQX1ZJUlRfU1RBUlQgKQogICAgICAgICByZXR1 cm4gX21mbih2aXJ0X3RvX21mbihwdHIpKTsKIAogICAgIGlmICggdmEgPj0gVk1BUF9WSVJUX1NU QVJUICYmIHZhIDwgVk1BUF9WSVJUX0VORCApCiAgICAgewotICAgICAgICBwbDFlID0gdmlydF90 b194ZW5fbDFlKHZhKTsKKyAgICAgICAgbDFfcGdlbnRyeV90ICpwbDFlID0gdmlydF90b194ZW5f bDFlKHZhKTsKICAgICAgICAgQlVHX09OKCFwbDFlKTsKKyAgICAgICAgbDFlID0gKnBsMWU7Cisg ICAgICAgIFVOTUFQX1hFTl9QQUdFVEFCTEVfTkVXKHBsMWUpOwogICAgIH0KICAgICBlbHNlCiAg ICAgewogICAgICAgICBBU1NFUlQodmEgPj0gTUFQQ0FDSEVfVklSVF9TVEFSVCAmJiB2YSA8IE1B UENBQ0hFX1ZJUlRfRU5EKTsKLSAgICAgICAgcGwxZSA9ICZfX2xpbmVhcl9sMV90YWJsZVtsMV9s aW5lYXJfb2Zmc2V0KHZhKV07CisgICAgICAgIGwxZSA9IF9fbGluZWFyX2wxX3RhYmxlW2wxX2xp bmVhcl9vZmZzZXQodmEpXTsKICAgICB9CiAKLSAgICByZXR1cm4gbDFlX2dldF9tZm4oKnBsMWUp OworICAgIHJldHVybiBsMWVfZ2V0X21mbihsMWUpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCA5MWJiNTNiOGI5Li4zNTZkNTYxYTA2 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpA QCAtNDg5NywyNiArNDg5Nyw0NCBAQCBsMV9wZ2VudHJ5X3QgKnZpcnRfdG9feGVuX2wxZSh1bnNp Z25lZCBsb25nIHYpCiAgICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJF U0VOVCkgKQogICAgIHsKICAgICAgICAgYm9vbCBsb2NraW5nID0gc3lzdGVtX3N0YXRlID4gU1lT X1NUQVRFX2Jvb3Q7Ci0gICAgICAgIGwxX3BnZW50cnlfdCAqbDF0ID0gYWxsb2NfeGVuX3BhZ2V0 YWJsZSgpOworICAgICAgICBsMV9wZ2VudHJ5X3QgKmwxdDsKKyAgICAgICAgbWZuX3QgbWZuOwog Ci0gICAgICAgIGlmICggIWwxdCApCisgICAgICAgIG1mbiA9IGFsbG9jX3hlbl9wYWdldGFibGVf bmV3KCk7CisgICAgICAgIGlmICggbWZuX2VxKG1mbiwgSU5WQUxJRF9NRk4pICkKICAgICAgICAg ICAgIGdvdG8gb3V0OworCisgICAgICAgIGwxdCA9IG1hcF94ZW5fcGFnZXRhYmxlX25ldyhtZm4p OworCiAgICAgICAgIGlmICggbG9ja2luZyApCiAgICAgICAgICAgICBzcGluX2xvY2soJm1hcF9w Z2Rpcl9sb2NrKTsKICAgICAgICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0Vf UFJFU0VOVCkgKQogICAgICAgICB7CiAgICAgICAgICAgICBjbGVhcl9wYWdlKGwxdCk7Ci0gICAg ICAgICAgICBsMmVfd3JpdGUocGwyZSwgbDJlX2Zyb21fcGFkZHIoX19wYShsMXQpLCBfX1BBR0Vf SFlQRVJWSVNPUikpOworICAgICAgICAgICAgbDJlX3dyaXRlKHBsMmUsIGwyZV9mcm9tX21mbiht Zm4sIF9fUEFHRV9IWVBFUlZJU09SKSk7CisgICAgICAgICAgICBwbDFlID0gbDF0ICsgbDFfdGFi bGVfb2Zmc2V0KHYpOwogICAgICAgICAgICAgbDF0ID0gTlVMTDsKICAgICAgICAgfQogICAgICAg ICBpZiAoIGxvY2tpbmcgKQogICAgICAgICAgICAgc3Bpbl91bmxvY2soJm1hcF9wZ2Rpcl9sb2Nr KTsKKwogICAgICAgICBpZiAoIGwxdCApCi0gICAgICAgICAgICBmcmVlX3hlbl9wYWdldGFibGUo bDF0KTsKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKCFwbDFlKTsKKyAgICAgICAgICAg IEFTU0VSVCghbWZuX2VxKG1mbiwgSU5WQUxJRF9NRk4pKTsKKyAgICAgICAgICAgIFVOTUFQX1hF Tl9QQUdFVEFCTEVfTkVXKGwxdCk7CisgICAgICAgICAgICBmcmVlX3hlbl9wYWdldGFibGVfbmV3 KG1mbik7CisgICAgICAgIH0KICAgICB9CiAKICAgICBCVUdfT04obDJlX2dldF9mbGFncygqcGwy ZSkgJiBfUEFHRV9QU0UpOwotICAgIHBsMWUgPSBsMmVfdG9fbDFlKCpwbDJlKSArIGwxX3RhYmxl X29mZnNldCh2KTsKKworICAgIGlmICggIXBsMWUgKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGwy ZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJFU0VOVCk7CisgICAgICAgIHBsMWUgPSAobDFf cGdlbnRyeV90ICopbWFwX3hlbl9wYWdldGFibGVfbmV3KGwyZV9nZXRfbWZuKCpwbDJlKSkKKyAg ICAgICAgICAgICsgbDFfdGFibGVfb2Zmc2V0KHYpOworICAgIH0KIAogIG91dDoKICAgICBVTk1B UF9YRU5fUEFHRVRBQkxFX05FVyhwbDJlKTsKQEAgLTUzMjAsNiArNTMzOCw3IEBAIGludCBtYXBf cGFnZXNfdG9feGVuKAogICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZtYXBfcGdkaXJfbG9j ayk7CiAgICAgICAgIH0KICAgICBlbmRfb2ZfbG9vcDoKKyAgICAgICAgVU5NQVBfWEVOX1BBR0VU QUJMRV9ORVcocGwxZSk7CiAgICAgICAgIFVOTUFQX1hFTl9QQUdFVEFCTEVfTkVXKHBsMmUpOwog ICAgICAgICBVTk1BUF9YRU5fUEFHRVRBQkxFX05FVyhwbDNlKTsKICAgICB9CkBAIC01MzI5LDYg KzUzNDgsNyBAQCBpbnQgbWFwX3BhZ2VzX3RvX3hlbigKICAgICByYyA9IDA7CiAKICBvdXQ6Cisg ICAgVU5NQVBfWEVOX1BBR0VUQUJMRV9ORVcocGwxZSk7CiAgICAgVU5NQVBfWEVOX1BBR0VUQUJM RV9ORVcocGwyZSk7CiAgICAgVU5NQVBfWEVOX1BBR0VUQUJMRV9ORVcocGwzZSk7CiAgICAgcmV0 dXJuIHJjOwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==