From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: [PATCH v2 07/13] iommu: Make decision about needing IOMMU for hardware domains in advance Date: Tue, 25 Jul 2017 20:26:49 +0300 Message-ID: <1501003615-15274-8-git-send-email-olekstysh@gmail.com> References: <1501003615-15274-1-git-send-email-olekstysh@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1da3c6-0008RZ-EN for xen-devel@lists.xenproject.org; Tue, 25 Jul 2017 17:27:18 +0000 Received: by mail-lf0-f65.google.com with SMTP id y15so5623592lfd.5 for ; Tue, 25 Jul 2017 10:27:17 -0700 (PDT) In-Reply-To: <1501003615-15274-1-git-send-email-olekstysh@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Oleksandr Tyshchenko , Julien Grall , Jan Beulich List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKVGhlIGhhcmR3YXJlIGRvbWFpbnMgcmVxdWlyZSBJT01NVSB0byBiZSB1c2VkIGluIHRoZSBt b3N0IGNhc2VzIGFuZAphIGRlY2lzaW9uIHRvIHVzZSBpdCBpcyBtYWRlIGF0IGhhcmR3YXJlIGRv bWFpbiBjb25zdHJ1Y3Rpb24gdGltZS4KQnV0LCBpdCBpcyBub3QgdGhlIGJlc3QgbW9tZW50IGZv ciB0aGUgbm9uLXNoYXJlZCBJT01NVXMgZHVlIHRvCnRoZSBuZWNlc3NpdHkgb2YgcmV0cmlldmlu ZyBhbGwgbWFwcGluZyB3aGljaCBjb3VsZCBoYXBwZW4gaW4gYSBwZXJpb2QKb2YgdGltZSBiZXR3 ZWVuIElPTU1VIHBlci1kb21haW4gaW5pdGlhbGl6YXRpb24gYW5kIHRoaXMgbW9tZW50LgoKU28s IG1ha2UgYSBkZWNpc2lvbiBhYm91dCBuZWVkaW5nIElPTU1VIGEgYml0IGVhcmxpZXIsIGluIGlv bW11X2RvbWFpbl9pbml0KCkuCkhhdmluZyAiZC0+bmVlZF9pb21tdSIgZmxhZyBzZXQgYXQgdGhl IGVhcmx5IHN0YWdlIHdlIHdvbid0IHNraXAKYW55IElPTU1VIG1hcHBpbmcgdXBkYXRlcy4gQW5k IGFzIHRoZSByZXN1bHQgdGhlIGV4aXN0aW5nIGluIGlvbW11X2h3ZG9tX2luaXQoKQpjb2RlIHRo YXQgZ29lcyB0aHJvdWdoIHRoZSBsaXN0IG9mIHRoZSBwYWdlcyBhbmQgdHJpZXMgdG8gcmV0cmll dmUgbWFwcGluZwpmb3Igbm9uLXNoYXJlZCBJT01NVXMgd29uJ3QgYmUgbmVlZGVkIGFueW1vcmUg YW5kIGNhbiBiZSBqdXN0IGRyb3BwZWQuCgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgVHlzaGNo ZW5rbyA8b2xla3NhbmRyX3R5c2hjaGVua29AZXBhbS5jb20+CkNDOiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoK LS0tCkNoYW5nZXMgaW4gdjE6CiAgIC0KCkNoYW5nZXMgaW4gdjI6CiAgIC0gVGhpcyBpcyB0aGUg cmVzdWx0IG9mIHJld29ya2luZyBvbGQgcGF0Y2g6CiAgICAgW1BBVENIIHYxIDA4LzEwXSBpb21t dTogU3BsaXQgaW9tbXVfaHdkb21faW5pdCgpIGludG8gYXJjaCBzcGVjaWZpYyBwYXJ0cwotLS0K IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgfCA0NCArKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyks IDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv bW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IDE5Yzg3ZDEuLmY1 ZTViN2UgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtNTIsNyArNTIsNyBAQCBjdXN0b21f cGFyYW0oImlvbW11IiwgcGFyc2VfaW9tbXVfcGFyYW0pOwogYm9vbF90IF9faW5pdGRhdGEgaW9t bXVfZW5hYmxlID0gMTsKIGJvb2xfdCBfX3JlYWRfbW9zdGx5IGlvbW11X2VuYWJsZWQ7CiBib29s X3QgX19yZWFkX21vc3RseSBmb3JjZV9pb21tdTsKLWJvb2xfdCBfX2h3ZG9tX2luaXRkYXRhIGlv bW11X2RvbTBfc3RyaWN0OworYm9vbF90IF9fcmVhZF9tb3N0bHkgaW9tbXVfZG9tMF9zdHJpY3Q7 CiBib29sX3QgX19yZWFkX21vc3RseSBpb21tdV92ZXJib3NlOwogYm9vbF90IF9fcmVhZF9tb3N0 bHkgaW9tbXVfd29ya2Fyb3VuZF9iaW9zX2J1ZzsKIGJvb2xfdCBfX3JlYWRfbW9zdGx5IGlvbW11 X2lnZnggPSAxOwpAQCAtMTQxLDYgKzE0MSwxNSBAQCBpbnQgaW9tbXVfZG9tYWluX2luaXQoc3Ry dWN0IGRvbWFpbiAqZCwgYm9vbCB1c2VfaW9tbXUpCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCAp CiAgICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQor ICAgIHsKKyAgICAgICAgaWYgKCAocGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICYmICFpb21tdV9w YXNzdGhyb3VnaCkgfHwKKyAgICAgICAgICAgICAgaW9tbXVfZG9tMF9zdHJpY3QgKQorICAgICAg ICAgICAgdXNlX2lvbW11ID0gMTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdXNlX2lvbW11 ID0gMDsKKyAgICB9CisKICAgICBoZC0+cGxhdGZvcm1fb3BzID0gaW9tbXVfZ2V0X29wcygpOwog ICAgIHJldCA9IGhkLT5wbGF0Zm9ybV9vcHMtPmluaXQoZCwgdXNlX2lvbW11KTsKICAgICBpZiAo IHJldCApCkBAIC0xNjEsOCArMTcwLDYgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IGNoZWNr X2h3ZG9tX3JlcXMoc3RydWN0IGRvbWFpbiAqZCkKICAgICBpZiAoIGlvbW11X3Bhc3N0aHJvdWdo ICkKICAgICAgICAgcGFuaWMoIkRvbTAgdXNlcyBwYWdpbmcgdHJhbnNsYXRlZCBtb2RlLCBkb20w LXBhc3N0aHJvdWdoIG11c3Qgbm90IGJlICIKICAgICAgICAgICAgICAgImVuYWJsZWRcbiIpOwot Ci0gICAgaW9tbXVfZG9tMF9zdHJpY3QgPSAxOwogfQogCiB2b2lkIF9faHdkb21faW5pdCBpb21t dV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4gKmQpCkBAIC0xNzUsMzcgKzE4Miw2IEBAIHZvaWQg X19od2RvbV9pbml0IGlvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAg cmV0dXJuOwogCiAgICAgcmVnaXN0ZXJfa2V5aGFuZGxlcignbycsICZpb21tdV9kdW1wX3AybV90 YWJsZSwgImR1bXAgaW9tbXUgcDJtIHRhYmxlIiwgMCk7Ci0gICAgZC0+bmVlZF9pb21tdSA9ICEh aW9tbXVfZG9tMF9zdHJpY3Q7Ci0gICAgaWYgKCBuZWVkX2lvbW11KGQpICYmICFpb21tdV91c2Vf aGFwX3B0KGQpICkKLSAgICB7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7Ci0gICAg ICAgIHVuc2lnbmVkIGludCBpID0gMDsKLSAgICAgICAgaW50IHJjID0gMDsKLQotICAgICAgICBw YWdlX2xpc3RfZm9yX2VhY2ggKCBwYWdlLCAmZC0+cGFnZV9saXN0ICkKLSAgICAgICAgewotICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBwYWdlX3RvX21mbihwYWdlKTsKLSAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZ2ZuID0gbWZuX3RvX2dtZm4oZCwgbWZuKTsKLSAgICAgICAgICAg IHVuc2lnbmVkIGludCBtYXBwaW5nID0gSU9NTVVGX3JlYWRhYmxlOwotICAgICAgICAgICAgaW50 IHJldDsKLQotICAgICAgICAgICAgaWYgKCAoKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdU X2NvdW50X21hc2spID09IDApIHx8Ci0gICAgICAgICAgICAgICAgICgocGFnZS0+dS5pbnVzZS50 eXBlX2luZm8gJiBQR1RfdHlwZV9tYXNrKQotICAgICAgICAgICAgICAgICAgPT0gUEdUX3dyaXRh YmxlX3BhZ2UpICkKLSAgICAgICAgICAgICAgICBtYXBwaW5nIHw9IElPTU1VRl93cml0YWJsZTsK LQotICAgICAgICAgICAgcmV0ID0gaGQtPnBsYXRmb3JtX29wcy0+bWFwX3BhZ2VzKGQsIGdmbiwg bWZuLCAwLCBtYXBwaW5nKTsKLSAgICAgICAgICAgIGlmICggIXJjICkKLSAgICAgICAgICAgICAg ICByYyA9IHJldDsKLQotICAgICAgICAgICAgaWYgKCAhKGkrKyAmIDB4ZmZmZmYpICkKLSAgICAg ICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMoKTsKLSAgICAgICAgfQotCi0gICAg ICAgIGlmICggcmMgKQotICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJkJWQ6IElP TU1VIG1hcHBpbmcgZmFpbGVkOiAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5f aWQsIHJjKTsKLSAgICB9CiAKICAgICByZXR1cm4gaGQtPnBsYXRmb3JtX29wcy0+aHdkb21faW5p dChkKTsKIH0KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==