From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH MM-PART3 v2 10/12] xen/arm: mm: Rework Xen page-tables walk during update Date: Tue, 14 May 2019 13:31:23 +0100 Message-ID: <20190514123125.29086-11-julien.grall@arm.com> References: <20190514123125.29086-1-julien.grall@arm.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 1hQWax-0005Sd-CG for xen-devel@lists.xenproject.org; Tue, 14 May 2019 12:31:47 +0000 In-Reply-To: <20190514123125.29086-1-julien.grall@arm.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: Oleksandr_Tyshchenko@epam.com, Julien Grall , Stefano Stabellini , Andrii Anisov List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5LCB4ZW5fcHRfdXBkYXRlX2VudHJ5KCkgaXMgb25seSBhYmxlIHRvIHVwZGF0ZSB0 aGUgcmVnaW9uIGNvdmVyZWQKYnkgeGVuX3NlY29uZCAoaS5lIDAgdG8gMHg3ZmZmZmZmZikuCgpC ZWNhdXNlIG9mIHRoZSByZXN0cmljdGlvbiB3ZSBlbmQgdG8gaGF2ZSBtdWx0aXBsZSBmdW5jdGlv bnMgaW4gbW0uYwptb2RpZnlpbmcgdGhlIHBhZ2UtdGFibGVzIGRpZmZlcmVudGx5LgoKRnVydGhl cm1vcmUsIHdlIG5ldmVyIHdhbGtlZCB0aGUgcGFnZS10YWJsZXMgZnVsbHkuIFRoaXMgbWVhbnMg dGhhdCBhbnkKY2hhbmdlIGluIHRoZSBsYXlvdXQgbWF5IHJlcXVpcmVzIG1ham9yIHJld3JpdGUg b2YgdGhlIHBhZ2UtdGFibGVzIGNvZGUuCgpMYXN0bHksIHdlIGhhdmUgYmVlbiBxdWl0ZSBsdWNr eSB0aGF0IG5vIG9uZSBldmVyIHRyaWVkIHRvIHBhc3MgYW4gYWRkcmVzcwpvdXRzaWRlIHRoaXMg cmFuZ2UgYmVjYXVzZSBpdCB3b3VsZCBoYXZlIGJsb3duLXVwLgoKeGVuX3B0X3VwZGF0ZV9lbnRy eSgpIGlzIHJld29ya2VkIHRvIHdhbGsgb3ZlciB0aGUgcGFnZS10YWJsZXMgZXZlcnkKdGltZS4g VGhlIGxvZ2ljIGhhcyBiZWVuIGJvcnJvd2VkIGZyb20gYXJjaC9hcm0vcDJtLmMgYW5kIGNvbnRh aW4gc29tZQpsaW1pdGF0aW9ucyBmb3IgdGhlIHRpbWUgYmVpbmc6CiAgICAtIFN1cGVycGFnZSBj YW5ub3QgYmUgc2hhdHRlcmVkCiAgICAtIE9ubHkgbGV2ZWwgMyAoaS5lIDRLQikgY2FuIGJlIGRv bmUKCk5vdGUgdGhhdCB0aGUgcGFyYW1ldGVyICdhZGRyJyBoYXMgYmVlbiByZW5hbWVkIHRvICd2 aXJ0JyB0byBtYWtlIGNsZWFyCndlIGFyZSBkZWFsaW5nIHdpdGggYSB2aXJ0dWFsIGFkZHJlc3Mu CgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpSZXZp ZXdlZC1ieTogQW5kcmlpIEFuaXNvdiA8YW5kcmlpX2FuaXNvdkBlcGFtLmNvbT4KCi0tLQogICAg Q2hhbmdlcyBpbiB2MjoKICAgICAgICAtIEFkZCBBbmRyaWkncyByZXZpZXdlZC1ieQotLS0KIHhl bi9hcmNoL2FybS9tbS5jIHwgMTIxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAx NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbW0uYyBiL3hlbi9hcmNo L2FybS9tbS5jCmluZGV4IGY1OTc5ZjU0OWIuLjlhNDA3NTRmNDQgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL2FybS9tbS5jCisrKyBiL3hlbi9hcmNoL2FybS9tbS5jCkBAIC05ODQsNiArOTg0LDUzIEBA IHN0YXRpYyB2b2lkIHhlbl91bm1hcF90YWJsZShjb25zdCBscGFlX3QgKnRhYmxlKQogICAgIHVu bWFwX2RvbWFpbl9wYWdlKHRhYmxlKTsKIH0KIAorI2RlZmluZSBYRU5fVEFCTEVfTUFQX0ZBSUxF RCAwCisjZGVmaW5lIFhFTl9UQUJMRV9TVVBFUl9QQUdFIDEKKyNkZWZpbmUgWEVOX1RBQkxFX05P Uk1BTF9QQUdFIDIKKworLyoKKyAqIFRha2UgdGhlIGN1cnJlbnRseSBtYXBwZWQgdGFibGUsIGZp bmQgdGhlIGNvcnJlc3BvbmRpbmcgZW50cnksCisgKiBhbmQgbWFwIHRoZSBuZXh0IHRhYmxlLCBp ZiBhdmFpbGFibGUuCisgKgorICogVGhlIHJlYWRfb25seSBwYXJhbWV0ZXJzIGluZGljYXRlcyB3 aGV0aGVyIGludGVybWVkaWF0ZSB0YWJsZXMgc2hvdWxkCisgKiBiZSBhbGxvY2F0ZWQgd2hlbiBu b3QgcHJlc2VudC4KKyAqCisgKiBSZXR1cm4gdmFsdWVzOgorICogIFhFTl9UQUJMRV9NQVBfRkFJ TEVEOiBFaXRoZXIgcmVhZF9vbmx5IHdhcyBzZXQgYW5kIHRoZSBlbnRyeQorICogIHdhcyBlbXB0 eSwgb3IgYWxsb2NhdGluZyBhIG5ldyBwYWdlIGZhaWxlZC4KKyAqICBYRU5fVEFCTEVfTk9STUFM X1BBR0U6IG5leHQgbGV2ZWwgbWFwcGVkIG5vcm1hbGx5CisgKiAgWEVOX1RBQkxFX1NVUEVSX1BB R0U6IFRoZSBuZXh0IGVudHJ5IHBvaW50cyB0byBhIHN1cGVycGFnZS4KKyAqLworc3RhdGljIGlu dCB4ZW5fcHRfbmV4dF9sZXZlbChib29sIHJlYWRfb25seSwgdW5zaWduZWQgaW50IGxldmVsLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBscGFlX3QgKip0YWJsZSwgdW5zaWduZWQgaW50 IG9mZnNldCkKK3sKKyAgICBscGFlX3QgKmVudHJ5OworICAgIGludCByZXQ7CisKKyAgICBlbnRy eSA9ICp0YWJsZSArIG9mZnNldDsKKworICAgIGlmICggIWxwYWVfaXNfdmFsaWQoKmVudHJ5KSAp CisgICAgeworICAgICAgICBpZiAoIHJlYWRfb25seSApCisgICAgICAgICAgICByZXR1cm4gWEVO X1RBQkxFX01BUF9GQUlMRUQ7CisKKyAgICAgICAgcmV0ID0gY3JlYXRlX3hlbl90YWJsZShlbnRy eSk7CisgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgIHJldHVybiBYRU5fVEFCTEVfTUFQ X0ZBSUxFRDsKKyAgICB9CisKKyAgICBBU1NFUlQobHBhZV9pc192YWxpZCgqZW50cnkpKTsKKwor ICAgIC8qIFRoZSBmdW5jdGlvbiB4ZW5fcHRfbmV4dF9sZXZlbCBpcyBuZXZlciBjYWxsZWQgYXQg dGhlIDNyZCBsZXZlbCAqLworICAgIGlmICggbHBhZV9pc19tYXBwaW5nKCplbnRyeSwgbGV2ZWwp ICkKKyAgICAgICAgcmV0dXJuIFhFTl9UQUJMRV9TVVBFUl9QQUdFOworCisgICAgeGVuX3VubWFw X3RhYmxlKCp0YWJsZSk7CisgICAgKnRhYmxlID0geGVuX21hcF90YWJsZShscGFlX2dldF9tZm4o KmVudHJ5KSk7CisKKyAgICByZXR1cm4gWEVOX1RBQkxFX05PUk1BTF9QQUdFOworfQorCiAvKiBT YW5pdHkgY2hlY2sgb2YgdGhlIGVudHJ5ICovCiBzdGF0aWMgYm9vbCB4ZW5fcHRfY2hlY2tfZW50 cnkobHBhZV90IGVudHJ5LCBtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBmbGFncykKIHsKQEAgLTEw NDMsMzAgKzEwOTAsNjUgQEAgc3RhdGljIGJvb2wgeGVuX3B0X2NoZWNrX2VudHJ5KGxwYWVfdCBl bnRyeSwgbWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAgICAgcmV0dXJuIHRydWU7CiB9 CiAKLXN0YXRpYyBpbnQgeGVuX3B0X3VwZGF0ZV9lbnRyeSh1bnNpZ25lZCBsb25nIGFkZHIsIG1m bl90IG1mbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxh Z3MpCitzdGF0aWMgaW50IHhlbl9wdF91cGRhdGVfZW50cnkobWZuX3Qgcm9vdCwgdW5zaWduZWQg bG9uZyB2aXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbiwgdW5z aWduZWQgaW50IGZsYWdzKQogewogICAgIGludCByYzsKKyAgICB1bnNpZ25lZCBpbnQgbGV2ZWw7 CisgICAgLyogV2Ugb25seSBzdXBwb3J0IDRLQiBtYXBwaW5nIChpLmUgbGV2ZWwgMykgZm9yIG5v dyAqLworICAgIHVuc2lnbmVkIGludCB0YXJnZXQgPSAzOworICAgIGxwYWVfdCAqdGFibGU7Cisg ICAgLyoKKyAgICAgKiBUaGUgaW50ZXJtZWRpYXRlIHBhZ2UgdGFibGVzIGFyZSByZWFkLW9ubHkg d2hlbiB0aGUgTUZOIGlzIG5vdCB2YWxpZAorICAgICAqIGFuZCB3ZSBhcmUgbm90IHBvcHVsYXRp bmcgcGFnZSB0YWJsZS4KKyAgICAgKiBUaGlzIG1lYW5zIHdlIGVpdGhlciBtb2RpZnkgcGVybWlz c2lvbnMgb3IgcmVtb3ZlIGFuIGVudHJ5LgorICAgICAqLworICAgIGJvb2wgcmVhZF9vbmx5ID0g bWZuX2VxKG1mbiwgSU5WQUxJRF9NRk4pICYmICEoZmxhZ3MgJiBfUEFHRV9QT1BVTEFURSk7CiAg ICAgbHBhZV90IHB0ZSwgKmVudHJ5OwotICAgIGxwYWVfdCAqdGhpcmQgPSBOVUxMOworCisgICAg LyogY29udmVuaWVuY2UgYWxpYXNlcyAqLworICAgIERFQ0xBUkVfT0ZGU0VUUyhvZmZzZXRzLCAo cGFkZHJfdCl2aXJ0KTsKIAogICAgIC8qIF9QQUdFX1BPUFVMQVRFIGFuZCBfUEFHRV9QUkVTRU5U IHNob3VsZCBuZXZlciBiZSBzZXQgdG9nZXRoZXIuICovCiAgICAgQVNTRVJUKChmbGFncyAmIChf UEFHRV9QT1BVTEFURXxfUEFHRV9QUkVTRU5UKSkgIT0gKF9QQUdFX1BPUFVMQVRFfF9QQUdFX1BS RVNFTlQpKTsKIAotICAgIGVudHJ5ID0gJnhlbl9zZWNvbmRbc2Vjb25kX2xpbmVhcl9vZmZzZXQo YWRkcildOwotICAgIGlmICggIWxwYWVfaXNfdmFsaWQoKmVudHJ5KSB8fCAhbHBhZV9pc190YWJs ZSgqZW50cnksIDIpICkKKyAgICB0YWJsZSA9IHhlbl9tYXBfdGFibGUocm9vdCk7CisgICAgZm9y ICggbGV2ZWwgPSBIWVBfUFRfUk9PVF9MRVZFTDsgbGV2ZWwgPCB0YXJnZXQ7IGxldmVsKysgKQog ICAgIHsKLSAgICAgICAgaW50IHJjID0gY3JlYXRlX3hlbl90YWJsZShlbnRyeSk7Ci0gICAgICAg IGlmICggcmMgPCAwICkgewotICAgICAgICAgICAgcHJpbnRrKCIlczogTDIgZmFpbGVkXG4iLCBf X2Z1bmNfXyk7Ci0gICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgIHJjID0geGVuX3B0X25l eHRfbGV2ZWwocmVhZF9vbmx5LCBsZXZlbCwgJnRhYmxlLCBvZmZzZXRzW2xldmVsXSk7CisgICAg ICAgIGlmICggcmMgPT0gWEVOX1RBQkxFX01BUF9GQUlMRUQgKQorICAgICAgICB7CisgICAgICAg ICAgICAvKgorICAgICAgICAgICAgICogV2UgYXJlIGhlcmUgYmVjYXVzZSB4ZW5fcHRfbmV4dF9s ZXZlbCBoYXMgZmFpbGVkIHRvIG1hcAorICAgICAgICAgICAgICogdGhlIGludGVybWVkaWF0ZSBw YWdlIHRhYmxlIChlLmcgdGhlIHRhYmxlIGRvZXMgbm90IGV4aXN0CisgICAgICAgICAgICAgKiBh bmQgdGhlIHB0IGlzIHJlYWQtb25seSkuIEl0IGlzIGEgdmFsaWQgY2FzZSB3aGVuCisgICAgICAg ICAgICAgKiByZW1vdmluZyBhIG1hcHBpbmcgYXMgaXQgbWF5IG5vdCBleGlzdCBpbiB0aGUgcGFn ZSB0YWJsZS4KKyAgICAgICAgICAgICAqIEluIHRoaXMgY2FzZSwganVzdCBpZ25vcmUgaXQuCisg ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICggZmxhZ3MgJiAoX1BBR0VfUFJFU0VOVHxf UEFHRV9QT1BVTEFURSkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1tX3ByaW50 aygiJXM6IFVuYWJsZSB0byBtYXAgbGV2ZWwgJXVcbiIsIF9fZnVuY19fLCBsZXZlbCk7CisgICAg ICAgICAgICAgICAgcmMgPSAtRU5PRU5UOworICAgICAgICAgICAgICAgIGdvdG8gb3V0OworICAg ICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgIHJjID0gMDsKKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgICAgIH0KICAg ICAgICAgfQorICAgICAgICBlbHNlIGlmICggcmMgIT0gWEVOX1RBQkxFX05PUk1BTF9QQUdFICkK KyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIEJVR19PTighbHBhZV9pc192YWxpZCgq ZW50cnkpKTsKKyAgICBpZiAoIGxldmVsICE9IHRhcmdldCApCisgICAgeworICAgICAgICBtbV9w cmludGsoIiVzOiBTaGF0dGVyaW5nIHN1cGVycGFnZSBpcyBub3Qgc3VwcG9ydGVkXG4iLCBfX2Z1 bmNfXyk7CisgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7CisgICAgICAgIGdvdG8gb3V0OworICAg IH0KIAotICAgIHRoaXJkID0geGVuX21hcF90YWJsZShscGFlX2dldF9tZm4oKmVudHJ5KSk7Ci0g ICAgZW50cnkgPSAmdGhpcmRbdGhpcmRfdGFibGVfb2Zmc2V0KGFkZHIpXTsKKyAgICBlbnRyeSA9 IHRhYmxlICsgb2Zmc2V0c1tsZXZlbF07CiAKICAgICByYyA9IC1FSU5WQUw7CiAgICAgaWYgKCAh eGVuX3B0X2NoZWNrX2VudHJ5KCplbnRyeSwgbWZuLCBmbGFncykgKQpAQCAtMTEwMyw3ICsxMTg1 LDcgQEAgc3RhdGljIGludCB4ZW5fcHRfdXBkYXRlX2VudHJ5KHVuc2lnbmVkIGxvbmcgYWRkciwg bWZuX3QgbWZuLAogICAgIHJjID0gMDsKIAogb3V0OgotICAgIHhlbl91bm1hcF90YWJsZSh0aGly ZCk7CisgICAgeGVuX3VubWFwX3RhYmxlKHRhYmxlKTsKIAogICAgIHJldHVybiByYzsKIH0KQEAg LTExMTksNiArMTIwMSwxNSBAQCBzdGF0aWMgaW50IHhlbl9wdF91cGRhdGUodW5zaWduZWQgbG9u ZyB2aXJ0LAogICAgIHVuc2lnbmVkIGxvbmcgYWRkciA9IHZpcnQsIGFkZHJfZW5kID0gYWRkciAr IG5yX21mbnMgKiBQQUdFX1NJWkU7CiAKICAgICAvKgorICAgICAqIEZvciBhcm0zMiwgcGFnZS10 YWJsZXMgYXJlIGRpZmZlcmVudCBvbiBlYWNoIENQVXMuIFlldCwgdGhleSBzaGFyZQorICAgICAq IHNvbWUgY29tbW9uIG1hcHBpbmdzLiBJdCBpcyBhc3N1bWVkIHRoYXQgb25seSBjb21tb24gbWFw cGluZ3MKKyAgICAgKiB3aWxsIGJlIG1vZGlmaWVkIHdpdGggdGhpcyBmdW5jdGlvbi4KKyAgICAg KgorICAgICAqIFhYWDogQWRkIGEgY2hlY2suCisgICAgICovCisgICAgY29uc3QgbWZuX3Qgcm9v dCA9IHZpcnRfdG9fbWZuKFRISVNfQ1BVX1BHVEFCTEUpOworCisgICAgLyoKICAgICAgKiBUaGUg aGFyZHdhcmUgd2FzIGNvbmZpZ3VyZWQgdG8gZm9yYmlkIG1hcHBpbmcgYm90aCB3cml0ZWFibGUg YW5kCiAgICAgICogZXhlY3V0YWJsZS4KICAgICAgKiBXaGVuIG1vZGlmeWluZy9jcmVhdGluZyBt YXBwaW5nIChpLmUgX1BBR0VfUFJFU0VOVCBpcyBzZXQpLApAQCAtMTEzOSw5ICsxMjMwLDkgQEAg c3RhdGljIGludCB4ZW5fcHRfdXBkYXRlKHVuc2lnbmVkIGxvbmcgdmlydCwKIAogICAgIHNwaW5f bG9jaygmeGVuX3B0X2xvY2spOwogCi0gICAgZm9yKCA7IGFkZHIgPCBhZGRyX2VuZDsgYWRkciAr PSBQQUdFX1NJWkUgKQorICAgIGZvciAoIDsgYWRkciA8IGFkZHJfZW5kOyBhZGRyICs9IFBBR0Vf U0laRSApCiAgICAgewotICAgICAgICByYyA9IHhlbl9wdF91cGRhdGVfZW50cnkoYWRkciwgbWZu LCBmbGFncyk7CisgICAgICAgIHJjID0geGVuX3B0X3VwZGF0ZV9lbnRyeShyb290LCBhZGRyLCBt Zm4sIGZsYWdzKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICBicmVhazsKIAotLSAK Mi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2538EC04AB6 for ; Tue, 14 May 2019 12:32:04 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EFDE520850 for ; Tue, 14 May 2019 12:32:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EFDE520850 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQWay-0005UG-Nc; Tue, 14 May 2019 12:31:48 +0000 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 1hQWax-0005Sd-CG for xen-devel@lists.xenproject.org; Tue, 14 May 2019 12:31:47 +0000 X-Inumbo-ID: 3cc2bb54-7644-11e9-aba7-3fae97ee57bb Received: from foss.arm.com (unknown [217.140.101.70]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTP id 3cc2bb54-7644-11e9-aba7-3fae97ee57bb; Tue, 14 May 2019 12:31:46 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E121015AB; Tue, 14 May 2019 05:31:45 -0700 (PDT) Received: from e108454-lin.cambridge.arm.com (e108454-lin.cambridge.arm.com [10.1.196.50]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id ADCC53F71E; Tue, 14 May 2019 05:31:44 -0700 (PDT) From: Julien Grall To: xen-devel@lists.xenproject.org Date: Tue, 14 May 2019 13:31:23 +0100 Message-Id: <20190514123125.29086-11-julien.grall@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190514123125.29086-1-julien.grall@arm.com> References: <20190514123125.29086-1-julien.grall@arm.com> Subject: [Xen-devel] [PATCH MM-PART3 v2 10/12] xen/arm: mm: Rework Xen page-tables walk during update X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Oleksandr_Tyshchenko@epam.com, Julien Grall , Stefano Stabellini , Andrii Anisov MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190514123123.VSM1dp_JTTMJo6CcmJKR1raQUhOcDmwARR7_hemdXmo@z> Q3VycmVudGx5LCB4ZW5fcHRfdXBkYXRlX2VudHJ5KCkgaXMgb25seSBhYmxlIHRvIHVwZGF0ZSB0 aGUgcmVnaW9uIGNvdmVyZWQKYnkgeGVuX3NlY29uZCAoaS5lIDAgdG8gMHg3ZmZmZmZmZikuCgpC ZWNhdXNlIG9mIHRoZSByZXN0cmljdGlvbiB3ZSBlbmQgdG8gaGF2ZSBtdWx0aXBsZSBmdW5jdGlv bnMgaW4gbW0uYwptb2RpZnlpbmcgdGhlIHBhZ2UtdGFibGVzIGRpZmZlcmVudGx5LgoKRnVydGhl cm1vcmUsIHdlIG5ldmVyIHdhbGtlZCB0aGUgcGFnZS10YWJsZXMgZnVsbHkuIFRoaXMgbWVhbnMg dGhhdCBhbnkKY2hhbmdlIGluIHRoZSBsYXlvdXQgbWF5IHJlcXVpcmVzIG1ham9yIHJld3JpdGUg b2YgdGhlIHBhZ2UtdGFibGVzIGNvZGUuCgpMYXN0bHksIHdlIGhhdmUgYmVlbiBxdWl0ZSBsdWNr eSB0aGF0IG5vIG9uZSBldmVyIHRyaWVkIHRvIHBhc3MgYW4gYWRkcmVzcwpvdXRzaWRlIHRoaXMg cmFuZ2UgYmVjYXVzZSBpdCB3b3VsZCBoYXZlIGJsb3duLXVwLgoKeGVuX3B0X3VwZGF0ZV9lbnRy eSgpIGlzIHJld29ya2VkIHRvIHdhbGsgb3ZlciB0aGUgcGFnZS10YWJsZXMgZXZlcnkKdGltZS4g VGhlIGxvZ2ljIGhhcyBiZWVuIGJvcnJvd2VkIGZyb20gYXJjaC9hcm0vcDJtLmMgYW5kIGNvbnRh aW4gc29tZQpsaW1pdGF0aW9ucyBmb3IgdGhlIHRpbWUgYmVpbmc6CiAgICAtIFN1cGVycGFnZSBj YW5ub3QgYmUgc2hhdHRlcmVkCiAgICAtIE9ubHkgbGV2ZWwgMyAoaS5lIDRLQikgY2FuIGJlIGRv bmUKCk5vdGUgdGhhdCB0aGUgcGFyYW1ldGVyICdhZGRyJyBoYXMgYmVlbiByZW5hbWVkIHRvICd2 aXJ0JyB0byBtYWtlIGNsZWFyCndlIGFyZSBkZWFsaW5nIHdpdGggYSB2aXJ0dWFsIGFkZHJlc3Mu CgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpSZXZp ZXdlZC1ieTogQW5kcmlpIEFuaXNvdiA8YW5kcmlpX2FuaXNvdkBlcGFtLmNvbT4KCi0tLQogICAg Q2hhbmdlcyBpbiB2MjoKICAgICAgICAtIEFkZCBBbmRyaWkncyByZXZpZXdlZC1ieQotLS0KIHhl bi9hcmNoL2FybS9tbS5jIHwgMTIxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAx NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbW0uYyBiL3hlbi9hcmNo L2FybS9tbS5jCmluZGV4IGY1OTc5ZjU0OWIuLjlhNDA3NTRmNDQgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL2FybS9tbS5jCisrKyBiL3hlbi9hcmNoL2FybS9tbS5jCkBAIC05ODQsNiArOTg0LDUzIEBA IHN0YXRpYyB2b2lkIHhlbl91bm1hcF90YWJsZShjb25zdCBscGFlX3QgKnRhYmxlKQogICAgIHVu bWFwX2RvbWFpbl9wYWdlKHRhYmxlKTsKIH0KIAorI2RlZmluZSBYRU5fVEFCTEVfTUFQX0ZBSUxF RCAwCisjZGVmaW5lIFhFTl9UQUJMRV9TVVBFUl9QQUdFIDEKKyNkZWZpbmUgWEVOX1RBQkxFX05P Uk1BTF9QQUdFIDIKKworLyoKKyAqIFRha2UgdGhlIGN1cnJlbnRseSBtYXBwZWQgdGFibGUsIGZp bmQgdGhlIGNvcnJlc3BvbmRpbmcgZW50cnksCisgKiBhbmQgbWFwIHRoZSBuZXh0IHRhYmxlLCBp ZiBhdmFpbGFibGUuCisgKgorICogVGhlIHJlYWRfb25seSBwYXJhbWV0ZXJzIGluZGljYXRlcyB3 aGV0aGVyIGludGVybWVkaWF0ZSB0YWJsZXMgc2hvdWxkCisgKiBiZSBhbGxvY2F0ZWQgd2hlbiBu b3QgcHJlc2VudC4KKyAqCisgKiBSZXR1cm4gdmFsdWVzOgorICogIFhFTl9UQUJMRV9NQVBfRkFJ TEVEOiBFaXRoZXIgcmVhZF9vbmx5IHdhcyBzZXQgYW5kIHRoZSBlbnRyeQorICogIHdhcyBlbXB0 eSwgb3IgYWxsb2NhdGluZyBhIG5ldyBwYWdlIGZhaWxlZC4KKyAqICBYRU5fVEFCTEVfTk9STUFM X1BBR0U6IG5leHQgbGV2ZWwgbWFwcGVkIG5vcm1hbGx5CisgKiAgWEVOX1RBQkxFX1NVUEVSX1BB R0U6IFRoZSBuZXh0IGVudHJ5IHBvaW50cyB0byBhIHN1cGVycGFnZS4KKyAqLworc3RhdGljIGlu dCB4ZW5fcHRfbmV4dF9sZXZlbChib29sIHJlYWRfb25seSwgdW5zaWduZWQgaW50IGxldmVsLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBscGFlX3QgKip0YWJsZSwgdW5zaWduZWQgaW50 IG9mZnNldCkKK3sKKyAgICBscGFlX3QgKmVudHJ5OworICAgIGludCByZXQ7CisKKyAgICBlbnRy eSA9ICp0YWJsZSArIG9mZnNldDsKKworICAgIGlmICggIWxwYWVfaXNfdmFsaWQoKmVudHJ5KSAp CisgICAgeworICAgICAgICBpZiAoIHJlYWRfb25seSApCisgICAgICAgICAgICByZXR1cm4gWEVO X1RBQkxFX01BUF9GQUlMRUQ7CisKKyAgICAgICAgcmV0ID0gY3JlYXRlX3hlbl90YWJsZShlbnRy eSk7CisgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgIHJldHVybiBYRU5fVEFCTEVfTUFQ X0ZBSUxFRDsKKyAgICB9CisKKyAgICBBU1NFUlQobHBhZV9pc192YWxpZCgqZW50cnkpKTsKKwor ICAgIC8qIFRoZSBmdW5jdGlvbiB4ZW5fcHRfbmV4dF9sZXZlbCBpcyBuZXZlciBjYWxsZWQgYXQg dGhlIDNyZCBsZXZlbCAqLworICAgIGlmICggbHBhZV9pc19tYXBwaW5nKCplbnRyeSwgbGV2ZWwp ICkKKyAgICAgICAgcmV0dXJuIFhFTl9UQUJMRV9TVVBFUl9QQUdFOworCisgICAgeGVuX3VubWFw X3RhYmxlKCp0YWJsZSk7CisgICAgKnRhYmxlID0geGVuX21hcF90YWJsZShscGFlX2dldF9tZm4o KmVudHJ5KSk7CisKKyAgICByZXR1cm4gWEVOX1RBQkxFX05PUk1BTF9QQUdFOworfQorCiAvKiBT YW5pdHkgY2hlY2sgb2YgdGhlIGVudHJ5ICovCiBzdGF0aWMgYm9vbCB4ZW5fcHRfY2hlY2tfZW50 cnkobHBhZV90IGVudHJ5LCBtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBmbGFncykKIHsKQEAgLTEw NDMsMzAgKzEwOTAsNjUgQEAgc3RhdGljIGJvb2wgeGVuX3B0X2NoZWNrX2VudHJ5KGxwYWVfdCBl bnRyeSwgbWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAgICAgcmV0dXJuIHRydWU7CiB9 CiAKLXN0YXRpYyBpbnQgeGVuX3B0X3VwZGF0ZV9lbnRyeSh1bnNpZ25lZCBsb25nIGFkZHIsIG1m bl90IG1mbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxh Z3MpCitzdGF0aWMgaW50IHhlbl9wdF91cGRhdGVfZW50cnkobWZuX3Qgcm9vdCwgdW5zaWduZWQg bG9uZyB2aXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbiwgdW5z aWduZWQgaW50IGZsYWdzKQogewogICAgIGludCByYzsKKyAgICB1bnNpZ25lZCBpbnQgbGV2ZWw7 CisgICAgLyogV2Ugb25seSBzdXBwb3J0IDRLQiBtYXBwaW5nIChpLmUgbGV2ZWwgMykgZm9yIG5v dyAqLworICAgIHVuc2lnbmVkIGludCB0YXJnZXQgPSAzOworICAgIGxwYWVfdCAqdGFibGU7Cisg ICAgLyoKKyAgICAgKiBUaGUgaW50ZXJtZWRpYXRlIHBhZ2UgdGFibGVzIGFyZSByZWFkLW9ubHkg d2hlbiB0aGUgTUZOIGlzIG5vdCB2YWxpZAorICAgICAqIGFuZCB3ZSBhcmUgbm90IHBvcHVsYXRp bmcgcGFnZSB0YWJsZS4KKyAgICAgKiBUaGlzIG1lYW5zIHdlIGVpdGhlciBtb2RpZnkgcGVybWlz c2lvbnMgb3IgcmVtb3ZlIGFuIGVudHJ5LgorICAgICAqLworICAgIGJvb2wgcmVhZF9vbmx5ID0g bWZuX2VxKG1mbiwgSU5WQUxJRF9NRk4pICYmICEoZmxhZ3MgJiBfUEFHRV9QT1BVTEFURSk7CiAg ICAgbHBhZV90IHB0ZSwgKmVudHJ5OwotICAgIGxwYWVfdCAqdGhpcmQgPSBOVUxMOworCisgICAg LyogY29udmVuaWVuY2UgYWxpYXNlcyAqLworICAgIERFQ0xBUkVfT0ZGU0VUUyhvZmZzZXRzLCAo cGFkZHJfdCl2aXJ0KTsKIAogICAgIC8qIF9QQUdFX1BPUFVMQVRFIGFuZCBfUEFHRV9QUkVTRU5U IHNob3VsZCBuZXZlciBiZSBzZXQgdG9nZXRoZXIuICovCiAgICAgQVNTRVJUKChmbGFncyAmIChf UEFHRV9QT1BVTEFURXxfUEFHRV9QUkVTRU5UKSkgIT0gKF9QQUdFX1BPUFVMQVRFfF9QQUdFX1BS RVNFTlQpKTsKIAotICAgIGVudHJ5ID0gJnhlbl9zZWNvbmRbc2Vjb25kX2xpbmVhcl9vZmZzZXQo YWRkcildOwotICAgIGlmICggIWxwYWVfaXNfdmFsaWQoKmVudHJ5KSB8fCAhbHBhZV9pc190YWJs ZSgqZW50cnksIDIpICkKKyAgICB0YWJsZSA9IHhlbl9tYXBfdGFibGUocm9vdCk7CisgICAgZm9y ICggbGV2ZWwgPSBIWVBfUFRfUk9PVF9MRVZFTDsgbGV2ZWwgPCB0YXJnZXQ7IGxldmVsKysgKQog ICAgIHsKLSAgICAgICAgaW50IHJjID0gY3JlYXRlX3hlbl90YWJsZShlbnRyeSk7Ci0gICAgICAg IGlmICggcmMgPCAwICkgewotICAgICAgICAgICAgcHJpbnRrKCIlczogTDIgZmFpbGVkXG4iLCBf X2Z1bmNfXyk7Ci0gICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgIHJjID0geGVuX3B0X25l eHRfbGV2ZWwocmVhZF9vbmx5LCBsZXZlbCwgJnRhYmxlLCBvZmZzZXRzW2xldmVsXSk7CisgICAg ICAgIGlmICggcmMgPT0gWEVOX1RBQkxFX01BUF9GQUlMRUQgKQorICAgICAgICB7CisgICAgICAg ICAgICAvKgorICAgICAgICAgICAgICogV2UgYXJlIGhlcmUgYmVjYXVzZSB4ZW5fcHRfbmV4dF9s ZXZlbCBoYXMgZmFpbGVkIHRvIG1hcAorICAgICAgICAgICAgICogdGhlIGludGVybWVkaWF0ZSBw YWdlIHRhYmxlIChlLmcgdGhlIHRhYmxlIGRvZXMgbm90IGV4aXN0CisgICAgICAgICAgICAgKiBh bmQgdGhlIHB0IGlzIHJlYWQtb25seSkuIEl0IGlzIGEgdmFsaWQgY2FzZSB3aGVuCisgICAgICAg ICAgICAgKiByZW1vdmluZyBhIG1hcHBpbmcgYXMgaXQgbWF5IG5vdCBleGlzdCBpbiB0aGUgcGFn ZSB0YWJsZS4KKyAgICAgICAgICAgICAqIEluIHRoaXMgY2FzZSwganVzdCBpZ25vcmUgaXQuCisg ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICggZmxhZ3MgJiAoX1BBR0VfUFJFU0VOVHxf UEFHRV9QT1BVTEFURSkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1tX3ByaW50 aygiJXM6IFVuYWJsZSB0byBtYXAgbGV2ZWwgJXVcbiIsIF9fZnVuY19fLCBsZXZlbCk7CisgICAg ICAgICAgICAgICAgcmMgPSAtRU5PRU5UOworICAgICAgICAgICAgICAgIGdvdG8gb3V0OworICAg ICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgIHJjID0gMDsKKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgICAgIH0KICAg ICAgICAgfQorICAgICAgICBlbHNlIGlmICggcmMgIT0gWEVOX1RBQkxFX05PUk1BTF9QQUdFICkK KyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIEJVR19PTighbHBhZV9pc192YWxpZCgq ZW50cnkpKTsKKyAgICBpZiAoIGxldmVsICE9IHRhcmdldCApCisgICAgeworICAgICAgICBtbV9w cmludGsoIiVzOiBTaGF0dGVyaW5nIHN1cGVycGFnZSBpcyBub3Qgc3VwcG9ydGVkXG4iLCBfX2Z1 bmNfXyk7CisgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7CisgICAgICAgIGdvdG8gb3V0OworICAg IH0KIAotICAgIHRoaXJkID0geGVuX21hcF90YWJsZShscGFlX2dldF9tZm4oKmVudHJ5KSk7Ci0g ICAgZW50cnkgPSAmdGhpcmRbdGhpcmRfdGFibGVfb2Zmc2V0KGFkZHIpXTsKKyAgICBlbnRyeSA9 IHRhYmxlICsgb2Zmc2V0c1tsZXZlbF07CiAKICAgICByYyA9IC1FSU5WQUw7CiAgICAgaWYgKCAh eGVuX3B0X2NoZWNrX2VudHJ5KCplbnRyeSwgbWZuLCBmbGFncykgKQpAQCAtMTEwMyw3ICsxMTg1 LDcgQEAgc3RhdGljIGludCB4ZW5fcHRfdXBkYXRlX2VudHJ5KHVuc2lnbmVkIGxvbmcgYWRkciwg bWZuX3QgbWZuLAogICAgIHJjID0gMDsKIAogb3V0OgotICAgIHhlbl91bm1hcF90YWJsZSh0aGly ZCk7CisgICAgeGVuX3VubWFwX3RhYmxlKHRhYmxlKTsKIAogICAgIHJldHVybiByYzsKIH0KQEAg LTExMTksNiArMTIwMSwxNSBAQCBzdGF0aWMgaW50IHhlbl9wdF91cGRhdGUodW5zaWduZWQgbG9u ZyB2aXJ0LAogICAgIHVuc2lnbmVkIGxvbmcgYWRkciA9IHZpcnQsIGFkZHJfZW5kID0gYWRkciAr IG5yX21mbnMgKiBQQUdFX1NJWkU7CiAKICAgICAvKgorICAgICAqIEZvciBhcm0zMiwgcGFnZS10 YWJsZXMgYXJlIGRpZmZlcmVudCBvbiBlYWNoIENQVXMuIFlldCwgdGhleSBzaGFyZQorICAgICAq IHNvbWUgY29tbW9uIG1hcHBpbmdzLiBJdCBpcyBhc3N1bWVkIHRoYXQgb25seSBjb21tb24gbWFw cGluZ3MKKyAgICAgKiB3aWxsIGJlIG1vZGlmaWVkIHdpdGggdGhpcyBmdW5jdGlvbi4KKyAgICAg KgorICAgICAqIFhYWDogQWRkIGEgY2hlY2suCisgICAgICovCisgICAgY29uc3QgbWZuX3Qgcm9v dCA9IHZpcnRfdG9fbWZuKFRISVNfQ1BVX1BHVEFCTEUpOworCisgICAgLyoKICAgICAgKiBUaGUg aGFyZHdhcmUgd2FzIGNvbmZpZ3VyZWQgdG8gZm9yYmlkIG1hcHBpbmcgYm90aCB3cml0ZWFibGUg YW5kCiAgICAgICogZXhlY3V0YWJsZS4KICAgICAgKiBXaGVuIG1vZGlmeWluZy9jcmVhdGluZyBt YXBwaW5nIChpLmUgX1BBR0VfUFJFU0VOVCBpcyBzZXQpLApAQCAtMTEzOSw5ICsxMjMwLDkgQEAg c3RhdGljIGludCB4ZW5fcHRfdXBkYXRlKHVuc2lnbmVkIGxvbmcgdmlydCwKIAogICAgIHNwaW5f bG9jaygmeGVuX3B0X2xvY2spOwogCi0gICAgZm9yKCA7IGFkZHIgPCBhZGRyX2VuZDsgYWRkciAr PSBQQUdFX1NJWkUgKQorICAgIGZvciAoIDsgYWRkciA8IGFkZHJfZW5kOyBhZGRyICs9IFBBR0Vf U0laRSApCiAgICAgewotICAgICAgICByYyA9IHhlbl9wdF91cGRhdGVfZW50cnkoYWRkciwgbWZu LCBmbGFncyk7CisgICAgICAgIHJjID0geGVuX3B0X3VwZGF0ZV9lbnRyeShyb290LCBhZGRyLCBt Zm4sIGZsYWdzKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICBicmVhazsKIAotLSAK Mi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==