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=-8.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED 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 B7FBBC433B4 for ; Mon, 3 May 2021 06:27:07 +0000 (UTC) Received: from mm01.cs.columbia.edu (mm01.cs.columbia.edu [128.59.11.253]) by mail.kernel.org (Postfix) with ESMTP id 14AE661249 for ; Mon, 3 May 2021 06:27:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 14AE661249 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvmarm-bounces@lists.cs.columbia.edu Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 828924B394; Mon, 3 May 2021 02:27:06 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Authentication-Results: mm01.cs.columbia.edu (amavisd-new); dkim=softfail (fail, message has been altered) header.i=@kernel.org Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nhUFAY6nZ-BN; Mon, 3 May 2021 02:27:05 -0400 (EDT) Received: from mm01.cs.columbia.edu (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 433174B39F; Mon, 3 May 2021 02:27:05 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 6DB1D4B39F for ; Mon, 3 May 2021 02:27:03 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TE34GSL-dqJD for ; Mon, 3 May 2021 02:27:02 -0400 (EDT) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by mm01.cs.columbia.edu (Postfix) with ESMTPS id 27AED4B394 for ; Mon, 3 May 2021 02:27:02 -0400 (EDT) Received: by mail.kernel.org (Postfix) with ESMTPSA id A376461185; Mon, 3 May 2021 06:26:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620023221; bh=ARgCJkbvRnhDoHk3mV9x6qfowVNrQmhn5MqXTbvPEYU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=JLCHzBplf919bfRjQhdvb086292DMWBVZ45XMSphxu+pcjDiMcckytIgWXw8oIMvl z18xh8OtBWrApFxp0Ap7DYavNOBdHbF2GD9xw92gKbbluKtpPRzgQzkjWTt2pRg3Bg wBhtw0n2qCbOyCudUIRfXQPYxbJIHPI9r/vQtzoJdLfoqQwsHc3DO0snvF4vcUGdP8 Mlk/usfjkMj3HVCII0mYn451J74eeuCXvepkDWSRrDg5TugCTJasOKobmY9n9tah12 TMr62xVdWVrQTTVeIrlfu9AMNqwI3MWcfSfk2gMjdB3lSwvuf6A4yLjtDHYLsFG9my ljVCh+EdI3S5w== Date: Mon, 3 May 2021 09:26:52 +0300 From: Mike Rapoport To: Kefeng Wang Subject: Re: arm32: panic in move_freepages (Was [PATCH v2 0/4] arm64: drop pfn_valid_within() and simplify pfn_valid()) Message-ID: References: <2d879629-3059-fd42-428f-4b7c2a73d698@huawei.com> <259d14df-a713-72e7-4ccb-c06a8ee31e13@huawei.com> <6ad2956c-70ae-c423-ed7d-88e94c88060f@huawei.com> <0cb013e4-1157-f2fa-96ec-e69e60833f72@huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Cc: David Hildenbrand , Catalin Marinas , Anshuman Khandual , linux-kernel@vger.kernel.org, Mike Rapoport , linux-mm@kvack.org, kvmarm@lists.cs.columbia.edu, Marc Zyngier , Andrew Morton , Will Deacon , linux-arm-kernel@lists.infradead.org X-BeenThere: kvmarm@lists.cs.columbia.edu X-Mailman-Version: 2.1.14 Precedence: list List-Id: Where KVM/ARM decisions are made List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu On Fri, Apr 30, 2021 at 07:24:37PM +0800, Kefeng Wang wrote: > = > = > On 2021/4/30 17:51, Mike Rapoport wrote: > > On Thu, Apr 29, 2021 at 06:22:55PM +0800, Kefeng Wang wrote: > > > = > > > On 2021/4/29 14:57, Mike Rapoport wrote: > > > = > > > > > > Do you use SPARSMEM? If yes, what is your section size? > > > > > > What is the value if CONFIG_FORCE_MAX_ZONEORDER in your configu= ration? > > > > > Yes, > > > > > = > > > > > CONFIG_SPARSEMEM=3Dy > > > > > = > > > > > CONFIG_SPARSEMEM_STATIC=3Dy > > > > > = > > > > > CONFIG_FORCE_MAX_ZONEORDER =3D 11 > > > > > = > > > > > CONFIG_PAGE_OFFSET=3D0xC0000000 > > > > > CONFIG_HAVE_ARCH_PFN_VALID=3Dy > > > > > CONFIG_HIGHMEM=3Dy > > > > > #define SECTION_SIZE_BITS 26 > > > > > #define MAX_PHYSADDR_BITS 32 > > > > > #define MAX_PHYSMEM_BITS 32 > > > = > > > = > > > With the patch,=A0 the addr is aligned, but the panic still occurred, > > = > > Is this the same panic at move_freepages() for range [de600, de7ff]? > > = > > Do you enable CONFIG_ARM_LPAE? > = > no, the CONFIG_ARM_LPAE is not set, and yes with same panic at > move_freepages at > = > start_pfn/end_pfn [de600, de7ff], [de600000, de7ff000] : pfn =3Dde600, p= age > =3Def3cc000, page-flags =3D ffffffff, pfn2phy =3D de600000 > = > > > __free_memory_core, range: 0xb0200000 - 0xc0000000, pfn: b0200 - b0200 > > > __free_memory_core, range: 0xcc000000 - 0xdca00000, pfn: cc000 - b0200 > > > __free_memory_core, range: 0xde700000 - 0xdea00000, pfn: de700 - b0200 Hmm, [de600, de7ff] is not added to the free lists which is correct. But then it's unclear how the page for de600 gets to move_freepages()... Can't say I have any bright ideas to try here... > the __free_memory_core will check the start pfn and end pfn, > = > if (start_pfn >=3D end_pfn) > return 0; > = > __free_pages_memory(start_pfn, end_pfn); > so the memory will not be freed to buddy, confused... It's a check for range validity, all valid ranges are added. > > > __free_memory_core, range: 0xe0800000 - 0xe0c00000, pfn: e0800 - b0200 > > > __free_memory_core, range: 0xf4b00000 - 0xf7000000, pfn: f4b00 - b0200 > > > __free_memory_core, range: 0xfda00000 - 0xffffffff, pfn: fda00 - b0200 > > > > It seems that with SPARSEMEM we don't align the freed parts on page= block > > > > boundaries. > > > > = > > > > Can you try the patch below: > > > > = > > > > diff --git a/mm/memblock.c b/mm/memblock.c > > > > index afaefa8fc6ab..1926369b52ec 100644 > > > > --- a/mm/memblock.c > > > > +++ b/mm/memblock.c > > > > @@ -1941,14 +1941,13 @@ static void __init free_unused_memmap(void) > > > > * due to SPARSEMEM sections which aren't present. > > > > */ > > > > start =3D min(start, ALIGN(prev_end, PAGES_PER_SECTION)); > > > > -#else > > > > +#endif > > > > /* > > > > * Align down here since the VM subsystem insists that the > > > > * memmap entries are valid from the bank start aligned to > > > > * MAX_ORDER_NR_PAGES. > > > > */ > > > > start =3D round_down(start, MAX_ORDER_NR_PAGES); > > > > -#endif > > > > /* > > > > * If we had a previous bank, and there is a space > > > > = > > = -- = Sincerely yours, Mike. _______________________________________________ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm 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.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 0D639C433ED for ; Mon, 3 May 2021 06:29:32 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 71C7F61249 for ; Mon, 3 May 2021 06:29:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 71C7F61249 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: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=F6MQixcEM49rl66AaA0Xf7rPASRMCdxVMUaBW/9opQc=; b=q56MPuOhfrJR35U0lK27jFQlI Prgy9A2eJxis5gmXMfvv44sWRJMbqNXD5j1DsFricuTZsKplgdEjmlyQ+hTaIDuz4NFVTWCdzMgEU qLG/UOOOEv82C8w9A1wKym2c3tV3YoiGCUFzcMmXFL0ENdImhq1prFuSGrsD4IPA92orlffVPSVVt 2Y2dckXSpE/tBwJmd53kKdpj87ePZMU8A5QbT+W9cSOwsQQtYEAXjuT4jDL5x7eBr8jr9mGX/65sg VwkfXLdUlU+1R0YVSXiiHeaF7i0XFafjSuH6ZO9Zxn1SdgJmOrjXDv/QP/vLnM1zuvl1eWgCuNcrj yJd1YiIPQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ldS2u-00DHYe-E8; Mon, 03 May 2021 06:27:08 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ldS2q-00DHY6-AP for linux-arm-kernel@desiato.infradead.org; Mon, 03 May 2021 06:27:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Transfer-Encoding :Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=9Tydhe2jkuzG/ZVoGOTHZy3/E9hBDZE0q6BkdQ6ljbA=; b=Ve8zBgR9qa4rUo79jvE2zqVabM vtd4I/g9ArqRVZxEWxKmmy0cdFKcDTB0ZR9Ft4hwYwA53BDfVOPsRSFMWvnkI4+c1EgDcHOuIpIgu +YZqkZRALYfCW3INO4n5bXSRK2nKd6IorzH90bMe40R/tth694saLFIjbuukECBzbyRXUtFSz7A5v 2aW10BFfei/Tnord4JHSVmjuEvyVpnNbXZJ1x7BV5JurSjTpvTh9LjA+xEOoUwEIRUR3jlL1jX+mg wQLlw9tELwRBueWs044Z7dP2fpq9rAC7fefx3JyVTVU4LKYKIev/Ye0Jjx9usd8cxoCeWd6nRSD2e Xl5fBCRA==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ldS2n-002rm0-Jl for linux-arm-kernel@lists.infradead.org; Mon, 03 May 2021 06:27:03 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id A376461185; Mon, 3 May 2021 06:26:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620023221; bh=ARgCJkbvRnhDoHk3mV9x6qfowVNrQmhn5MqXTbvPEYU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=JLCHzBplf919bfRjQhdvb086292DMWBVZ45XMSphxu+pcjDiMcckytIgWXw8oIMvl z18xh8OtBWrApFxp0Ap7DYavNOBdHbF2GD9xw92gKbbluKtpPRzgQzkjWTt2pRg3Bg wBhtw0n2qCbOyCudUIRfXQPYxbJIHPI9r/vQtzoJdLfoqQwsHc3DO0snvF4vcUGdP8 Mlk/usfjkMj3HVCII0mYn451J74eeuCXvepkDWSRrDg5TugCTJasOKobmY9n9tah12 TMr62xVdWVrQTTVeIrlfu9AMNqwI3MWcfSfk2gMjdB3lSwvuf6A4yLjtDHYLsFG9my ljVCh+EdI3S5w== Date: Mon, 3 May 2021 09:26:52 +0300 From: Mike Rapoport To: Kefeng Wang Cc: linux-arm-kernel@lists.infradead.org, Andrew Morton , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , David Hildenbrand , Marc Zyngier , Mark Rutland , Mike Rapoport , Will Deacon , kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: arm32: panic in move_freepages (Was [PATCH v2 0/4] arm64: drop pfn_valid_within() and simplify pfn_valid()) Message-ID: References: <2d879629-3059-fd42-428f-4b7c2a73d698@huawei.com> <259d14df-a713-72e7-4ccb-c06a8ee31e13@huawei.com> <6ad2956c-70ae-c423-ed7d-88e94c88060f@huawei.com> <0cb013e4-1157-f2fa-96ec-e69e60833f72@huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210502_232701_715786_4F8963F9 X-CRM114-Status: GOOD ( 29.67 ) 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="iso-8859-1" Content-Transfer-Encoding: quoted-printable Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Apr 30, 2021 at 07:24:37PM +0800, Kefeng Wang wrote: > = > = > On 2021/4/30 17:51, Mike Rapoport wrote: > > On Thu, Apr 29, 2021 at 06:22:55PM +0800, Kefeng Wang wrote: > > > = > > > On 2021/4/29 14:57, Mike Rapoport wrote: > > > = > > > > > > Do you use SPARSMEM? If yes, what is your section size? > > > > > > What is the value if CONFIG_FORCE_MAX_ZONEORDER in your configu= ration? > > > > > Yes, > > > > > = > > > > > CONFIG_SPARSEMEM=3Dy > > > > > = > > > > > CONFIG_SPARSEMEM_STATIC=3Dy > > > > > = > > > > > CONFIG_FORCE_MAX_ZONEORDER =3D 11 > > > > > = > > > > > CONFIG_PAGE_OFFSET=3D0xC0000000 > > > > > CONFIG_HAVE_ARCH_PFN_VALID=3Dy > > > > > CONFIG_HIGHMEM=3Dy > > > > > #define SECTION_SIZE_BITS 26 > > > > > #define MAX_PHYSADDR_BITS 32 > > > > > #define MAX_PHYSMEM_BITS 32 > > > = > > > = > > > With the patch,=A0 the addr is aligned, but the panic still occurred, > > = > > Is this the same panic at move_freepages() for range [de600, de7ff]? > > = > > Do you enable CONFIG_ARM_LPAE? > = > no, the CONFIG_ARM_LPAE is not set, and yes with same panic at > move_freepages at > = > start_pfn/end_pfn [de600, de7ff], [de600000, de7ff000] : pfn =3Dde600, p= age > =3Def3cc000, page-flags =3D ffffffff, pfn2phy =3D de600000 > = > > > __free_memory_core, range: 0xb0200000 - 0xc0000000, pfn: b0200 - b0200 > > > __free_memory_core, range: 0xcc000000 - 0xdca00000, pfn: cc000 - b0200 > > > __free_memory_core, range: 0xde700000 - 0xdea00000, pfn: de700 - b0200 Hmm, [de600, de7ff] is not added to the free lists which is correct. But then it's unclear how the page for de600 gets to move_freepages()... Can't say I have any bright ideas to try here... > the __free_memory_core will check the start pfn and end pfn, > = > if (start_pfn >=3D end_pfn) > return 0; > = > __free_pages_memory(start_pfn, end_pfn); > so the memory will not be freed to buddy, confused... It's a check for range validity, all valid ranges are added. > > > __free_memory_core, range: 0xe0800000 - 0xe0c00000, pfn: e0800 - b0200 > > > __free_memory_core, range: 0xf4b00000 - 0xf7000000, pfn: f4b00 - b0200 > > > __free_memory_core, range: 0xfda00000 - 0xffffffff, pfn: fda00 - b0200 > > > > It seems that with SPARSEMEM we don't align the freed parts on page= block > > > > boundaries. > > > > = > > > > Can you try the patch below: > > > > = > > > > diff --git a/mm/memblock.c b/mm/memblock.c > > > > index afaefa8fc6ab..1926369b52ec 100644 > > > > --- a/mm/memblock.c > > > > +++ b/mm/memblock.c > > > > @@ -1941,14 +1941,13 @@ static void __init free_unused_memmap(void) > > > > * due to SPARSEMEM sections which aren't present. > > > > */ > > > > start =3D min(start, ALIGN(prev_end, PAGES_PER_SECTION)); > > > > -#else > > > > +#endif > > > > /* > > > > * Align down here since the VM subsystem insists that the > > > > * memmap entries are valid from the bank start aligned to > > > > * MAX_ORDER_NR_PAGES. > > > > */ > > > > start =3D round_down(start, MAX_ORDER_NR_PAGES); > > > > -#endif > > > > /* > > > > * If we had a previous bank, and there is a space > > > > = > > = -- = Sincerely yours, Mike. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel 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=-8.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 593B8C433B4 for ; Mon, 3 May 2021 06:27:04 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id C994861249 for ; Mon, 3 May 2021 06:27:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C994861249 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 2E2CB6B0036; Mon, 3 May 2021 02:27:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 292A66B006E; Mon, 3 May 2021 02:27:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1174F6B0070; Mon, 3 May 2021 02:27:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0063.hostedemail.com [216.40.44.63]) by kanga.kvack.org (Postfix) with ESMTP id E85066B0036 for ; Mon, 3 May 2021 02:27:02 -0400 (EDT) Received: from smtpin06.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id A24578249980 for ; Mon, 3 May 2021 06:27:02 +0000 (UTC) X-FDA: 78098937084.06.CE99540 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf24.hostedemail.com (Postfix) with ESMTP id 44A9AA0003B5 for ; Mon, 3 May 2021 06:26:50 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id A376461185; Mon, 3 May 2021 06:26:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620023221; bh=ARgCJkbvRnhDoHk3mV9x6qfowVNrQmhn5MqXTbvPEYU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=JLCHzBplf919bfRjQhdvb086292DMWBVZ45XMSphxu+pcjDiMcckytIgWXw8oIMvl z18xh8OtBWrApFxp0Ap7DYavNOBdHbF2GD9xw92gKbbluKtpPRzgQzkjWTt2pRg3Bg wBhtw0n2qCbOyCudUIRfXQPYxbJIHPI9r/vQtzoJdLfoqQwsHc3DO0snvF4vcUGdP8 Mlk/usfjkMj3HVCII0mYn451J74eeuCXvepkDWSRrDg5TugCTJasOKobmY9n9tah12 TMr62xVdWVrQTTVeIrlfu9AMNqwI3MWcfSfk2gMjdB3lSwvuf6A4yLjtDHYLsFG9my ljVCh+EdI3S5w== Date: Mon, 3 May 2021 09:26:52 +0300 From: Mike Rapoport To: Kefeng Wang Cc: linux-arm-kernel@lists.infradead.org, Andrew Morton , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , David Hildenbrand , Marc Zyngier , Mark Rutland , Mike Rapoport , Will Deacon , kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: arm32: panic in move_freepages (Was [PATCH v2 0/4] arm64: drop pfn_valid_within() and simplify pfn_valid()) Message-ID: References: <2d879629-3059-fd42-428f-4b7c2a73d698@huawei.com> <259d14df-a713-72e7-4ccb-c06a8ee31e13@huawei.com> <6ad2956c-70ae-c423-ed7d-88e94c88060f@huawei.com> <0cb013e4-1157-f2fa-96ec-e69e60833f72@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=JLCHzBpl; spf=pass (imf24.hostedemail.com: domain of rppt@kernel.org designates 198.145.29.99 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 44A9AA0003B5 X-Stat-Signature: hopa3tmy1qp7ejbkh1wsi6qz1nkrfssr Received-SPF: none (kernel.org>: No applicable sender policy available) receiver=imf24; identity=mailfrom; envelope-from=""; helo=mail.kernel.org; client-ip=198.145.29.99 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1620023210-900062 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Apr 30, 2021 at 07:24:37PM +0800, Kefeng Wang wrote: >=20 >=20 > On 2021/4/30 17:51, Mike Rapoport wrote: > > On Thu, Apr 29, 2021 at 06:22:55PM +0800, Kefeng Wang wrote: > > >=20 > > > On 2021/4/29 14:57, Mike Rapoport wrote: > > >=20 > > > > > > Do you use SPARSMEM? If yes, what is your section size? > > > > > > What is the value if CONFIG_FORCE_MAX_ZONEORDER in your confi= guration? > > > > > Yes, > > > > >=20 > > > > > CONFIG_SPARSEMEM=3Dy > > > > >=20 > > > > > CONFIG_SPARSEMEM_STATIC=3Dy > > > > >=20 > > > > > CONFIG_FORCE_MAX_ZONEORDER =3D 11 > > > > >=20 > > > > > CONFIG_PAGE_OFFSET=3D0xC0000000 > > > > > CONFIG_HAVE_ARCH_PFN_VALID=3Dy > > > > > CONFIG_HIGHMEM=3Dy > > > > > #define SECTION_SIZE_BITS 26 > > > > > #define MAX_PHYSADDR_BITS 32 > > > > > #define MAX_PHYSMEM_BITS 32 > > >=20 > > >=20 > > > With the patch,=A0 the addr is aligned, but the panic still occurre= d, > >=20 > > Is this the same panic at move_freepages() for range [de600, de7ff]? > >=20 > > Do you enable CONFIG_ARM_LPAE? >=20 > no, the CONFIG_ARM_LPAE is not set, and yes with same panic at > move_freepages at >=20 > start_pfn/end_pfn [de600, de7ff], [de600000, de7ff000] : pfn =3Dde600,= page > =3Def3cc000, page-flags =3D ffffffff, pfn2phy =3D de600000 >=20 > > > __free_memory_core, range: 0xb0200000 - 0xc0000000, pfn: b0200 - b0= 200 > > > __free_memory_core, range: 0xcc000000 - 0xdca00000, pfn: cc000 - b0= 200 > > > __free_memory_core, range: 0xde700000 - 0xdea00000, pfn: de700 - b0= 200 Hmm, [de600, de7ff] is not added to the free lists which is correct. But then it's unclear how the page for de600 gets to move_freepages()... Can't say I have any bright ideas to try here... > the __free_memory_core will check the start pfn and end pfn, >=20 > if (start_pfn >=3D end_pfn) > return 0; >=20 > __free_pages_memory(start_pfn, end_pfn); > so the memory will not be freed to buddy, confused... It's a check for range validity, all valid ranges are added. > > > __free_memory_core, range: 0xe0800000 - 0xe0c00000, pfn: e0800 - b0= 200 > > > __free_memory_core, range: 0xf4b00000 - 0xf7000000, pfn: f4b00 - b0= 200 > > > __free_memory_core, range: 0xfda00000 - 0xffffffff, pfn: fda00 - b0= 200 > > > > It seems that with SPARSEMEM we don't align the freed parts on pa= geblock > > > > boundaries. > > > >=20 > > > > Can you try the patch below: > > > >=20 > > > > diff --git a/mm/memblock.c b/mm/memblock.c > > > > index afaefa8fc6ab..1926369b52ec 100644 > > > > --- a/mm/memblock.c > > > > +++ b/mm/memblock.c > > > > @@ -1941,14 +1941,13 @@ static void __init free_unused_memmap(voi= d) > > > > * due to SPARSEMEM sections which aren't present. > > > > */ > > > > start =3D min(start, ALIGN(prev_end, PAGES_PER_SECTION)); > > > > -#else > > > > +#endif > > > > /* > > > > * Align down here since the VM subsystem insists that the > > > > * memmap entries are valid from the bank start aligned to > > > > * MAX_ORDER_NR_PAGES. > > > > */ > > > > start =3D round_down(start, MAX_ORDER_NR_PAGES); > > > > -#endif > > > > /* > > > > * If we had a previous bank, and there is a space > > > >=20 > >=20 --=20 Sincerely yours, Mike.