From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v2 03/11] IOMMU/MMU: enhance the call trees of IOMMU unmapping and mapping Date: Mon, 18 Apr 2016 22:00:03 +0800 Message-ID: <1460988011-17758-4-git-send-email-quan.xu@intel.com> References: <1460988011-17758-1-git-send-email-quan.xu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1460988011-17758-1-git-send-email-quan.xu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , Keir Fraser , Jan Beulich , George Dunlap , Andrew Cooper , dario.faggioli@citrix.com, Jun Nakajima , Quan Xu List-Id: xen-devel@lists.xenproject.org SWYgSU9NTVUgbWFwcGluZyBhbmQgdW5tYXBwaW5nIGZhaWxlZCwgdGhlIGRvbWFpbiAod2l0aCB0 aGUgZXhjZXB0aW9uIG9mCnRoZSBoYXJkd2FyZSBkb21haW4pIGlzIGNyYXNoZWQsIHRyZWF0ZWQg YXMgYSBmYXRhbCBlcnJvci4gUm9sbGJhY2sgY2FuCmJlIGxpZ2h0ZXIgd2VpZ2h0LgoKRm9yIHRo ZSBoYXJkd2FyZSBkb21haW4sIHdlIGRvIHRoaW5ncyBvbiBhIGJlc3QgZWZmb3J0IGJhc2lzLiBX aGVuIHJvbGxiYWNrCmlzIG5vdCBmZWFzaWJsZSAoaW4gZWFybHkgaW5pdGlhbGl6YXRpb24gcGhh c2Ugb3IgdHJhZGUtb2ZmIG9mIGNvbXBsZXhpdHkpLAphdCBsZWFzdCwgdW5tYXAgdXBvbiBtYXBz IGVycm9yIG9yIHRoZW4gdGhyb3cgb3V0IGVycm9yIG1lc3NhZ2UuCgpJT01NVSB1bm1hcHBpbmcg c2hvdWxkIHBlcmhhcHMgY29udGludWUgZGVzcGl0ZSBhbiBlcnJvciwgaW4gYW4gYXR0ZW1wdCB0 bwpkbyBiZXN0IGVmZm9ydCBjbGVhbnVwLgoKU2lnbmVkLW9mZi1ieTogUXVhbiBYdSA8cXVhbi54 dUBpbnRlbC5jb20+CgpDQzogS2VpciBGcmFzZXIgPGtlaXJAeGVuLm9yZz4KQ0M6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ0M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+CkNDOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkND OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ0M6IEdlb3JnZSBEdW5sYXAgPGdl b3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvbW0uYyAgICAgICAg ICAgICAgIHwgMTMgKysrKysrKystLS0tLQogeGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyAgICAg ICB8IDI1ICsrKysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQu YyAgICAgICAgfCAyMiArKysrKysrKysrKysrKysrKystLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJt LmMgICAgICAgICAgIHwgMTEgKysrKysrKysrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv bW11LmMgfCAxNCArKysrKysrKysrKysrLQogNSBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25z KCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hl bi9hcmNoL3g4Ni9tbS5jCmluZGV4IGM5OTdiNTMuLjVjNGZiNTggMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0yNDY3LDcgKzI0NjcsNyBA QCBzdGF0aWMgaW50IF9fZ2V0X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNp Z25lZCBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJlZW1wdGli bGUpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBueCwgeCwgeSA9IHBhZ2UtPnUuaW51c2UudHlwZV9p bmZvOwotICAgIGludCByYyA9IDA7CisgICAgaW50IHJjID0gMCwgcmV0ID0gMDsKIAogICAgIEFT U0VSVCghKHR5cGUgJiB+KFBHVF90eXBlX21hc2sgfCBQR1RfcGFlX3hlbl9sMikpKTsKIApAQCAt MjU3OCwxMSArMjU3OCwxMSBAQCBzdGF0aWMgaW50IF9fZ2V0X3BhZ2VfdHlwZShzdHJ1Y3QgcGFn ZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsCiAgICAgICAgIGlmICggZCAmJiBpc19w dl9kb21haW4oZCkgJiYgdW5saWtlbHkobmVlZF9pb21tdShkKSkgKQogICAgICAgICB7CiAgICAg ICAgICAgICBpZiAoICh4ICYgUEdUX3R5cGVfbWFzaykgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQot ICAgICAgICAgICAgICAgIGlvbW11X3VubWFwX3BhZ2UoZCwgbWZuX3RvX2dtZm4oZCwgcGFnZV90 b19tZm4ocGFnZSkpKTsKKyAgICAgICAgICAgICAgICByZXQgPSBpb21tdV91bm1hcF9wYWdlKGQs IG1mbl90b19nbWZuKGQsIHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CiAgICAgICAgICAgICBlbHNlIGlm ICggdHlwZSA9PSBQR1Rfd3JpdGFibGVfcGFnZSApCi0gICAgICAgICAgICAgICAgaW9tbXVfbWFw X3BhZ2UoZCwgbWZuX3RvX2dtZm4oZCwgcGFnZV90b19tZm4ocGFnZSkpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBhZ2VfdG9fbWZuKHBhZ2UpLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOworICAgICAgICAg ICAgICAgIHJldCA9IGlvbW11X21hcF9wYWdlKGQsIG1mbl90b19nbWZuKGQsIHBhZ2VfdG9fbWZu KHBhZ2UpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX3RvX21m bihwYWdlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVh ZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjU5OSw2ICsy NTk5LDkgQEAgc3RhdGljIGludCBfX2dldF9wYWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFn ZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAgIGlmICggKHggJiBQR1RfcGFydGlhbCkgJiYgIShu eCAmIFBHVF9wYXJ0aWFsKSApCiAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwogCisgICAgaWYgKCB1 bmxpa2VseShyZXQpICkKKyAgICAgICAgcmMgPSByZXQ7CisKICAgICByZXR1cm4gcmM7CiB9CiAK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0v cDJtLWVwdC5jCmluZGV4IDNjYjY4NjguLjIyYzhkMTcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtNjY1LDcg KzY2NSw3IEBAIGVwdF9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQg bG9uZyBnZm4sIG1mbl90IG1mbiwKICAgICBlcHRfZW50cnlfdCAqdGFibGUsICplcHRfZW50cnkg PSBOVUxMOwogICAgIHVuc2lnbmVkIGxvbmcgZ2ZuX3JlbWFpbmRlciA9IGdmbjsKICAgICB1bnNp Z25lZCBpbnQgaSwgdGFyZ2V0ID0gb3JkZXIgLyBFUFRfVEFCTEVfT1JERVI7Ci0gICAgaW50IHJl dCwgcmMgPSAwOworICAgIGludCByZXQsIGVyciA9IDAsIHJjID0gMDsKICAgICBib29sX3QgZGly ZWN0X21taW8gPSAocDJtdCA9PSBwMm1fbW1pb19kaXJlY3QpOwogICAgIHVpbnQ4X3QgaXBhdCA9 IDA7CiAgICAgYm9vbF90IG5lZWRfbW9kaWZ5X3Z0ZF90YWJsZSA9IDE7CkBAIC04MzAsMTAgKzgz MCwyNiBAQCBvdXQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggaW9tbXVfZmxhZ3MgKQog ICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIpOyBpKysgKQotICAg ICAgICAgICAgICAgICAgICBpb21tdV9tYXBfcGFnZShkLCBnZm4gKyBpLCBtZm5feChtZm4pICsg aSwgaW9tbXVfZmxhZ3MpOworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg cmV0ID0gaW9tbXVfbWFwX3BhZ2UoZCwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGksIGlvbW11X2Zs YWdzKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJldCkgKQorICAgICAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpb21tdV91bm1hcF9wYWdlKGQsIGdmbiArIC0taSk7CisK KyAgICAgICAgICAgICAgICAgICAgICAgIGVyciA9IHJldDsKKyAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgb3Jk ZXIpOyBpKysgKQotICAgICAgICAgICAgICAgICAgICBpb21tdV91bm1hcF9wYWdlKGQsIGdmbiAr IGkpOworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gaW9tbXVf dW5tYXBfcGFnZShkLCBnZm4gKyBpKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIHVubGlr ZWx5KHJldCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gcmV0OworICAgICAgICAg ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtODQ5LDYgKzg2NSw5IEBAIG91dDoKICAg ICBpZiAoIHJjID09IDAgJiYgcDJtX2lzX2hvc3RwMm0ocDJtKSApCiAgICAgICAgIHAybV9hbHRw Mm1fcHJvcGFnYXRlX2NoYW5nZShkLCBfZ2ZuKGdmbiksIG1mbiwgb3JkZXIsIHAybXQsIHAybWEp OwogCisgICAgaWYgKCB1bmxpa2VseShlcnIpICkKKyAgICAgICAgcmMgPSBlcnI7CisKICAgICBy ZXR1cm4gcmM7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hl bi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwppbmRleCAzZDgwNjEyLi5kYjQyNTdhIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5j CkBAIC00OTgsNyArNDk4LDcgQEAgcDJtX3B0X3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAq cDJtLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgbWZuLAogICAgIGwxX3BnZW50cnlfdCBpbnRl cm1lZGlhdGVfZW50cnkgPSBsMWVfZW1wdHkoKTsKICAgICBsMl9wZ2VudHJ5X3QgbDJlX2NvbnRl bnQ7CiAgICAgbDNfcGdlbnRyeV90IGwzZV9jb250ZW50OwotICAgIGludCByYzsKKyAgICBpbnQg cmMsIHJldDsKICAgICB1bnNpZ25lZCBpbnQgaW9tbXVfcHRlX2ZsYWdzID0gcDJtX2dldF9pb21t dV9mbGFncyhwMm10KTsKICAgICAvKgogICAgICAqIG9sZF9tZm4gYW5kIGlvbW11X29sZF9mbGFn cyBjb250cm9sIHBvc3NpYmxlIGZsdXNoL3VwZGF0ZSBuZWVkcyBvbiB0aGUKQEAgLTY4MCwxMSAr NjgwLDI1IEBAIHAybV9wdF9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWdu ZWQgbG9uZyBnZm4sIG1mbl90IG1mbiwKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmICggaW9t bXVfcHRlX2ZsYWdzICkKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdl X29yZGVyKTsgaSsrICkKLSAgICAgICAgICAgICAgICBpb21tdV9tYXBfcGFnZShwMm0tPmRvbWFp biwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW9tbXVfcHRlX2ZsYWdzKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXQg PSBpb21tdV9tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9tbXVfcHRlX2ZsYWdzKTsKKyAg ICAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHJldCkgKQorICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgd2hpbGUgKGkpCisgICAgICAgICAgICAgICAgICAgICAgICBpb21t dV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBnZm4gKyAtLWkpOworCisgICAgICAgICAgICAgICAg ICAgIHJjID0gcmV0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAg ZWxzZQogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8IHBhZ2Vfb3JkZXIpOyBp KysgKQotICAgICAgICAgICAgICAgIGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIGdmbiAr IGkpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldCA9IGlvbW11X3VubWFwX3Bh Z2UocDJtLT5kb21haW4sIGdmbiArIGkpOworCisgICAgICAgICAgICAgICAgaWYgKCB1bmxpa2Vs eShyZXQpICkKKyAgICAgICAgICAgICAgICAgICAgcmMgPSByZXQ7CisgICAgICAgICAgICB9CiAg ICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9h cmNoL3g4Ni9tbS9wMm0uYwppbmRleCBiM2ZjZTFiLi45ODQ1MGE0IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC02MTAsMTMg KzYxMCwyMCBAQCBwMm1fcmVtb3ZlX3BhZ2Uoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWdu ZWQgbG9uZyBnZm4sIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIG1mbl90IG1mbl9yZXR1cm47CiAg ICAgcDJtX3R5cGVfdCB0OwogICAgIHAybV9hY2Nlc3NfdCBhOworICAgIGludCByZXQgPSAwLCBy YzsKIAogICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShwMm0tPmRvbWFpbikgKQogICAg IHsKICAgICAgICAgaWYgKCBuZWVkX2lvbW11KHAybS0+ZG9tYWluKSApCiAgICAgICAgICAgICBm b3IgKCBpID0gMDsgaSA8ICgxIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQotICAgICAgICAgICAgICAg IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIG1mbiArIGkpOwotICAgICAgICByZXR1cm4g MDsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIHJjID0gaW9tbXVfdW5tYXBfcGFnZShw Mm0tPmRvbWFpbiwgbWZuICsgaSk7CisKKyAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMp ICkKKyAgICAgICAgICAgICAgICAgICByZXQgPSByYzsKKyAgICAgICAgICAgIH0KKworICAgICAg ICByZXR1cm4gcmV0OwogICAgIH0KIAogICAgIEFTU0VSVChnZm5fbG9ja2VkX2J5X21lKHAybSwg Z2ZuKSk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCA4NTAxMDFiLi5jMzUxMjA5IDEwMDY0 NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTE3Miw2ICsxNzIsOCBAQCB2b2lkIF9faHdkb21faW5p dCBpb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgewogICAgICAgICBzdHJ1 Y3QgcGFnZV9pbmZvICpwYWdlOwogICAgICAgICB1bnNpZ25lZCBpbnQgaSA9IDA7CisgICAgICAg IGludCByZXQsIHJjID0gMDsKKwogICAgICAgICBwYWdlX2xpc3RfZm9yX2VhY2ggKCBwYWdlLCAm ZC0+cGFnZV9saXN0ICkKICAgICAgICAgewogICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4g PSBwYWdlX3RvX21mbihwYWdlKTsKQEAgLTE4MiwxMCArMTg0LDIwIEBAIHZvaWQgX19od2RvbV9p bml0IGlvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgICAgICAgICAg KChwYWdlLT51LmludXNlLnR5cGVfaW5mbyAmIFBHVF90eXBlX21hc2spCiAgICAgICAgICAgICAg ICAgICA9PSBQR1Rfd3JpdGFibGVfcGFnZSkgKQogICAgICAgICAgICAgICAgIG1hcHBpbmcgfD0g SU9NTVVGX3dyaXRhYmxlOwotICAgICAgICAgICAgaGQtPnBsYXRmb3JtX29wcy0+bWFwX3BhZ2Uo ZCwgZ2ZuLCBtZm4sIG1hcHBpbmcpOworCisgICAgICAgICAgICByZXQgPSBoZC0+cGxhdGZvcm1f b3BzLT5tYXBfcGFnZShkLCBnZm4sIG1mbiwgbWFwcGluZyk7CisKKyAgICAgICAgICAgIGlmICgg dW5saWtlbHkocmV0KSApCisgICAgICAgICAgICAgICAgcmMgPSByZXQ7CisKICAgICAgICAgICAg IGlmICggIShpKysgJiAweGZmZmZmKSApCiAgICAgICAgICAgICAgICAgcHJvY2Vzc19wZW5kaW5n X3NvZnRpcnFzKCk7CiAgICAgICAgIH0KKworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAg IHByaW50ayhYRU5MT0dfR19FUlIKKyAgICAgICAgICAgICAgICAgICAiZG9tJWQ6IElPTU1VIG1h cHBpbmcgaXMgZmFpbGVkIGZvciBoYXJkd2FyZSBkb21haW4uIiwKKyAgICAgICAgICAgICAgICAg ICBkLT5kb21haW5faWQpOwogICAgIH0KIAogICAgIHJldHVybiBoZC0+cGxhdGZvcm1fb3BzLT5o d2RvbV9pbml0KGQpOwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=