On Mon, Dec 07, 2020 at 09:58:37AM +0100, David Hildenbrand wrote: > On 06.12.20 01:54, akpm@xxxxxxxxxxxxxxxxxxxx wrote: > > > > The patch titled > > Subject: mm: initialize struct pages in reserved regions outside of the zone ranges > > has been added to the -mm tree. Its filename is > > mm-initialize-struct-pages-in-reserved-regions-outside-of-the-zone-ranges.patch > > > > This patch should soon appear at > > https://ozlabs.org/~akpm/mmots/broken-out/mm-initialize-struct-pages-in-reserved-regions-outside-of-the-zone-ranges.patch > > and later at > > https://ozlabs.org/~akpm/mmotm/broken-out/mm-initialize-struct-pages-in-reserved-regions-outside-of-the-zone-ranges.patch > > > > Before you just go and hit "reply", please: > > a) Consider who else should be cc'ed > > b) Prefer to cc a suitable mailing list as well > > c) Ideally: find the original patch on the mailing list and do a > > reply-to-all to that, adding suitable additional cc's > > > > *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** > > > > The -mm tree is included into linux-next and is updated > > there every 3-4 working days > > > > ------------------------------------------------------ > > From: Andrea Arcangeli <aarcange@xxxxxxxxxx> > > Subject: mm: initialize struct pages in reserved regions outside of the zone ranges > > > > Without this change, the pfn 0 isn't in any zone spanned range, and it's > > also not in any memory.memblock range, so the struct page of pfn 0 wasn't > > initialized and the PagePoison remained set when reserve_bootmem_region > > called __SetPageReserved, inducing a silent boot failure with DEBUG_VM > > (and correctly so, because the crash signaled the nodeid/nid of pfn 0 > > would be again wrong). > > > > There's no enforcement that all memblock.reserved ranges must overlap > > memblock.memory ranges, so the memblock.reserved ranges also require an > > explicit initialization and the zones ranges need to be extended to > > include all memblock.reserved ranges with struct pages too or they'll be > > left uninitialized with PagePoison as it happened to pfn 0. > > > > Link: https://lkml.kernel.org/r/20201205013238.21663-2-aarcange@xxxxxxxxxx > > Fixes: 73a6e474cb37 ("mm: memmap_init: iterate over memblock regions rather that check each PFN") > > Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> > > Cc: Mike Rapoport <rppt@xxxxxxxxxxxxx> > > Cc: Baoquan He <bhe@xxxxxxxxxx> > > Cc: David Hildenbrand <david@xxxxxxxxxx> > > Cc: Mel Gorman <mgorman@xxxxxxx> > > Cc: Michal Hocko <mhocko@xxxxxxxxxx> > > Cc: Qian Cai <cai@xxxxxx> > > Cc: Vlastimil Babka <vbabka@xxxxxxx> > > Cc: <stable@xxxxxxxxxxxxxxx> > > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > > [...] > > I've lost track which patches are we considering right now to solve the > overall issue. I'd appreciate a proper patch series with all relevant > patches. I think none of the patches is 100% right. I'll try to send a new version today. > -- > Thanks, > > David / dhildenb > -- Sincerely yours, Mike.