From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3461D6CDB9; Tue, 16 Apr 2024 06:44:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713249863; cv=none; b=iqH2UZic1Qb+OUcGNn3hreBZCje74fkuIQyUcUPaxxlvzfA59D8aicDOtvencJYLkt/UdDC2/Dy/BTwGpCqASFhv2tid3vRhF104+MQzujtM+dv2YhiLdTDQ+BHNM3XKa/HHC9ifr6VXGzg10aY3DkN06q8iVhanF5wL9XK4K3U= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713249863; c=relaxed/simple; bh=IDXyCoMqGfsMJVQO4R4ACB5kFoxMOUpZEeJyD5og0ho=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HnVUmhyJSzpAzKJMnJbYhacoCpxhoxhDqfLA7DGLz8Vw3D0il0CE4sGjMysXCl7aj1NytG2jY25sKgks740uJ1EwVfFaTdYIQstZeayON4uuCXL1C8ZrXyDk1s2iEZdQnWFIwJZRfmxyd4lsGeNywed1nUcEHyuDkJYw3UIKz2Q= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=I4EpvtrB; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=bJzRYCLQ; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="I4EpvtrB"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="bJzRYCLQ" Date: Tue, 16 Apr 2024 08:44:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1713249860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXvhT03wv4aD4mG7No4QBS1v7N0JoskGOicMYBhMYkU=; b=I4EpvtrBMDw8wtNcnN+FtV7XaKNKQxwSOUjI+gsa86yDttz6jik4c/ITUTbXRVSMCW5FgE j1ybcCdXv3uk9RbqRiJmEvwk5X19kmTOqqW7XWK5vpS+z5gXt+zzrtLg+99Om0014tdyES JOGcCCdqpzz9eib45hed8UOKMuFptKmg26d1n753cdw/gQeNFq8/Ci+ZBGGIEA7tYOKPTP 7+dPSEYQv42OGaQobWn8yXdYHZ/+NegmuisSyNJ4LpjxPnq/lfLTs6vY3NMEzyPVu1SGa3 g8U9b4BDtMDqJ8s+HwmPK7jcY5THj01jQ37v9JTWYtAJWMZcER3OE84d6Bzi1A== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1713249860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXvhT03wv4aD4mG7No4QBS1v7N0JoskGOicMYBhMYkU=; b=bJzRYCLQmILvJC51K4zxw1Cp6h4ntNM+6v4foRDudJvLy+lpJM+x1SDNyCTogQ89bV3viq bSPWcQsruKAKuDCA== From: Nam Cao To: =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= Cc: Christian Brauner , Andreas Dilger , Al Viro , linux-fsdevel , Jan Kara , Linux Kernel Mailing List , linux-riscv@lists.infradead.org, Theodore Ts'o , Ext4 Developers List , Conor Dooley , "Matthew Wilcox (Oracle)" , Anders Roxell Subject: Re: riscv32 EXT4 splat, 6.8 regression? Message-ID: <20240416084417.569356d3@namcao> In-Reply-To: <87le5e393x.fsf@all.your.base.are.belong.to.us> References: <878r1ibpdn.fsf@all.your.base.are.belong.to.us> <20240413164318.7260c5ef@namcao> <22E65CA5-A2C0-44A3-AB01-7514916A18FC@dilger.ca> <20240414021555.GQ2118490@ZenIV> <887E261B-3C76-4CD9-867B-5D087051D004@dilger.ca> <87v84kujec.fsf@all.your.base.are.belong.to.us> <20240415-festland-unattraktiv-2b5953a6dbc9@brauner> <87le5e393x.fsf@all.your.base.are.belong.to.us> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 2024-04-15 Bj=C3=B6rn T=C3=B6pel wrote: > Thanks for getting back! Spent some more time one it today. >=20 > It seems that the buddy allocator *can* return a page with a VA that can > wrap (0xfffff000 -- pointed out by Nam and myself). >=20 > Further, it seems like riscv32 indeed inserts a page like that to the > buddy allocator, when the memblock is free'd: >=20 > | [] __free_one_page+0x2a4/0x3ea > | [] __free_pages_ok+0x158/0x3cc > | [] __free_pages_core+0xe8/0x12c > | [] memblock_free_pages+0x1a/0x22 > | [] memblock_free_all+0x1ee/0x278 > | [] mem_init+0x10/0xa4 > | [] mm_core_init+0x11a/0x2da > | [] start_kernel+0x3c4/0x6de >=20 > Here, a page with VA 0xfffff000 is a added to the freelist. We were just > lucky (unlucky?) that page was used for the page cache. I just educated myself about memory mapping last night, so the below may be complete nonsense. Take it with a grain of salt. In riscv's setup_bootmem(), we have this line: max_low_pfn =3D max_pfn =3D PFN_DOWN(phys_ram_end); I think this is the root cause: max_low_pfn indicates the last page to be mapped. Problem is: nothing prevents PFN_DOWN(phys_ram_end) from getting mapped to the last page (0xfffff000). If max_low_pfn is mapped to the last page, we get the reported problem. There seems to be some code to make sure the last page is not used (the call to memblock_set_current_limit() right above this line). It is unclear to me why this still lets the problem slip through. The fix is simple: never let max_low_pfn gets mapped to the last page. The below patch fixes the problem for me. But I am not entirely sure if this is the correct fix, further investigation needed. Best regards, Nam diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index fa34cf55037b..17cab0a52726 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -251,7 +251,8 @@ static void __init setup_bootmem(void) } =20 min_low_pfn =3D PFN_UP(phys_ram_base); - max_low_pfn =3D max_pfn =3D PFN_DOWN(phys_ram_end); + max_low_pfn =3D PFN_DOWN(memblock_get_current_limit()); + max_pfn =3D PFN_DOWN(phys_ram_end); high_memory =3D (void *)(__va(PFN_PHYS(max_low_pfn))); =20 dma32_phys_limit =3D min(4UL * SZ_1G, (unsigned long)PFN_PHYS(max_low_pfn= )); 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 E76F6C04FF8 for ; Tue, 16 Apr 2024 06:44:56 +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:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pDkwjh2TYIQOiBbvJ+TaGWmOfPW3YYGYCzxdL4w6lAE=; b=Y8LHiwQfyaR43P 6wvUoWOiYQWsf8XbLDLTkg+Hk+A33wB8zgnF7nRNHua9T8dTUklUyP1kLa5Oei0Ah2rOuNUetvs91 5v9cV2NH86du41ioCesisNAKN5hBdLACLN4e8l84h+gMtJQB882m4Ex6/EU9CM+dEq3bljRlofnnb mXTOEje7EQ8LezCMNr0CZM56suFFG6t64OZgzjkiSDPOvvZ1y3Tz0FE0TlmO5yWdnb8GJu94NWZC+ tZk6SLRqX0btuUzvgyykck0gRkdVIEUsBKZQWBkcdWs5uXYiyRy32VgpUNDgpgI2KghmilCHJMLDi pAO6dtIxGiff653QL+Jw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rwcYa-0000000B82b-0rLS; Tue, 16 Apr 2024 06:44:41 +0000 Received: from galois.linutronix.de ([2a0a:51c0:0:12e:550::1]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rwcYL-0000000B7xQ-40DY for linux-riscv@lists.infradead.org; Tue, 16 Apr 2024 06:44:35 +0000 Date: Tue, 16 Apr 2024 08:44:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1713249860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXvhT03wv4aD4mG7No4QBS1v7N0JoskGOicMYBhMYkU=; b=I4EpvtrBMDw8wtNcnN+FtV7XaKNKQxwSOUjI+gsa86yDttz6jik4c/ITUTbXRVSMCW5FgE j1ybcCdXv3uk9RbqRiJmEvwk5X19kmTOqqW7XWK5vpS+z5gXt+zzrtLg+99Om0014tdyES JOGcCCdqpzz9eib45hed8UOKMuFptKmg26d1n753cdw/gQeNFq8/Ci+ZBGGIEA7tYOKPTP 7+dPSEYQv42OGaQobWn8yXdYHZ/+NegmuisSyNJ4LpjxPnq/lfLTs6vY3NMEzyPVu1SGa3 g8U9b4BDtMDqJ8s+HwmPK7jcY5THj01jQ37v9JTWYtAJWMZcER3OE84d6Bzi1A== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1713249860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXvhT03wv4aD4mG7No4QBS1v7N0JoskGOicMYBhMYkU=; b=bJzRYCLQmILvJC51K4zxw1Cp6h4ntNM+6v4foRDudJvLy+lpJM+x1SDNyCTogQ89bV3viq bSPWcQsruKAKuDCA== From: Nam Cao To: =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= Cc: Christian Brauner , Andreas Dilger , Al Viro , linux-fsdevel , Jan Kara , Linux Kernel Mailing List , linux-riscv@lists.infradead.org, Theodore Ts'o , Ext4 Developers List , Conor Dooley , "Matthew Wilcox (Oracle)" , Anders Roxell Subject: Re: riscv32 EXT4 splat, 6.8 regression? Message-ID: <20240416084417.569356d3@namcao> In-Reply-To: <87le5e393x.fsf@all.your.base.are.belong.to.us> References: <878r1ibpdn.fsf@all.your.base.are.belong.to.us> <20240413164318.7260c5ef@namcao> <22E65CA5-A2C0-44A3-AB01-7514916A18FC@dilger.ca> <20240414021555.GQ2118490@ZenIV> <887E261B-3C76-4CD9-867B-5D087051D004@dilger.ca> <87v84kujec.fsf@all.your.base.are.belong.to.us> <20240415-festland-unattraktiv-2b5953a6dbc9@brauner> <87le5e393x.fsf@all.your.base.are.belong.to.us> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240415_234426_166257_2E602D29 X-CRM114-Status: GOOD ( 17.64 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gMjAyNC0wNC0xNSBCasO2cm4gVMO2cGVsIHdyb3RlOgo+IFRoYW5rcyBmb3IgZ2V0dGluZyBi YWNrISBTcGVudCBzb21lIG1vcmUgdGltZSBvbmUgaXQgdG9kYXkuCj4gCj4gSXQgc2VlbXMgdGhh dCB0aGUgYnVkZHkgYWxsb2NhdG9yICpjYW4qIHJldHVybiBhIHBhZ2Ugd2l0aCBhIFZBIHRoYXQg Y2FuCj4gd3JhcCAoMHhmZmZmZjAwMCAtLSBwb2ludGVkIG91dCBieSBOYW0gYW5kIG15c2VsZiku Cj4gCj4gRnVydGhlciwgaXQgc2VlbXMgbGlrZSByaXNjdjMyIGluZGVlZCBpbnNlcnRzIGEgcGFn ZSBsaWtlIHRoYXQgdG8gdGhlCj4gYnVkZHkgYWxsb2NhdG9yLCB3aGVuIHRoZSBtZW1ibG9jayBp cyBmcmVlJ2Q6Cj4gCj4gICB8IFs8YzAyNDk2MWM+XSBfX2ZyZWVfb25lX3BhZ2UrMHgyYTQvMHgz ZWEKPiAgIHwgWzxjMDI0YTQ0OD5dIF9fZnJlZV9wYWdlc19vaysweDE1OC8weDNjYwo+ICAgfCBb PGMwMjRiMWE0Pl0gX19mcmVlX3BhZ2VzX2NvcmUrMHhlOC8weDEyYwo+ICAgfCBbPGMwYzE0MzVh Pl0gbWVtYmxvY2tfZnJlZV9wYWdlcysweDFhLzB4MjIKPiAgIHwgWzxjMGMxNzY3Nj5dIG1lbWJs b2NrX2ZyZWVfYWxsKzB4MWVlLzB4Mjc4Cj4gICB8IFs8YzBjMDUwYjA+XSBtZW1faW5pdCsweDEw LzB4YTQKPiAgIHwgWzxjMGMxNDQ3Yz5dIG1tX2NvcmVfaW5pdCsweDExYS8weDJkYQo+ICAgfCBb PGMwYzAwYmI2Pl0gc3RhcnRfa2VybmVsKzB4M2M0LzB4NmRlCj4gCj4gSGVyZSwgYSBwYWdlIHdp dGggVkEgMHhmZmZmZjAwMCBpcyBhIGFkZGVkIHRvIHRoZSBmcmVlbGlzdC4gV2Ugd2VyZSBqdXN0 Cj4gbHVja3kgKHVubHVja3k/KSB0aGF0IHBhZ2Ugd2FzIHVzZWQgZm9yIHRoZSBwYWdlIGNhY2hl LgoKSSBqdXN0IGVkdWNhdGVkIG15c2VsZiBhYm91dCBtZW1vcnkgbWFwcGluZyBsYXN0IG5pZ2h0 LCBzbyB0aGUgYmVsb3cKbWF5IGJlIGNvbXBsZXRlIG5vbnNlbnNlLiBUYWtlIGl0IHdpdGggYSBn cmFpbiBvZiBzYWx0LgoKSW4gcmlzY3YncyBzZXR1cF9ib290bWVtKCksIHdlIGhhdmUgdGhpcyBs aW5lOgoJbWF4X2xvd19wZm4gPSBtYXhfcGZuID0gUEZOX0RPV04ocGh5c19yYW1fZW5kKTsKCkkg dGhpbmsgdGhpcyBpcyB0aGUgcm9vdCBjYXVzZTogbWF4X2xvd19wZm4gaW5kaWNhdGVzIHRoZSBs YXN0IHBhZ2UKdG8gYmUgbWFwcGVkLiBQcm9ibGVtIGlzOiBub3RoaW5nIHByZXZlbnRzIFBGTl9E T1dOKHBoeXNfcmFtX2VuZCkgZnJvbQpnZXR0aW5nIG1hcHBlZCB0byB0aGUgbGFzdCBwYWdlICgw eGZmZmZmMDAwKS4gSWYgbWF4X2xvd19wZm4gaXMgbWFwcGVkCnRvIHRoZSBsYXN0IHBhZ2UsIHdl IGdldCB0aGUgcmVwb3J0ZWQgcHJvYmxlbS4KClRoZXJlIHNlZW1zIHRvIGJlIHNvbWUgY29kZSB0 byBtYWtlIHN1cmUgdGhlIGxhc3QgcGFnZSBpcyBub3QgdXNlZAoodGhlIGNhbGwgdG8gbWVtYmxv Y2tfc2V0X2N1cnJlbnRfbGltaXQoKSByaWdodCBhYm92ZSB0aGlzIGxpbmUpLiBJdCBpcwp1bmNs ZWFyIHRvIG1lIHdoeSB0aGlzIHN0aWxsIGxldHMgdGhlIHByb2JsZW0gc2xpcCB0aHJvdWdoLgoK VGhlIGZpeCBpcyBzaW1wbGU6IG5ldmVyIGxldCBtYXhfbG93X3BmbiBnZXRzIG1hcHBlZCB0byB0 aGUgbGFzdCBwYWdlLgpUaGUgYmVsb3cgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gZm9yIG1lLiBC dXQgSSBhbSBub3QgZW50aXJlbHkgc3VyZSBpZgp0aGlzIGlzIHRoZSBjb3JyZWN0IGZpeCwgZnVy dGhlciBpbnZlc3RpZ2F0aW9uIG5lZWRlZC4KCkJlc3QgcmVnYXJkcywKTmFtCgpkaWZmIC0tZ2l0 IGEvYXJjaC9yaXNjdi9tbS9pbml0LmMgYi9hcmNoL3Jpc2N2L21tL2luaXQuYwppbmRleCBmYTM0 Y2Y1NTAzN2IuLjE3Y2FiMGE1MjcyNiAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9tbS9pbml0LmMK KysrIGIvYXJjaC9yaXNjdi9tbS9pbml0LmMKQEAgLTI1MSw3ICsyNTEsOCBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgc2V0dXBfYm9vdG1lbSh2b2lkKQogCX0KIAogCW1pbl9sb3dfcGZuID0gUEZOX1VQ KHBoeXNfcmFtX2Jhc2UpOwotCW1heF9sb3dfcGZuID0gbWF4X3BmbiA9IFBGTl9ET1dOKHBoeXNf cmFtX2VuZCk7CisJbWF4X2xvd19wZm4gPSBQRk5fRE9XTihtZW1ibG9ja19nZXRfY3VycmVudF9s aW1pdCgpKTsKKwltYXhfcGZuID0gUEZOX0RPV04ocGh5c19yYW1fZW5kKTsKIAloaWdoX21lbW9y eSA9ICh2b2lkICopKF9fdmEoUEZOX1BIWVMobWF4X2xvd19wZm4pKSk7CiAKIAlkbWEzMl9waHlz X2xpbWl0ID0gbWluKDRVTCAqIFNaXzFHLCAodW5zaWduZWQgbG9uZylQRk5fUEhZUyhtYXhfbG93 X3BmbikpOwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=