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=-3.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 D60FBC433B4 for ; Mon, 26 Apr 2021 05:20:54 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 4B7286135F for ; Mon, 26 Apr 2021 05:20:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4B7286135F 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 BC6406B006C; Mon, 26 Apr 2021 01:20:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B9C436B006E; Mon, 26 Apr 2021 01:20:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A65446B0070; Mon, 26 Apr 2021 01:20:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0167.hostedemail.com [216.40.44.167]) by kanga.kvack.org (Postfix) with ESMTP id 863636B006C for ; Mon, 26 Apr 2021 01:20:53 -0400 (EDT) Received: from smtpin40.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 361A7180AD820 for ; Mon, 26 Apr 2021 05:20:53 +0000 (UTC) X-FDA: 78073368786.40.E48395F Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf19.hostedemail.com (Postfix) with ESMTP id A144190009F4 for ; Mon, 26 Apr 2021 05:20:24 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id B5D746008E; Mon, 26 Apr 2021 05:20:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1619414451; bh=685vzft1UpPTZWzP/wT5CXw7b1mT0zK3efSf8y1p2WA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=I6Slv6qlya+xpQVA06BiWCjMjBS8rZUtrjr7pbsxHgtXEcKOwLJZvDxsBIndbJOHD suxJ4+7M60Cf7bCUNYKBY5gECQOMzcRfMIDdIe90Z4nWliQCdjqlFKwOsBdK85ZilE 3anSC2AQi13U9mf0NhVeuh0c4bgk1XfcBOL0Z9DEE853hO3ymv1luCV2piBg0DOyLi ml/yx1n/REGPPJcTTCLZ8EfI5XTfsEr3LIkbSj60jGy2JDzGNHhwIEe/2QeGPvWHF0 +2nioLe6KnheTG2nIN0zGZf8qN5klKL2O2T6/GnJlPzPQ+EuMM8alUKiKoXqrasaF8 Qpgn2sWQHxDQg== Date: Mon, 26 Apr 2021 08:20:43 +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: <20210421065108.1987-1-rppt@kernel.org> <9aa68d26-d736-3b75-4828-f148964eb7f0@huawei.com> <33fa74c2-f32d-f224-eb30-acdb717179ff@huawei.com> <2a1592ad-bc9d-4664-fd19-f7448a37edc0@huawei.com> <52f7d03b-7219-46bc-c62d-b976bc31ebd5@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <52f7d03b-7219-46bc-c62d-b976bc31ebd5@huawei.com> X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: A144190009F4 X-Stat-Signature: dce53ardj71m1d1kbncdar8qa3gbimu6 Received-SPF: none (kernel.org>: No applicable sender policy available) receiver=imf19; identity=mailfrom; envelope-from=""; helo=mail.kernel.org; client-ip=198.145.29.99 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1619414424-641284 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 Sun, Apr 25, 2021 at 03:51:56PM +0800, Kefeng Wang wrote: >=20 > On 2021/4/25 15:19, Mike Rapoport wrote: >=20 > On Fri, Apr 23, 2021 at 04:11:16PM +0800, Kefeng Wang wrote: >=20 > I tested this patchset(plus arm32 change, like arm64 does) base= d on lts > 5.10=EF=BC=8Cadd >=20 > some debug log, the useful info shows below, if we enable HOLES= _IN_ZONE, no > panic, >=20 > any idea, thanks. >=20 >=20 > Are there any changes on top of 5.10 except for pfn_valid() patch? > Do you see this panic on 5.10 without the changes? >=20 > Yes, there are some BSP support for arm board based on 5.10, with or wi= thout >=20 > your patch will get same panic, the panic pfn=3Dde600 in the range of > [dcc00,de00] >=20 > which is freed by free_memmap, start_pfn =3D dcc00,=C2=A0 dcc00000 end_= pfn =3D de700, > de700000 >=20 > we see the PC is at PageLRU, same reason like arm64 panic log, >=20 > "PageBuddy in move_freepages returns false > Then we call PageLRU, the macro calls PF_HEAD which is compound_pag= e() > compound_page reads page->compound_head, it is 0xffffffffffffffff, = so it > resturns 0xfffffffffffffffe - and accessing this address causes cra= sh" >=20 > Can you see stack backtrace beyond move_freepages_block? >=20 > I do some oom test, so the log is about memory allocate, >=20 > [] (move_freepages_block) from [] > (steal_suitable_fallback+0x174/0x1f4) >=20 > [] (steal_suitable_fallback) from [] (get_page_from= _freelist+0x490/0x9a4) Hmm, this is called with a page from free list, having a page from a free= d part of the memory map passed to steal_suitable_fallback() means that the= re is an issue with creation of the free list. Can you please add "memblock=3Ddebug" to the kernel command line and post= the log? > [] (get_page_from_freelist) from [] (__alloc_pages_= nodemask+0x188/0xc08) > [] (__alloc_pages_nodemask) from [] (alloc_zeroed_u= ser_highpage_movable+0x14/0x3c) > [] (alloc_zeroed_user_highpage_movable) from [] (ha= ndle_mm_fault+0x254/0xac8) > [] (handle_mm_fault) from [] (do_page_fault+0x228/0= x2f4) > [] (do_page_fault) from [] (do_DataAbort+0x48/0xd0) > [] (do_DataAbort) from [] (__dabt_usr+0x40/0x60) >=20 >=20 >=20 > Zone ranges: > =C2=A0 Normal=C2=A0=C2=A0 [mem 0x0000000080a00000-0x00000000b01= fffff] > =C2=A0 HighMem=C2=A0 [mem 0x00000000b0200000-0x00000000ffffefff= ] > Movable zone start for each node > Early memory node ranges > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x0000000080a00000-0x0000000085= 5fffff] > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x0000000086a00000-0x0000000087= dfffff] > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x000000008bd00000-0x000000008c= 4fffff] > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x000000008e300000-0x000000008e= cfffff] > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x0000000090d00000-0x00000000bf= ffffff] > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x00000000cc000000-0x00000000dc= 9fffff] > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x00000000de700000-0x00000000de= 9fffff] > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x00000000e0800000-0x00000000e0= bfffff] > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x00000000f4b00000-0x00000000f6= ffffff] > =C2=A0 node=C2=A0=C2=A0 0: [mem 0x00000000fda00000-0x00000000ff= ffefff] >=20 > ----> free_memmap, start_pfn =3D 85800,=C2=A0 85800000 end_pfn = =3D 86a00, 86a00000 > ----> free_memmap, start_pfn =3D 8c800,=C2=A0 8c800000 end_pfn = =3D 8e300, 8e300000 > ----> free_memmap, start_pfn =3D 8f000,=C2=A0 8f000000 end_pfn = =3D 90000, 90000000 > ----> free_memmap, start_pfn =3D dcc00,=C2=A0 dcc00000 end_pfn = =3D de700, de700000 > ----> free_memmap, start_pfn =3D dec00,=C2=A0 dec00000 end_pfn = =3D e0000, e0000000 > ----> free_memmap, start_pfn =3D e0c00,=C2=A0 e0c00000 end_pfn = =3D e4000, e4000000 > ----> free_memmap, start_pfn =3D f7000,=C2=A0 f7000000 end_pfn = =3D f8000, f8000000 > =3D=3D=3D >move_freepages: start_pfn/end_pfn [de601, de7ff], [d= e600000, de7ff000] > :=C2=A0 pfn =3Dde600 pfn2phy =3D de600000 , page =3D ef3cc000, = page-flags =3D ffffffff > 8<--- cut here --- > Unable to handle kernel paging request at virtual address fffff= ffe > pgd =3D 5dd50df5 > [fffffffe] *pgd=3Daffff861, *pte=3D00000000, *ppte=3D00000000 > Internal error: Oops: 37 [#1] SMP ARM > Modules linked in: gmac(O) > CPU: 2 PID: 635 Comm: test-oom Tainted: G=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 O=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 5.10= .0+ #31 > Hardware name: Hisilicon A9 > PC is at move_freepages_block+0x150/0x278 > LR is at move_freepages_block+0x150/0x278 > pc : []=C2=A0=C2=A0=C2=A0 lr : []=C2=A0=C2=A0= =C2=A0 psr: 200e0393 > sp : c4179cf8=C2=A0 ip : 00000000=C2=A0 fp : 00000001 > r10: c4179d58=C2=A0 r9 : 000de7ff=C2=A0 r8 : 00000000 > r7 : c0863280=C2=A0 r6 : 000de600=C2=A0 r5 : 000de600=C2=A0 r4 = : ef3cc000 > r3 : ffffffff=C2=A0 r2 : 00000000=C2=A0 r1 : ef5d069c=C2=A0 r0 = : fffffffe > Flags: nzCv=C2=A0 IRQs off=C2=A0 FIQs on=C2=A0 Mode SVC_32=C2=A0= ISA ARM=C2=A0 Segment user > Control: 1ac5387d=C2=A0 Table: 83b0c04a=C2=A0 DAC: 55555555 > Process test-oom (pid: 635, stack limit =3D 0x25d667df) >=20 >=20 --=20 Sincerely yours, Mike.