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.