From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergej Proskurin Subject: [RFC PATCH v2 5/8] arm/mem_access: Add software guest-page-table walk Date: Thu, 1 Jun 2017 17:18:55 +0200 Message-ID: <20170601151906.10213-6-proskurin@sec.in.tum.de> References: <20170601151906.10213-1-proskurin@sec.in.tum.de> 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 1dGRtC-0005Qu-Rh for xen-devel@lists.xenproject.org; Thu, 01 Jun 2017 15:19:54 +0000 In-Reply-To: <20170601151906.10213-1-proskurin@sec.in.tum.de> 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: Sergej Proskurin , Julien Grall , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org VGhlIGZ1bmN0aW9uIHAybV9tZW1fYWNjZXNzX2NoZWNrX2FuZF9nZXRfcGFnZSBpbiBtZW1fYWNj ZXNzLmMgdHJhbnNsYXRlcyBhIGd2YQp0byBhbiBpcGEgYnkgbWVhbnMgb2YgdGhlIGhhcmR3YXJl IGZ1bmN0aW9uYWxpdHkgb2YgdGhlIEFSTSBhcmNoaXRlY3R1cmUuIFRoaXMKaXMgaW1wbGVtZW50 ZWQgaW4gdGhlIGZ1bmN0aW9uIGd2YV90b19pcGEuIElmIG1lbV9hY2Nlc3MgaXMgYWN0aXZlLApo YXJkd2FyZS1iYXNlZCBndmEgdG8gaXBhIHRyYW5zbGF0aW9uIG1pZ2h0IGZhaWwsIGFzIGd2YV90 b19pcGEgdXNlcyB0aGUKZ3Vlc3QncyB0cmFuc2xhdGlvbiB0YWJsZXMsIGFjY2VzcyB0byB3aGlj aCBtaWdodCBiZSByZXN0cmljdGVkIGJ5IHRoZSBhY3RpdmUKVlRUQlIuIFRvIGFkZHJlc3MgdGhp cyBpc3N1ZSwgaW4gdGhpcyBjb21taXQgd2UgYWRkIGEgc29mdHdhcmUtYmFzZWQKZ3Vlc3QtcGFn ZS10YWJsZSB3YWxrLCB3aGljaCB3aWxsIGJlIHVzZWQgYnkgdGhlIGZ1bmN0aW9uCnAybV9tZW1f YWNjZXNzX2NoZWNrX2FuZF9nZXRfcGFnZSBwZXJmb3JtIHRoZSBndmEgdG8gaXBhIHRyYW5zbGF0 aW9uIGluCnNvZnR3YXJlIGluIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNvbW1pdHMuCgpOb3RlOiBU aGlzIGZ1bmN0aW9uIHAybV93YWxrX2dwdCBhc3N1bWVzIHRoYXQgdGhlIGRvbWFpbiwgdGhlIGd2 YSBvZgp3aGljaCBpcyB0byBiZSB0cmFuc2xhdGVkLCBpcyBydW5uaW5nIG9uIHRoZSBjdXJyZW50 bHkgYWN0aXZlIHZDUFUuIFRvCndhbGsgdGhlIGd1ZXN0J3MgcGFnZSB0YWJsZSBvbiBhIGRpZmZl cmVudCB2Q1BVLCB0aGUgZm9sbG93aW5nIHJlZ2lzdGVycwp3b3VsZCBuZWVkIHRvIGJlIGxvYWRl ZDogVENSX0VMMSwgVFRCUjBfRUwxLCBUVEJSMV9FTDEsIGFuZCBTQ1RMUl9FTDEuCgpTaWduZWQt b2ZmLWJ5OiBTZXJnZWogUHJvc2t1cmluIDxwcm9za3VyaW5Ac2VjLmluLnR1bS5kZT4KLS0tCkNj OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBKdWxpZW4g R3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgotLS0KdjI6IFJlbmFtZSBwMm1fZ3ZhX3RvX2lw YSB0byBwMm1fd2Fsa19ncHQgYW5kIG1vdmUgaXQgdG8gcDJtLmMuCgogICAgTW92ZSB0aGUgZnVu Y3Rpb25hbGl0eSByZXNwb25zaWJsZSBmb3Igd2Fsa2luZyBsb25nLWRlc2NyaXB0b3IgYmFzZWQK ICAgIHRyYW5zbGF0aW9uIHRhYmxlcyBvdXQgb2YgdGhlIGZ1bmN0aW9uIHAybV93YWxrX2dwdC4g QWxzbyBtb3ZlIG91dCB0aGUKICAgIGxvbmctZGVzY3JpcHRvciBiYXNlZCB0cmFuc2xhdGlvbiBv dXQgb2YgdGhpcyBjb21taXQuCgogICAgQ2hhbmdlIGZ1bmN0aW9uIHBhcmFtZXRlcnMgaW4gb3Jk ZXIgdG8gcmV0dXJuIGFjY2VzcyBhY2Nlc3MgcmlnaHRzIHRvIGEKICAgIHJlcXVlc3RlZCBndmEu CgogICAgQ29zbWV0aWMgZml4ZXMuCi0tLQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICB8IDU4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5j bHVkZS9hc20tYXJtL3AybS5oIHwgIDYgKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9hcmNoL2FybS9w Mm0uYwppbmRleCA3NTJlOTQ4MDcwLi4wMzM3ZDgzNTgxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9h cm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC0xNTQ4LDYgKzE1NDgsNjQgQEAg dm9pZCBfX2luaXQgc2V0dXBfdmlydF9wYWdpbmcodm9pZCkKIH0KIAogLyoKKyAqIFRoZSBmdW5j dGlvbiBfX3AybV93YWxrX2dwdF9zZCB0cmFuc2xhdGVzIGEgZ2l2ZW4gR1ZBIGludG8gYW4gSVBB IHVzaW5nIHRoZQorICogc2hvcnQtZGVzY3JpcHRvciB0cmFuc2xhdGlvbiB0YWJsZSBmb3JtYXQg aW4gc29mdHdhcmUuIFRoaXMgZnVuY3Rpb24gYXNzdW1lcworICogdGhhdCB0aGUgZG9tYWluIGlz IHJ1bm5pbmcgb24gdGhlIGN1cnJlbnRseSBhY3RpdmUgdkNQVS4gVG8gd2FsayB0aGUgZ3Vlc3Qn cworICogcGFnZSB0YWJsZSBvbiBhIGRpZmZlcmVudCB2Q1BVLCB0aGUgZm9sbG93aW5nIHJlZ2lz dGVycyB3b3VsZCBuZWVkIHRvIGJlCisgKiBsb2FkZWQ6IFRDUl9FTDEsIFRUQlIwX0VMMSwgVFRC UjFfRUwxLCBhbmQgU0NUTFJfRUwxLgorICovCitzdGF0aWMgaW50IF9fcDJtX3dhbGtfZ3B0X3Nk KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh ZGRyX3QgZ3ZhLCBwYWRkcl90ICppcGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCAqcGVybV9ybykKK3sKKyAgICAvKiBOb3QgaW1wbGVtZW50ZWQgeWV0LiAqLwor ICAgIHJldHVybiAtRUZBVUxUOworfQorCisvKgorICogVGhlIGZ1bmN0aW9uIF9fcDJtX3dhbGtf Z3B0X2xkIHRyYW5zbGF0ZXMgYSBnaXZlbiBHVkEgaW50byBhbiBJUEEgdXNpbmcgdGhlCisgKiBs b25nLWRlc2NyaXB0b3IgdHJhbnNsYXRpb24gdGFibGUgZm9ybWF0IGluIHNvZnR3YXJlLiBUaGlz IGZ1bmN0aW9uIGFzc3VtZXMKKyAqIHRoYXQgdGhlIGRvbWFpbiBpcyBydW5uaW5nIG9uIHRoZSBj dXJyZW50bHkgYWN0aXZlIHZDUFUuIFRvIHdhbGsgdGhlIGd1ZXN0J3MKKyAqIHBhZ2UgdGFibGUg b24gYSBkaWZmZXJlbnQgdkNQVSwgdGhlIGZvbGxvd2luZyByZWdpc3RlcnMgd291bGQgbmVlZCB0 byBiZQorICogbG9hZGVkOiBUQ1JfRUwxLCBUVEJSMF9FTDEsIFRUQlIxX0VMMSwgYW5kIFNDVExS X0VMMS4KKyAqLworc3RhdGljIGludCBfX3AybV93YWxrX2dwdF9sZChzdHJ1Y3QgcDJtX2RvbWFp biAqcDJtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWRkcl90IGd2YSwgcGFkZHJf dCAqaXBhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnBlcm1f cm8pCit7CisgICAgLyogTm90IGltcGxlbWVudGVkIHlldC4gKi8KKyAgICByZXR1cm4gLUVGQVVM VDsKK30KKworaW50IHAybV93YWxrX2dwdChzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB2YWRkcl90 IGd2YSwKKyAgICAgICAgICAgICAgICAgcGFkZHJfdCAqaXBhLCB1bnNpZ25lZCBpbnQgKnBlcm1f cm8pCit7CisgICAgdWludDMyX3Qgc2N0bHIgPSBSRUFEX1NZU1JFRyhTQ1RMUl9FTDEpOworICAg IHJlZ2lzdGVyX3QgdGNyID0gUkVBRF9TWVNSRUcoVENSX0VMMSk7CisjaWZkZWYgQ09ORklHX0FS TV82NAorICAgIHN0cnVjdCBkb21haW4gKmQgPSBwMm0tPmRvbWFpbjsKKyNlbmRpZgorCisgICAg LyogSWYgdGhlIE1NVSBpcyBkaXNhYmxlZCwgdGhlcmUgaXMgbm8gbmVlZCB0byB0cmFuc2xhdGUg dGhlIGd2YS4gKi8KKyAgICBpZiAoICEoc2N0bHIgJiBTQ1RMUl9NKSApCisgICAgeworICAgICAg ICAqaXBhID0gZ3ZhOworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworI2lmZGVmIENPTkZJ R19BUk1fNjQKKyAgICBpZiAoIGlzXzMyYml0X2RvbWFpbihkKSApCisjZW5kaWYKKyAgICB7Cisg ICAgICAgIGlmICggISh0Y3IgJiBUVEJDUl9FQUUpICkKKyAgICAgICAgICAgIHJldHVybiBfX3Ay bV93YWxrX2dwdF9zZChwMm0sIGd2YSwgaXBhLCBwZXJtX3JvKTsKKyAgICB9CisKKyAgICByZXR1 cm4gX19wMm1fd2Fsa19ncHRfbGQocDJtLCBndmEsIGlwYSwgcGVybV9ybyk7Cit9CisKKy8qCiAg KiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCiAgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLWFy bS9wMm0uaAppbmRleCAxOGM1N2Y5MzZlLi5jYzlmNGJmMjI1IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20tYXJtL3AybS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKQEAgLTI2 NCw2ICsyNjQsMTIgQEAgdm9pZCBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKHN0cnVjdCBkb21h aW4gKmQsCiAKIG1mbl90IGdmbl90b19tZm4oc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuKTsK IAorLyogV2FsayB0aGUgZ3Vlc3QncyBwYWdlIHRhYmxlcyBpbiBzb2Z0d2FyZS4gKi8KK2ludCBw Mm1fd2Fsa19ncHQoc3RydWN0IHAybV9kb21haW4gKnAybSwKKyAgICAgICAgICAgICAgICAgdmFk ZHJfdCBndmEsCisgICAgICAgICAgICAgICAgIHBhZGRyX3QgKmlwYSwKKyAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50ICpwZXJtX3JvKTsKKwogLyoKICAqIFBvcHVsYXRlLW9uLWRlbWFuZAog ICovCi0tIAoyLjEyLjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK