Re: [PATCH v3 3/3] acpi,srat: give memory block size advice based on CFMWS alignment

From: Mike Rapoport
Date: Tue Oct 29 2024 - 12:35:28 EST


On Tue, Oct 29, 2024 at 09:20:44AM -0400, Gregory Price wrote:
> On Tue, Oct 29, 2024 at 01:42:12PM +0100, David Hildenbrand wrote:
> >
> > > static int __init acpi_parse_cfmws(union acpi_subtable_headers *header,
> > > void *arg, const unsigned long table_end)
> > > {
> > > @@ -545,6 +569,15 @@ int __init acpi_numa_init(void)
> > > * Initialize a fake_pxm as the first available PXM to emulate.
> > > */
> > > + /* Align memblock size to CFMW regions if possible */
> > > + acpi_table_parse_cedt(ACPI_CEDT_TYPE_CFMWS, acpi_align_cfmws, NULL);
> > > +
> > > + /*
> > > + * Nodes start populating with blocks after this, so probe the max
> > > + * block size to prevent it from changing in the future.
> > > + */
> > > + memory_block_probe_max_size();
> > > +
> >
> > This looks odd. Why shouldn't we allow someone else to suggest/advise an
> > even smaller "max size" ? I'd drop that.
> >
>
> Ah, my reading of the numa_add_memblk path was mistaken. I thought the
> hotplug blocks would start being created immediately after this in the
> acpi_parse_cfmws path - but memblk != memory_block x_x.

Right, we have a bunch of semi related memory blocks :)

There's mm/memblock.c for early memory description and allocation,
mm/numa_memblks.c for to describe what range belongs to which NUMA node and
there are memory blocks in drivers/base/memory.c that describe
hot-(un)plugable memory blocks.

Maybe it's time to rename memblock_* APIs back to bootmem_ :-D

> Will drop along with other recommended updates and submit v4.
>
> ~Gregory

--
Sincerely yours,
Mike.