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

From: Andrew Morton
Date: Thu Jun 24 2021 - 16:57:26 EST


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.

> 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?