Re: [PATCH v3 1/1] mm: numa_memblks: Identify the accurate NUMA ID of CFMW

From: dan.j.williams

Date: Wed Feb 11 2026 - 19:40:19 EST


Cui Chao wrote:
> In some physical memory layout designs, the address space of CFMW (CXL
> Fixed Memory Window) resides between multiple segments of system memory
> belonging to the same NUMA node. In numa_cleanup_meminfo, these multiple
> segments of system memory are merged into a larger numa_memblk. When
> identifying which NUMA node the CFMW belongs to, it may be incorrectly
> assigned to the NUMA node of the merged system memory.
>
> When a CXL RAM region is created in userspace, the memory capacity of
> the newly created region is not added to the CFMW-dedicated NUMA node.
> Instead, it is accumulated into an existing NUMA node (e.g., NUMA0
> containing RAM). This makes it impossible to clearly distinguish
> between the two types of memory, which may affect memory-tiering
> applications.
>
> Example memory layout:
>
> Physical address space:
> 0x00000000 - 0x1FFFFFFF System RAM (node0)
> 0x20000000 - 0x2FFFFFFF CXL CFMW (node2)
> 0x40000000 - 0x5FFFFFFF System RAM (node0)
> 0x60000000 - 0x7FFFFFFF System RAM (node1)
>
> After numa_cleanup_meminfo, the two node0 segments are merged into one:
> 0x00000000 - 0x5FFFFFFF System RAM (node0) // CFMW is inside the range
> 0x60000000 - 0x7FFFFFFF System RAM (node1)
>
> So the CFMW (0x20000000-0x2FFFFFFF) will be incorrectly assigned to node0.
>
> To address this scenario, accurately identifying the correct NUMA node
> can be achieved by checking whether the region belongs to both
> numa_meminfo and numa_reserved_meminfo.

Looks good, thanks for the clear statement on why this matters. Going
forward, conciseness is valued. So here is a potential condensed
statement of impact:

---
While this issue is only observed in a QEMU configuration, and no known
end users are impacted by this problem, it is likely that some firmware
implementation is leaving memory map holes in a CXL Fixed Memory Window.
CXL hotplug depends on mapping free window capacity, and it seems to be
only a coincidence to have not hit this problem yet.
---

With that and adding:

Cc: <stable@xxxxxxxxxxxxxxx>

You can add:

Reviewed-by: Dan Williams <dan.j.williams@xxxxxxxxx>