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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 627A1CD1284 for ; Tue, 9 Apr 2024 14:40:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=iPin96WDtbiOIbLtjzeSUjNaPOmIAYlAA4y8/FfnF1o=; b=tlUbsEBkAKXa09 6XJFXahXJ/nOvIoIT0/qAJRTDsotLNU4VSjiLDKE/1XjYgWaYaHS0rXB62vl82aj/HBRkhlhoSkKr z/6DWdyBKpzZWYN1g5dXhmMc5klZe+P7JaIPjwtLUhEhimEqJby61LFOobliAKJWcAtOAhJcveCca TiRvFQOyC4rX3OjSfWEhl6vKTMF6SABu39skCZdLsJ4N+Cxm+SoS2NTS43ipxLUn1WIdY/IFTSj3p QyP+Fnl63E1XDgIBMpnbNbStrTenYsbLDdAdjuWV8ZcvwhGBorUJwQU0T7E+GavpjgoO1YEZ3q//R Dc7NqUlohR7r+LWPGCBA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruCdZ-00000002SeK-2F2O; Tue, 09 Apr 2024 14:39:49 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruCdK-00000002SYl-3e9n for linux-arm-kernel@lists.infradead.org; Tue, 09 Apr 2024 14:39:38 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A9CEF139F; Tue, 9 Apr 2024 07:40:03 -0700 (PDT) Received: from [10.1.33.185] (XHFQ2J9959.cambridge.arm.com [10.1.33.185]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 78BDA3F766; Tue, 9 Apr 2024 07:39:30 -0700 (PDT) Message-ID: Date: Tue, 9 Apr 2024 15:39:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 0/4] Speed up boot with faster linear map creation Content-Language: en-GB To: David Hildenbrand , Itaru Kitayama Cc: Catalin Marinas , Will Deacon , Mark Rutland , Ard Biesheuvel , Donald Dutile , Eric Chanudet , Linux ARM , "linux-kernel@vger.kernel.org" References: <20240404143308.2224141-1-ryan.roberts@arm.com> <533adb77-8c2b-40db-84cb-88de77ab92bb@arm.com> <1d5abb48-08a8-4d83-a681-6915bc7b6907@arm.com> <268FBD1C-B102-4726-A7F4-1125123BDA7A@linux.dev> <5e4dc2fe-2945-4fc5-a533-c8b2d04668a0@redhat.com> From: Ryan Roberts In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240409_073935_327813_EEBD57B5 X-CRM114-Status: GOOD ( 31.84 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMDkvMDQvMjAyNCAxNToyOSwgRGF2aWQgSGlsZGVuYnJhbmQgd3JvdGU6Cj4gT24gMDkuMDQu MjQgMTY6MTMsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPj4gT24gMDkvMDQvMjAyNCAxMjo1MSwgRGF2 aWQgSGlsZGVuYnJhbmQgd3JvdGU6Cj4+PiBPbiAwOS4wNC4yNCAxMzoyOSwgRGF2aWQgSGlsZGVu YnJhbmQgd3JvdGU6Cj4+Pj4gT24gMDkuMDQuMjQgMTM6MjIsIERhdmlkIEhpbGRlbmJyYW5kIHdy b3RlOgo+Pj4+PiBPbiAwOS4wNC4yNCAxMjoxMywgSXRhcnUgS2l0YXlhbWEgd3JvdGU6Cj4+Pj4+ Pgo+Pj4+Pj4KPj4+Pj4+PiBPbiBBcHIgOSwgMjAyNCwgYXQgMTk6MDQsIFJ5YW4gUm9iZXJ0cyA8 cnlhbi5yb2JlcnRzQGFybS5jb20+IHdyb3RlOgo+Pj4+Pj4+Cj4+Pj4+Pj4gT24gMDkvMDQvMjAy NCAwMToxMCwgSXRhcnUgS2l0YXlhbWEgd3JvdGU6Cj4+Pj4+Pj4+IEhpIFJ5YW4sCj4+Pj4+Pj4+ Cj4+Pj4+Pj4+PiBPbiBBcHIgOCwgMjAyNCwgYXQgMTY6MzAsIFJ5YW4gUm9iZXJ0cyA8cnlhbi5y b2JlcnRzQGFybS5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE9uIDA2LzA0LzIwMjQg MTE6MzEsIEl0YXJ1IEtpdGF5YW1hIHdyb3RlOgo+Pj4+Pj4+Pj4+IEhpIFJ5YW4sCj4+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+PiBPbiBTYXQsIEFwciAwNiwgMjAyNCBhdCAwOTozMjozNEFNICswMTAwLCBS eWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4+Pj4+Pj4+IEhpIEl0YXJ1LAo+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+PiBPbiAwNS8wNC8yMDI0IDA4OjM5LCBJdGFydSBLaXRheWFtYSB3cm90ZToKPj4+Pj4+ Pj4+Pj4+IE9uIFRodSwgQXByIDA0LCAyMDI0IGF0IDAzOjMzOjA0UE0gKzAxMDAsIFJ5YW4gUm9i ZXJ0cyB3cm90ZToKPj4+Pj4+Pj4+Pj4+PiBIaSBBbGwsCj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Pj4+PiBJdCB0dXJucyBvdXQgdGhhdCBjcmVhdGluZyB0aGUgbGluZWFyIG1hcCBjYW4gdGFrZSBh IHNpZ25pZmljYW50Cj4+Pj4+Pj4+Pj4+Pj4gcHJvcG9ydGlvbiBvZgo+Pj4+Pj4+Pj4+Pj4+IHRo ZSB0b3RhbCBib290IHRpbWUsIGVzcGVjaWFsbHkgd2hlbiByb2RhdGE9ZnVsbC4gQW5kIG1vc3Qg b2YgdGhlCj4+Pj4+Pj4+Pj4+Pj4gdGltZSBpcyBzcGVudAo+Pj4+Pj4+Pj4+Pj4+IHdhaXRpbmcg b24gc3VwZXJmbHVvdXMgdGxiIGludmFsaWRhdGlvbiBhbmQgbWVtb3J5IGJhcnJpZXJzLiBUaGlz Cj4+Pj4+Pj4+Pj4+Pj4gc2VyaWVzIHJld29ya3MKPj4+Pj4+Pj4+Pj4+PiB0aGUga2VybmVsIHBn dGFibGUgZ2VuZXJhdGlvbiBjb2RlIHRvIHNpZ25pZmljYW50bHkgcmVkdWNlIHRoZSBudW1iZXIK Pj4+Pj4+Pj4+Pj4+PiBvZiB0aG9zZQo+Pj4+Pj4+Pj4+Pj4+IFRMQklzLCBJU0JzIGFuZCBEU0Jz LiBTZWUgZWFjaCBwYXRjaCBmb3IgZGV0YWlscy4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+ IFRoZSBiZWxvdyBzaG93cyB0aGUgZXhlY3V0aW9uIHRpbWUgb2YgbWFwX21lbSgpIGFjcm9zcyBh IGNvdXBsZSBvZgo+Pj4+Pj4+Pj4+Pj4+IGRpZmZlcmVudAo+Pj4+Pj4+Pj4+Pj4+IHN5c3RlbXMg d2l0aCBkaWZmZXJlbnQgUkFNIGNvbmZpZ3VyYXRpb25zLiBXZSBtZWFzdXJlIGFmdGVyIGFwcGx5 aW5nCj4+Pj4+Pj4+Pj4+Pj4gZWFjaCBwYXRjaAo+Pj4+Pj4+Pj4+Pj4+IGFuZCBzaG93IHRoZSBp bXByb3ZlbWVudCByZWxhdGl2ZSB0byBiYXNlICh2Ni45LXJjMik6Cj4+Pj4+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBBcHBsZSBN MiBWTSB8IEFtcGVyZSBBbHRyYXwgQW1wZXJlIEFsdHJhfCBBbXBlcmUKPj4+Pj4+Pj4+Pj4+PiBB bHRyYQo+Pj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 IFZNLCAxNkfCoMKgwqDCoCB8IFZNLCA2NEfCoMKgwqDCoCB8IFZNLCAyNTZHwqDCoMKgIHwgTWV0 YWwsCj4+Pj4+Pj4+Pj4+Pj4gNTEyRwo+Pj4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLXwtLS0t LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tCj4+Pj4+ Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIG1zwqDC oMKgICglKSB8wqDCoCBtc8KgwqDCoCAoJSkgfMKgwqAgbXPCoMKgwqAgKCUpIHwKPj4+Pj4+Pj4+ Pj4+PiBtc8KgwqDCoCAoJSkKPj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0t LS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj4+ Pj4+IGJhc2XCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTUzwqDCoCAoMCUpIHwgMjIyN8KgwqAg KDAlKSB8IDg3OTjCoMKgICgwJSkgfCAxNzQ0MsKgwqAKPj4+Pj4+Pj4+Pj4+PiAoMCUpCj4+Pj4+ Pj4+Pj4+Pj4gbm8tY29udC1yZW1hcMKgIHzCoMKgIDc3ICgtNDklKSB8wqAgNDMxICgtODElKSB8 IDE3MjcgKC04MCUpIHzCoCAzNzk2Cj4+Pj4+Pj4+Pj4+Pj4gKC03OCUpCj4+Pj4+Pj4+Pj4+Pj4g YmF0Y2gtYmFycmllcnMgfMKgwqAgMTMgKC05MiUpIHzCoCAxNjIgKC05MyUpIHzCoCA2NTUgKC05 MyUpIHzCoCAxNjU2Cj4+Pj4+Pj4+Pj4+Pj4gKC05MSUpCj4+Pj4+Pj4+Pj4+Pj4gbm8tYWxsb2Mt cmVtYXAgfMKgwqAgMTEgKC05MyUpIHzCoCAxMDkgKC05NSUpIHzCoCA0NDkgKC05NSUpIHzCoCAx MjU3Cj4+Pj4+Pj4+Pj4+Pj4gKC05MyUpCj4+Pj4+Pj4+Pj4+Pj4gbGF6eS11bm1hcMKgwqDCoMKg IHzCoMKgwqAgNiAoLTk2JSkgfMKgwqAgNjEgKC05NyUpIHzCoCAyNTcgKC05NyUpIHzCoMKgIDgz OAo+Pj4+Pj4+Pj4+Pj4+ICgtOTUlKQo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gVGhpcyBz ZXJpZXMgYXBwbGllcyBvbiB0b3Agb2YgdjYuOS1yYzIuIEFsbCBtbSBzZWxmdGVzdHMgcGFzcy4g SSd2ZQo+Pj4+Pj4+Pj4+Pj4+IGNvbXBpbGUgYW5kCj4+Pj4+Pj4+Pj4+Pj4gYm9vdCB0ZXN0ZWQg dmFyaW91cyBQQUdFX1NJWkUgYW5kIFZBIHNpemUgY29uZmlncy4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+Pj4+IC0tLQo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gQ2hhbmdlcyBzaW5jZSB2 MSBbMV0KPj4+Pj4+Pj4+Pj4+PiA9PT09PT09PT09PT09PT09PT09PQo+Pj4+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCAtIEFkZGVkIFRlc3RlZC1ieSB0YWdzICh0aGFua3MgdG8g RXJpYyBhbmQgSXRhcnUpCj4+Pj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCAtIFJlbmFtZWQgX19fc2V0 X3B0ZSgpIC0+IF9fc2V0X3B0ZV9ub3N5bmMoKSAocGVyIEFyZCkKPj4+Pj4+Pj4+Pj4+PiDCoMKg wqDCoMKgIC0gUmVvcmRlcmVkIHBhdGNoZXMgKGJpZ2dlc3QgaW1wYWN0ICYgbGVhc3QgY29udHJv dmVyc2lhbCBmaXJzdCkKPj4+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIC0gUmVvcmRlcmVkIGFsbG9j L21hcC91bm1hcCBmdW5jdGlvbnMgaW4gbW11LmMgdG8gYWlkIHJlYWRlcgo+Pj4+Pj4+Pj4+Pj4+ IMKgwqDCoMKgwqAgLSBwdGVfY2xlYXIoKSAtPiBfX3B0ZV9jbGVhcigpIGluIGNsZWFyX2ZpeG1h cF9ub3N5bmMoKQo+Pj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAgLSBSZXZlcnRlZCBnZW5lcmljIHA0 ZF9pbmRleCgpIHdoaWNoIGNhdXNlZCB4ODYgYnVpbGQgZXJyb3IuCj4+Pj4+Pj4+Pj4+Pj4gUmVw bGFjZWQgd2l0aAo+Pj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgIHVuY29uZGl0aW9uYWwgcDRk X2luZGV4KCkgZGVmaW5lIHVuZGVyIGFybTY0Lgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+Pj4+PiBbMV0KPj4+Pj4+Pj4+Pj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy9s aW51eC1hcm0ta2VybmVsLzIwMjQwMzI2MTAxNDQ4LjM0NTM2MjYtMS1yeWFuLnJvYmVydHNAYXJt LmNvbS88aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtYXJtLWtlcm5lbC8yMDI0MDMyNjEw MTQ0OC4zNDUzNjI2LTEtcnlhbi5yb2JlcnRzQGFybS5jb20vPgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4+Pj4gVGhhbmtzLAo+Pj4+Pj4+Pj4+Pj4+IFJ5YW4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gUnlhbiBSb2JlcnRzICg0KToKPj4+Pj4+Pj4+Pj4+PiDCoMKg wqDCoMKgIGFybTY0OiBtbTogRG9uJ3QgcmVtYXAgcGd0YWJsZXMgcGVyLWNvbnQocHRlfHBtZCkg YmxvY2sKPj4+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIGFybTY0OiBtbTogQmF0Y2ggZHNiIGFuZCBp c2Igd2hlbiBwb3B1bGF0aW5nIHBndGFibGVzCj4+Pj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCBhcm02 NDogbW06IERvbid0IHJlbWFwIHBndGFibGVzIGZvciBhbGxvY2F0ZSB2cyBwb3B1bGF0ZQo+Pj4+ Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAgYXJtNjQ6IG1tOiBMYXppbHkgY2xlYXIgcHRlIHRhYmxlIG1h cHBpbmdzIGZyb20gZml4bWFwCj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+PiBhcmNoL2FybTY0 L2luY2x1ZGUvYXNtL2ZpeG1hcC5owqAgfMKgwqAgNSArLQo+Pj4+Pj4+Pj4+Pj4+IGFyY2gvYXJt NjQvaW5jbHVkZS9hc20vbW11LmjCoMKgwqDCoCB8wqDCoCA4ICsKPj4+Pj4+Pj4+Pj4+PiBhcmNo L2FybTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaCB8wqAgMTMgKy0KPj4+Pj4+Pj4+Pj4+PiBhcmNo L2FybTY0L2tlcm5lbC9jcHVmZWF0dXJlLmPCoMKgIHzCoCAxMCArLQo+Pj4+Pj4+Pj4+Pj4+IGFy Y2gvYXJtNjQvbW0vZml4bWFwLmPCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTEgKwo+Pj4+Pj4+ Pj4+Pj4+IGFyY2gvYXJtNjQvbW0vbW11LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDM3 NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4+Pj4+Pj4+Pj4+Pj4gNiBmaWxlcyBj aGFuZ2VkLCAzMTkgaW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQo+Pj4+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4+Pj4gLS3CoAo+Pj4+Pj4+Pj4+Pj4+IDIuMjUuMQo+Pj4+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gSSd2ZSBidWlsZCBhbmQgYm9vdCB0ZXN0ZWQgdGhlIHYy IG9uIEZWUCwgYmFzZSBpcyB0YWtlbiBmcm9tIHlvdXIKPj4+Pj4+Pj4+Pj4+IGxpbnV4LXJyIHJl cG8uIFJ1bm5pbmcgcnVuX3ZtdGVzdHMuc2ggb24gdjIgbGVmdCBzb21lIGd1cCBsb25ndGVybSBu b3QKPj4+Pj4+Pj4+Pj4+IG9rcywgd291bGQgeW91IHRha2UgYSBsb29rIGF0IGl0PyBUaGUgbW0g a3NlZmx0ZXN0cyB1c2VkIGlzIGZyb20geW91cgo+Pj4+Pj4+Pj4+Pj4gbGludXgtcnIgcmVwbyB0 b28uCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFRoYW5rcyBmb3IgdGFraW5nIGEgbG9vayBhdCB0 aGlzLgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBJIGNhbid0IHJlcHJvZHVjZSB5b3VyIGlzc3Vl IHVuZm9ydHVuYXRlbHk7IHN0ZXBzIGFzIGZvbGxvd3Mgb24gQXBwbGUKPj4+Pj4+Pj4+Pj4gTTIg Vk06Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IENvbmZpZzogYXJtNjQgZGVmY29uZmlnICsgdGhl IGZvbGxvd2luZzoKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gIyBTcXVhc2hmcyBmb3Igc25hcHMs IHhmcyBmb3IgbGFyZ2UgZmlsZSBmb2xpb3MuCj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcg LS1lbmFibGUgQ09ORklHX1NRVUFTSEZTX0xaNAo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmln IC0tZW5hYmxlIENPTkZJR19TUVVBU0hGU19MWk8KPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZp ZyAtLWVuYWJsZSBDT05GSUdfU1FVQVNIRlNfWFoKPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZp ZyAtLWVuYWJsZSBDT05GSUdfU1FVQVNIRlNfWlNURAo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29u ZmlnIC0tZW5hYmxlIENPTkZJR19YRlNfRlMKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gIyBGb3Ig Z2VuZXJhbCBtbSBkZWJ1Zy4KPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBD T05GSUdfREVCVUdfVk0KPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05G SUdfREVCVUdfVk1fTUFQTEVfVFJFRQo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5h YmxlIENPTkZJR19ERUJVR19WTV9SQgo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5h YmxlIENPTkZJR19ERUJVR19WTV9QR0ZMQUdTCj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcg LS1lbmFibGUgQ09ORklHX0RFQlVHX1ZNX1BHVEFCTEUKPj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2Nv bmZpZyAtLWVuYWJsZSBDT05GSUdfUEFHRV9UQUJMRV9DSEVDSwo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+PiAjIEZvciBtbSBzZWxmdGVzdHMuCj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1l bmFibGUgQ09ORklHX1VTRVJGQVVMVEZECj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1l bmFibGUgQ09ORklHX1RFU1RfVk1BTExPQwo+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0t ZW5hYmxlIENPTkZJR19HVVBfVEVTVAo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBSdW5uaW5nIG9u IFZNIHdpdGggMTJHIG1lbW9yeSwgc3BsaXQgYWNyb3NzIDIgKGVtdWxhdGVkKSBOVU1BIG5vZGVz Cj4+Pj4+Pj4+Pj4+IChuZWVkZWQgYnkKPj4+Pj4+Pj4+Pj4gc29tZSBtbSBzZWxmdGVzdHMpLCB3 aXRoIGtlcm5lbCBjb21tYW5kIGxpbmUgdG8gcmVzZXJ2ZSBodWdldGxicyBhbmQKPj4+Pj4+Pj4+ Pj4gb3RoZXIKPj4+Pj4+Pj4+Pj4gZmVhdHVyZXMgcmVxdWlyZWQgYnkgc29tZSBtbSBzZWxmdGVz dHM6Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ICIKPj4+Pj4+Pj4+Pj4gdHJhbnNwYXJlbnRfaHVn ZXBhZ2U9bWFkdmlzZSBlYXJseWNvbiByb290PS9kZXYvdmRhMiBzZWNyZXRtZW0uZW5hYmxlCj4+ Pj4+Pj4+Pj4+IGh1Z2VwYWdlc3o9MUcgaHVnZXBhZ2VzPTA6MiwxOjIgaHVnZXBhZ2Vzej0zMk0g aHVnZXBhZ2VzPTA6MiwxOjIKPj4+Pj4+Pj4+Pj4gZGVmYXVsdF9odWdlcGFnZXN6PTJNIGh1Z2Vw YWdlcz0wOjY0LDE6NjQgaHVnZXBhZ2Vzej02NEsKPj4+Pj4+Pj4+Pj4gaHVnZXBhZ2VzPTA6Miwx OjIKPj4+Pj4+Pj4+Pj4gIgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBVYnVudHUgdXNlcnNwYWNl IHJ1bm5pbmcgb2ZmIFhGUyByb290ZnMuIEJ1aWxkIGFuZCBydW4gbW0gc2VsZnRlc3RzCj4+Pj4+ Pj4+Pj4+IGZyb20gc2FtZQo+Pj4+Pj4+Pj4+PiBnaXQgdHJlZS4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Pj4gQWx0aG91Z2ggSSBkb24ndCB0aGluayBhbnkgb2YgdGhpcyBjb25m aWcgc2hvdWxkIG1ha2UgYSBkaWZmZXJlbmNlIHRvCj4+Pj4+Pj4+Pj4+IGd1cF9sb25ndGVybS4K Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gTG9va3MgbGlrZSB5b3VyIGVycm9ycyBhcmUgYWxsICJm dHJ1bmNhdGUoKSBmYWlsZWQiLiBJJ3ZlIHNlZW4gdGhpcwo+Pj4+Pj4+Pj4+PiBwcm9ibGVtIG9u Cj4+Pj4+Pj4+Pj4+IG91ciBDSSBzeXN0ZW0uIFRoZXJlIGl0IGlzIGR1ZSB0byBydW5uaW5nIHRo ZSB0ZXN0cyBmcm9tIE5GUyBmaWxlCj4+Pj4+Pj4+Pj4+IHN5c3RlbS4gV2hhdAo+Pj4+Pj4+Pj4+ PiBmaWxlc3lzdGVtIGFyZSB5b3UgdXNpbmc/IFBlcmhhcHMgeW91IGFyZSBzaGFyaW5nIGludG8g dGhlIEZWUCB1c2luZwo+Pj4+Pj4+Pj4+PiA5cD8gVGhhdAo+Pj4+Pj4+Pj4+PiBtaWdodCBhbHNv IGJlIHByb2JsZW1hdGljLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gVGhhdCB3YXMgaXQuIFRoaXMg dGltZSBJIGJvb3RlZCB1cCB0aGUga2VybmVsIGluY2x1ZGluZyB5b3VyIHNlcmllcyBvbgo+Pj4+ Pj4+Pj4+IFFFTVUgb24gbXkgTTEgYW5kIGV4ZWN1dGVkIHRoZSBndXBfbG9uZ3Rlcm0gcHJvZ3Jh bSB3aXRob3V0IHRoZSBmdHJ1bmNhdGUKPj4+Pj4+Pj4+PiBmYWlsdXJlcy4gV2hlbiB0ZXN0aW5n IHlvdXIga2VybmVsIG9uIEZWUCwgSSB3YXMgZXhlY3V0aW5nIHRoZSBzY3JpcHQKPj4+Pj4+Pj4+ PiBmcm9tIHRoZSBGVlAncyBob3N0IGZpbGVzeXN0ZW0gdXNpbmcgOXAuCj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4gSSdtIG5vdCBzdXJlIGV4YWN0bHkgd2hhdCB0aGUgcm9vdCBjYXVzZSBpcy4gUGVyaGFw cyB0aGVyZSBpc24ndCBlbm91Z2gKPj4+Pj4+Pj4+IHNwYWNlIG9uCj4+Pj4+Pj4+PiB0aGUgZGlz az8gSXQgbWlnaHQgYmUgd29ydGggZW5oYW5jaW5nIHRoZSBlcnJvciBsb2cgdG8gcHJvdmlkZSB0 aGUKPj4+Pj4+Pj4+IGVycm5vIGluCj4+Pj4+Pj4+PiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9t bS9ndXBfbG9uZ3Rlcm0uYy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEF0dGFjaGVkIGlz IHRoZSBzdHJhY2XigJlkIGd1cF9sb25ndGVybSBleGVjdXRpb25nIGxvZyBvbiB5b3VyCj4+Pj4+ Pj4+IHBndGFibGUtYm9vdC1zcGVlZHVwLXYyIGtlcm5lbC4KPj4+Pj4+Pgo+Pj4+Pj4+IFNvcnJ5 IGFyZSB5b3Ugc2F5aW5nIHRoYXQgaXQgb25seSBmYWlscyB3aXRoIHRoZSBwZ3RhYmxlLWJvb3Qt c3BlZWR1cC12Mgo+Pj4+Pj4+IHBhdGNoCj4+Pj4+Pj4gc2V0IGFwcGxpZWQ/IEkgdGhvdWdodCB3 ZSBwcmV2aW91c2x5IGNvbmNsdWRlZCB0aGF0IGl0IHdhcyBpbmRlcGVuZGVudCBvZgo+Pj4+Pj4+ IHRoYXQ/Cj4+Pj4+Pj4gSSB3YXMgdW5kZXIgdGhlIGltcHJlc3Npb24gdGhhdCBpdCB3YXMgZmls ZXN5c3RlbSByZWxhdGVkIGFuZCBub3Qgc29tZXRoaW5nCj4+Pj4+Pj4gdGhhdAo+Pj4+Pj4+IEkg d2FzIHBsYW5uaW5nIHRvIGludmVzdGlnYXRlLgo+Pj4+Pj4KPj4+Pj4+IE5vLCBpcnJlc3BlY3Rp dmUgb2YgdGhlIGtlcm5lbCwgaWYgdXNpbmcgOXAgb24gRlZQIHRoZSB0ZXN0IHByb2dyYW0gZmFp bHMuCj4+Pj4+PiBJdCBpcyBpbmRlZWQgOXAgZmlsZXN5c3RlbSByZWxhdGVkLCBhcyBJIHN3aXRj aGVkIHRvIHVzaW5nIE5GUyBhbGwgdGhlCj4+Pj4+PiBpc3N1ZXMgYXJlIGdvbmUuCj4+Pj4+Cj4+ Pj4+IERpZCBpdCBuZXZlciB3b3JrIG9uIDlwPyBJZiBzbywgd2UgbWlnaHQgaGF2ZSB0byBTS0lQ IHRoYXQgdGVzdC4KPj4+Pj4KPj4+Pj4gb3BlbmF0KEFUX0ZEQ1dELCAiZ3VwX2xvbmd0ZXJtLmNf dG1wZmlsZV9CTGJvT3QiLCBPX1JEV1J8T19DUkVBVHxPX0VYQ0wsCj4+Pj4+IDA2MDApID0gMwo+ Pj4+PiB1bmxpbmthdChBVF9GRENXRCwgImd1cF9sb25ndGVybS5jX3RtcGZpbGVfQkxib090Iiwg MCkgPSAwCj4+Pj4+IGZzdGF0ZnMoMywgMHhmZmZmZTUwNWE4NDApwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgPSAtMSBFT1BOT1RTVVBQIChPcGVyYXRpb24gbm90Cj4+Pj4+IHN1cHBvcnRlZCkK Pj4+Pj4gZnRydW5jYXRlKDMsIDQwOTYpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IKPj4+Pj4gZGlyZWN0b3J5KQo+ Pj4+Cj4+Pj4gTm90ZTogSSdtIHdvbmRlcmluZyBpZiB0aGUgdW5saW5rYXQgaGVyZSBpcyB0aGUg cHJvYmxlbSB0aGF0IG1ha2VzCj4+Pj4gZnRydW5jYXRlKCkgd2l0aCA5cCByZXN1bHQgaW4gd2Vp cmQgZXJyb3JzIChlLmcuLCB0aGUgaHlwZXJ2aXNvcgo+Pj4+IHVubGlua2VkIHRoZSBmaWxlIGFu ZCBjYW5ub3QgcmVvcGVuIGl0IGZvciB0aGUgZnN0YXRmcy9mdHJ1bmNhdGUuIC4uLgo+Pj4+IHdo aWNoIGdpdmVzIHVzIHdlaXJkIGVycm9ycyBoZXJlKS4KPj4+Pgo+Pj4+IFRoZW4sIHdlIHNob3Vs ZCBsb29rdXAgdGhlIGZzIHR5cGUgaW4gcnVuX3dpdGhfbG9jYWxfdG1wZmlsZSgpIGJlZm9yZQo+ Pj4+IHRoZSB1bmxpbmsoKSBhbmQgc2ltcGx5IHNraXAgdGhlIHRlc3QgaWYgaXQgaXMgOXAuCj4+ Pgo+Pj4gVGhlIHVubGluayB3aXRoIDlwIG1vc3QgY2VydGFpbmx5IHdhcyBhIGtub3duIGlzc3Vl IGluIHRoZSBwYXN0Ogo+Pj4KPj4+IGh0dHBzOi8vZ2l0bGFiLmNvbS9xZW11LXByb2plY3QvcWVt dS8tL2lzc3Vlcy8xMDMKPj4+Cj4+PiBNYXliZSBpdCdzIHN0aWxsIGFuIGlzc3VlIHdpdGggb2xk ZXIgaHlwZXJ2aXNvcnMgKFFFTVU/KT8gT3IgaXQgd2FzIG5ldmVyCj4+PiBjb21wbGV0ZWx5IHJl c29sdmVkPwo+Pgo+PiBJIGJlbGlldmUgSXRhcnUgaXMgcnVubmluZyBvbiBGVlAgKEZpeGVkIFZp cnR1YWwgUGxhdGZvcm0gLSAiZmFzdCBtb2RlbCIgLQo+PiBBcm0ncyBhcmNoaXRlY3R1cmUgZW11 bGF0b3IpLiBTbyBRRU1VIHdvbid0IGJlIGludm9sdmVkIGhlcmUuIFRoZSBGVlAgZW11bGF0ZXMK Pj4gYSA5cCBkZXZpY2UsIHNvIHBlcmhhcHMgdGhlIGJ1ZyBpcyBpbiB0aGVyZS4KPiAKPiBWZXJ5 IGxpa2VseS4KPiAKPj4KPj4gTm90ZSB0aGF0IEkgc2VlIGxvdHMgb2YgImZhbGxvY2F0ZSgpIGZh aWxlZCIgZmFpbHVyZXMgaW4gZ3VwX2xvbmd0ZXJtIHdoZW4KPj4gcnVubmluZyBvbiBvdXIgQ0kg c3lzdGVtLiBUaGlzIGlzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2V0dXA7IFJlYWwgSFcgd2l0 aAo+PiBMaW51eCBydW5uaW5nIGJhcmUgbWV0YWwgdXNpbmcgYW4gTkZTIHJvb3Rmcy4gSSdtIG5v dCBzdXJlIGlmIHRoaXMgaXMgcmVsYXRlZC4KPj4gTG9ncyBzaG93IGl0IGZhaWxpbmcgY29uc2lz dGVudGx5IGZvciB0aGUgInRtcGZpbGUiIGFuZCAibG9jYWwgdG1wZmlsZSIgdGVzdAo+PiBjb25m aWdzLiBJIGFsc28gc2VlIGEgY291cGxlIG9mIHRoZXNlIGZhaWxzIGluIHRoZSBjb3cgdGVzdHMu Cj4gCj4gV2hhdCBpcyB0aGUgZmFsbG9jYXRlKCkgZXJybm8geW91IGFyZSBnZXR0aW5nPyBzdHJh Y2UgbG9nIHdvdWxkIGhlbHAgKHRvIHNlZSBpZgo+IHN0YXRmcyBhbHNvIGZhaWxzIGFscmVhZHkp ISBMaWtlbHkgYSBzaW1pbGFyIE5GUyBpc3N1ZS4KClVuZm9ydHVuYXRlbHkgdGhpcyBpcyBhIHN5 c3RlbSBJIGRvbid0IGhhdmUgYWNjZXNzIHRvLiBJJ3ZlIHJlcXVlc3RlZCBzb21lIG9mCnRoaXMg dHJpYWdlIHRvIGJlIGRvbmUsIGJ1dCBpdHMgZmFpcmx5IGxvdyBwcmlvcml0eSB1bmZvcnR1bmF0 ZWx5LgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3E63F8F77 for ; Tue, 9 Apr 2024 14:39:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712673576; cv=none; b=nyygqFLaoMiTbPXnc5+9zajV7rjkA6XH3nqhjqjcqlDPCBgsacJ7R+nR1PvHJ6ccAcueivhmqeBrMoZaAgO949noURn97tnGI71rzGkI5pliWAESTRBuZQRFGJE+qbYkIuQsbwQaaKwen6pegKvXHuafTX/40rGfk7ZZCsZonzA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712673576; c=relaxed/simple; bh=UupAhcVDZ+YPXdJA9ZfJYnp9ZzmUBNiEeIsHXJvdxUM=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=difJBWO8JqhS0lugWqLXo0HI50hJaajbByffUsjkEp+NbrSuCi+OK4s6UhZftHaAXZjPtumxA7HVMqzhFsZbIQueJbZK8ABZMzrJazO47qfrm/ik8WmCoBzw23KrYbMhRS9swHo7R74X3Pxr1hc3T8Yrl4iQJMO2rGn+39nb97A= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A9CEF139F; Tue, 9 Apr 2024 07:40:03 -0700 (PDT) Received: from [10.1.33.185] (XHFQ2J9959.cambridge.arm.com [10.1.33.185]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 78BDA3F766; Tue, 9 Apr 2024 07:39:30 -0700 (PDT) Message-ID: Date: Tue, 9 Apr 2024 15:39:29 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 0/4] Speed up boot with faster linear map creation Content-Language: en-GB To: David Hildenbrand , Itaru Kitayama Cc: Catalin Marinas , Will Deacon , Mark Rutland , Ard Biesheuvel , Donald Dutile , Eric Chanudet , Linux ARM , "linux-kernel@vger.kernel.org" References: <20240404143308.2224141-1-ryan.roberts@arm.com> <533adb77-8c2b-40db-84cb-88de77ab92bb@arm.com> <1d5abb48-08a8-4d83-a681-6915bc7b6907@arm.com> <268FBD1C-B102-4726-A7F4-1125123BDA7A@linux.dev> <5e4dc2fe-2945-4fc5-a533-c8b2d04668a0@redhat.com> From: Ryan Roberts In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 09/04/2024 15:29, David Hildenbrand wrote: > On 09.04.24 16:13, Ryan Roberts wrote: >> On 09/04/2024 12:51, David Hildenbrand wrote: >>> On 09.04.24 13:29, David Hildenbrand wrote: >>>> On 09.04.24 13:22, David Hildenbrand wrote: >>>>> On 09.04.24 12:13, Itaru Kitayama wrote: >>>>>> >>>>>> >>>>>>> On Apr 9, 2024, at 19:04, Ryan Roberts wrote: >>>>>>> >>>>>>> On 09/04/2024 01:10, Itaru Kitayama wrote: >>>>>>>> Hi Ryan, >>>>>>>> >>>>>>>>> On Apr 8, 2024, at 16:30, Ryan Roberts wrote: >>>>>>>>> >>>>>>>>> On 06/04/2024 11:31, Itaru Kitayama wrote: >>>>>>>>>> Hi Ryan, >>>>>>>>>> >>>>>>>>>> On Sat, Apr 06, 2024 at 09:32:34AM +0100, Ryan Roberts wrote: >>>>>>>>>>> Hi Itaru, >>>>>>>>>>> >>>>>>>>>>> On 05/04/2024 08:39, Itaru Kitayama wrote: >>>>>>>>>>>> On Thu, Apr 04, 2024 at 03:33:04PM +0100, Ryan Roberts wrote: >>>>>>>>>>>>> Hi All, >>>>>>>>>>>>> >>>>>>>>>>>>> It turns out that creating the linear map can take a significant >>>>>>>>>>>>> proportion of >>>>>>>>>>>>> the total boot time, especially when rodata=full. And most of the >>>>>>>>>>>>> time is spent >>>>>>>>>>>>> waiting on superfluous tlb invalidation and memory barriers. This >>>>>>>>>>>>> series reworks >>>>>>>>>>>>> the kernel pgtable generation code to significantly reduce the number >>>>>>>>>>>>> of those >>>>>>>>>>>>> TLBIs, ISBs and DSBs. See each patch for details. >>>>>>>>>>>>> >>>>>>>>>>>>> The below shows the execution time of map_mem() across a couple of >>>>>>>>>>>>> different >>>>>>>>>>>>> systems with different RAM configurations. We measure after applying >>>>>>>>>>>>> each patch >>>>>>>>>>>>> and show the improvement relative to base (v6.9-rc2): >>>>>>>>>>>>> >>>>>>>>>>>>>                    | Apple M2 VM | Ampere Altra| Ampere Altra| Ampere >>>>>>>>>>>>> Altra >>>>>>>>>>>>>                    | VM, 16G     | VM, 64G     | VM, 256G    | Metal, >>>>>>>>>>>>> 512G >>>>>>>>>>>>> ---------------|-------------|-------------|-------------|------------- >>>>>>>>>>>>>                    |   ms    (%) |   ms    (%) |   ms    (%) | >>>>>>>>>>>>> ms    (%) >>>>>>>>>>>>> ---------------|-------------|-------------|-------------|------------- >>>>>>>>>>>>> base           |  153   (0%) | 2227   (0%) | 8798   (0%) | 17442   >>>>>>>>>>>>> (0%) >>>>>>>>>>>>> no-cont-remap  |   77 (-49%) |  431 (-81%) | 1727 (-80%) |  3796 >>>>>>>>>>>>> (-78%) >>>>>>>>>>>>> batch-barriers |   13 (-92%) |  162 (-93%) |  655 (-93%) |  1656 >>>>>>>>>>>>> (-91%) >>>>>>>>>>>>> no-alloc-remap |   11 (-93%) |  109 (-95%) |  449 (-95%) |  1257 >>>>>>>>>>>>> (-93%) >>>>>>>>>>>>> lazy-unmap     |    6 (-96%) |   61 (-97%) |  257 (-97%) |   838 >>>>>>>>>>>>> (-95%) >>>>>>>>>>>>> >>>>>>>>>>>>> This series applies on top of v6.9-rc2. All mm selftests pass. I've >>>>>>>>>>>>> compile and >>>>>>>>>>>>> boot tested various PAGE_SIZE and VA size configs. >>>>>>>>>>>>> >>>>>>>>>>>>> --- >>>>>>>>>>>>> >>>>>>>>>>>>> Changes since v1 [1] >>>>>>>>>>>>> ==================== >>>>>>>>>>>>> >>>>>>>>>>>>>       - Added Tested-by tags (thanks to Eric and Itaru) >>>>>>>>>>>>>       - Renamed ___set_pte() -> __set_pte_nosync() (per Ard) >>>>>>>>>>>>>       - Reordered patches (biggest impact & least controversial first) >>>>>>>>>>>>>       - Reordered alloc/map/unmap functions in mmu.c to aid reader >>>>>>>>>>>>>       - pte_clear() -> __pte_clear() in clear_fixmap_nosync() >>>>>>>>>>>>>       - Reverted generic p4d_index() which caused x86 build error. >>>>>>>>>>>>> Replaced with >>>>>>>>>>>>>         unconditional p4d_index() define under arm64. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> [1] >>>>>>>>>>>>> https://lore.kernel.org/linux-arm-kernel/20240326101448.3453626-1-ryan.roberts@arm.com/ >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> Ryan >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Ryan Roberts (4): >>>>>>>>>>>>>       arm64: mm: Don't remap pgtables per-cont(pte|pmd) block >>>>>>>>>>>>>       arm64: mm: Batch dsb and isb when populating pgtables >>>>>>>>>>>>>       arm64: mm: Don't remap pgtables for allocate vs populate >>>>>>>>>>>>>       arm64: mm: Lazily clear pte table mappings from fixmap >>>>>>>>>>>>> >>>>>>>>>>>>> arch/arm64/include/asm/fixmap.h  |   5 +- >>>>>>>>>>>>> arch/arm64/include/asm/mmu.h     |   8 + >>>>>>>>>>>>> arch/arm64/include/asm/pgtable.h |  13 +- >>>>>>>>>>>>> arch/arm64/kernel/cpufeature.c   |  10 +- >>>>>>>>>>>>> arch/arm64/mm/fixmap.c           |  11 + >>>>>>>>>>>>> arch/arm64/mm/mmu.c              | 377 +++++++++++++++++++++++-------- >>>>>>>>>>>>> 6 files changed, 319 insertions(+), 105 deletions(-) >>>>>>>>>>>>> >>>>>>>>>>>>> --  >>>>>>>>>>>>> 2.25.1 >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> I've build and boot tested the v2 on FVP, base is taken from your >>>>>>>>>>>> linux-rr repo. Running run_vmtests.sh on v2 left some gup longterm not >>>>>>>>>>>> oks, would you take a look at it? The mm ksefltests used is from your >>>>>>>>>>>> linux-rr repo too. >>>>>>>>>>> >>>>>>>>>>> Thanks for taking a look at this. >>>>>>>>>>> >>>>>>>>>>> I can't reproduce your issue unfortunately; steps as follows on Apple >>>>>>>>>>> M2 VM: >>>>>>>>>>> >>>>>>>>>>> Config: arm64 defconfig + the following: >>>>>>>>>>> >>>>>>>>>>> # Squashfs for snaps, xfs for large file folios. >>>>>>>>>>> ./scripts/config --enable CONFIG_SQUASHFS_LZ4 >>>>>>>>>>> ./scripts/config --enable CONFIG_SQUASHFS_LZO >>>>>>>>>>> ./scripts/config --enable CONFIG_SQUASHFS_XZ >>>>>>>>>>> ./scripts/config --enable CONFIG_SQUASHFS_ZSTD >>>>>>>>>>> ./scripts/config --enable CONFIG_XFS_FS >>>>>>>>>>> >>>>>>>>>>> # For general mm debug. >>>>>>>>>>> ./scripts/config --enable CONFIG_DEBUG_VM >>>>>>>>>>> ./scripts/config --enable CONFIG_DEBUG_VM_MAPLE_TREE >>>>>>>>>>> ./scripts/config --enable CONFIG_DEBUG_VM_RB >>>>>>>>>>> ./scripts/config --enable CONFIG_DEBUG_VM_PGFLAGS >>>>>>>>>>> ./scripts/config --enable CONFIG_DEBUG_VM_PGTABLE >>>>>>>>>>> ./scripts/config --enable CONFIG_PAGE_TABLE_CHECK >>>>>>>>>>> >>>>>>>>>>> # For mm selftests. >>>>>>>>>>> ./scripts/config --enable CONFIG_USERFAULTFD >>>>>>>>>>> ./scripts/config --enable CONFIG_TEST_VMALLOC >>>>>>>>>>> ./scripts/config --enable CONFIG_GUP_TEST >>>>>>>>>>> >>>>>>>>>>> Running on VM with 12G memory, split across 2 (emulated) NUMA nodes >>>>>>>>>>> (needed by >>>>>>>>>>> some mm selftests), with kernel command line to reserve hugetlbs and >>>>>>>>>>> other >>>>>>>>>>> features required by some mm selftests: >>>>>>>>>>> >>>>>>>>>>> " >>>>>>>>>>> transparent_hugepage=madvise earlycon root=/dev/vda2 secretmem.enable >>>>>>>>>>> hugepagesz=1G hugepages=0:2,1:2 hugepagesz=32M hugepages=0:2,1:2 >>>>>>>>>>> default_hugepagesz=2M hugepages=0:64,1:64 hugepagesz=64K >>>>>>>>>>> hugepages=0:2,1:2 >>>>>>>>>>> " >>>>>>>>>>> >>>>>>>>>>> Ubuntu userspace running off XFS rootfs. Build and run mm selftests >>>>>>>>>>> from same >>>>>>>>>>> git tree. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Although I don't think any of this config should make a difference to >>>>>>>>>>> gup_longterm. >>>>>>>>>>> >>>>>>>>>>> Looks like your errors are all "ftruncate() failed". I've seen this >>>>>>>>>>> problem on >>>>>>>>>>> our CI system. There it is due to running the tests from NFS file >>>>>>>>>>> system. What >>>>>>>>>>> filesystem are you using? Perhaps you are sharing into the FVP using >>>>>>>>>>> 9p? That >>>>>>>>>>> might also be problematic. >>>>>>>>>> >>>>>>>>>> That was it. This time I booted up the kernel including your series on >>>>>>>>>> QEMU on my M1 and executed the gup_longterm program without the ftruncate >>>>>>>>>> failures. When testing your kernel on FVP, I was executing the script >>>>>>>>>> from the FVP's host filesystem using 9p. >>>>>>>>> >>>>>>>>> I'm not sure exactly what the root cause is. Perhaps there isn't enough >>>>>>>>> space on >>>>>>>>> the disk? It might be worth enhancing the error log to provide the >>>>>>>>> errno in >>>>>>>>> tools/testing/selftests/mm/gup_longterm.c. >>>>>>>>> >>>>>>>> >>>>>>>> Attached is the strace’d gup_longterm executiong log on your >>>>>>>> pgtable-boot-speedup-v2 kernel. >>>>>>> >>>>>>> Sorry are you saying that it only fails with the pgtable-boot-speedup-v2 >>>>>>> patch >>>>>>> set applied? I thought we previously concluded that it was independent of >>>>>>> that? >>>>>>> I was under the impression that it was filesystem related and not something >>>>>>> that >>>>>>> I was planning to investigate. >>>>>> >>>>>> No, irrespective of the kernel, if using 9p on FVP the test program fails. >>>>>> It is indeed 9p filesystem related, as I switched to using NFS all the >>>>>> issues are gone. >>>>> >>>>> Did it never work on 9p? If so, we might have to SKIP that test. >>>>> >>>>> openat(AT_FDCWD, "gup_longterm.c_tmpfile_BLboOt", O_RDWR|O_CREAT|O_EXCL, >>>>> 0600) = 3 >>>>> unlinkat(AT_FDCWD, "gup_longterm.c_tmpfile_BLboOt", 0) = 0 >>>>> fstatfs(3, 0xffffe505a840)              = -1 EOPNOTSUPP (Operation not >>>>> supported) >>>>> ftruncate(3, 4096)                      = -1 ENOENT (No such file or >>>>> directory) >>>> >>>> Note: I'm wondering if the unlinkat here is the problem that makes >>>> ftruncate() with 9p result in weird errors (e.g., the hypervisor >>>> unlinked the file and cannot reopen it for the fstatfs/ftruncate. ... >>>> which gives us weird errors here). >>>> >>>> Then, we should lookup the fs type in run_with_local_tmpfile() before >>>> the unlink() and simply skip the test if it is 9p. >>> >>> The unlink with 9p most certainly was a known issue in the past: >>> >>> https://gitlab.com/qemu-project/qemu/-/issues/103 >>> >>> Maybe it's still an issue with older hypervisors (QEMU?)? Or it was never >>> completely resolved? >> >> I believe Itaru is running on FVP (Fixed Virtual Platform - "fast model" - >> Arm's architecture emulator). So QEMU won't be involved here. The FVP emulates >> a 9p device, so perhaps the bug is in there. > > Very likely. > >> >> Note that I see lots of "fallocate() failed" failures in gup_longterm when >> running on our CI system. This is a completely different setup; Real HW with >> Linux running bare metal using an NFS rootfs. I'm not sure if this is related. >> Logs show it failing consistently for the "tmpfile" and "local tmpfile" test >> configs. I also see a couple of these fails in the cow tests. > > What is the fallocate() errno you are getting? strace log would help (to see if > statfs also fails already)! Likely a similar NFS issue. Unfortunately this is a system I don't have access to. I've requested some of this triage to be done, but its fairly low priority unfortunately.