Re: [PATCH v6 6/7] ACPI/NUMA: Add log messages for memory ranges found in CEDT

From: Jonathan Cameron
Date: Tue Apr 30 2024 - 11:37:45 EST


On Tue, 30 Apr 2024 11:21:59 +0200
Robert Richter <rrichter@xxxxxxx> wrote:

> Adding a pr_info() when successfully adding a CFMWS memory range.
>
> Suggested-by: Alison Schofield <alison.schofield@xxxxxxxxx>
> Signed-off-by: Robert Richter <rrichter@xxxxxxx>

Hmm. I'm a bit doubtful this will work for other architectures
as arm64 at least has two sets of memblocks and the holes probably
want to go in memblock.reserved rather than in memblock.memory.
I think we would want to reflect where the extra memblks was added.

However. I'm not 100% sure on what that ends up like as I've not
written an appropriate numa_fill_memblks() yet, so I guess for
now it's fine here, and maybe it will get pushed into the arch
specific code when a second architecture implements numa_fill_memblks()
if some architectures want to return more detailed info.

So, I've argued myself around to
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>

Jonathan

p.s. Unrelated whitespace change but I guess can cope with that...

> ---
> drivers/acpi/numa/srat.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/numa/srat.c b/drivers/acpi/numa/srat.c
> index 76b39a6d3aef..34ecf2dc912f 100644
> --- a/drivers/acpi/numa/srat.c
> +++ b/drivers/acpi/numa/srat.c
> @@ -339,8 +339,12 @@ static int __init acpi_parse_cfmws(union acpi_subtable_headers *header,
> * window.
> */
> modified = numa_fill_memblks(start, end);
> - if (modified != NUMA_NO_MEMBLK)
> + if (modified != NUMA_NO_MEMBLK) {
> + if (modified)
> + pr_info("CEDT: memblk extended [mem %#010Lx-%#010Lx]\n",
> + (unsigned long long) start, (unsigned long long) end - 1);
> return 0;
> + }
>
> /* No SRAT description. Create a new node. */
> node = acpi_map_pxm_to_node(*fake_pxm);
> @@ -355,8 +359,13 @@ static int __init acpi_parse_cfmws(union acpi_subtable_headers *header,
> pr_warn("ACPI NUMA: Failed to add memblk for CFMWS node %d [mem %#llx-%#llx]\n",
> node, start, end);
> }
> +
> node_set(node, numa_nodes_parsed);
>
> + pr_info("CEDT: Node %u PXM %u [mem %#010Lx-%#010Lx]\n",
> + node, *fake_pxm,
> + (unsigned long long) start, (unsigned long long) end - 1);
> +
> /* Set the next available fake_pxm value */
> (*fake_pxm)++;
> return 0;