Re: [PATCH] mm/page_alloc: fix memory map initialization for descending nodes

From: Mike Rapoport
Date: Fri Jun 25 2021 - 10:16:26 EST


On Thu, Jun 24, 2021 at 01:57:23PM -0700, Andrew Morton wrote:
> On Thu, 24 Jun 2021 09:23:05 +0300 Mike Rapoport <rppt@xxxxxxxxxx> wrote:
>
> > From: Mike Rapoport <rppt@xxxxxxxxxxxxx>
> >
> > On systems with memory nodes sorted in descending order, for instance
> > Dell Precision WorkStation T5500, the struct pages for higher PFNs and
> > respectively lower nodes, could be overwritten by the initialization of
> > struct pages corresponding to the holes in the memory sections.
> >
> > For example for the below memory layout
> >
> > [ 0.245624] Early memory node ranges
> > [ 0.248496] node 1: [mem 0x0000000000001000-0x0000000000090fff]
> > [ 0.251376] node 1: [mem 0x0000000000100000-0x00000000dbdf8fff]
> > [ 0.254256] node 1: [mem 0x0000000100000000-0x0000001423ffffff]
> > [ 0.257144] node 0: [mem 0x0000001424000000-0x0000002023ffffff]
> >
> > the range 0x1424000000 - 0x1428000000 in the beginning of node 0 starts in
> > the middle of a section and will be considered as a hole during the
> > initialization of the last section in node 1.
> >
> > Reorder order of the memory map initialization so that the outer loop will
> > always iterate over populated memory regions in the ascending order and the
> > inner loop will select the zone corresponding to the PFN range.
> >
> > This way initialization of the struct pages for the memory holes will
> > be always done for the ranges that are actually not populated.
>
> Changelog doesn't tell us what are the user-visible effects of the bug.
>
> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=213073
>
> But that does. Panic during boot.

Below is v2 with a sentence about the panic added to the changelog, and the
fix of "is is" typo.

> > Fixes: 0740a50b9baa ("mm/page_alloc.c: refactor initialization of struct page for holes in memory layout")
> > Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx>
>
> So I think we want a cc:stable here?

Right, I've added cc:stable to the patch. Considering how close we are to
the merge window I think this is anyway v5.14 material.