Re: [RFC PATCH] resource: Fix CXL node not populated issue
From: Raghavendra K T
Date: Tue Dec 03 2024 - 23:41:55 EST
On 12/4/2024 9:25 AM, Dan Williams wrote:
[ add regressions@xxxxxxxxxxxxxxx ]
Next time make the subject of the patch:
Revert "resource: fix region_intersects() vs add_memory_driver_managed()"
...to make it clear that this is a revert, not a fix.
The revert should be applied if a fix does not materialize in the next few weeks.
Agreed regarding fix.
one thing to note is it is not exact revert.
Raghavendra K T wrote:
Before:
~]$ numastat -m
...
Node 0 Node 1 Total
--------------- --------------- ---------------
MemTotal 128096.18 128838.48 256934.65
After:
$ numastat -m
.....
Node 0 Node 1 Node 2 Total
--------------- --------------- --------------- ---------------
MemTotal 128054.16 128880.51 129024.00 385958.67
Current patch reverts the effect of first commit where the issue is seen.
Might you be able to dig a bit further into the details like memory map
for this platform and ACPI SRAT tables? A dmesg comparison of the good
and bad cases would be useful (those can be shared via a github gist).
Even better would be some debug instrumentation to identify which call
to __region_intersects() started behaving differently resulting in a
whole node disappearing.
In terms of the urgency of fixing this it would also help to know how
prevalent the system this was found on is in the wild.
I have compared dmesg, proc/iomem of both success and fail case.
A. dmesg:
1. Address ranges is different
2. extra message about printing Demotion target
Fallback order for Node 0: 0 1 2
Fallback order for Node 1: 1 0 2
Fallback order for Node 2: 2 0 1
Built 3 zonelists, mobility grouping on. Total pages: 66145521
Policy zone: Normal
....
Demotion targets for Node 0: preferred: 2, fallback: 2
Demotion targets for Node 1: preferred: 2, fallback: 2
Demotion targets for Node 2: null
B. /proc/iomem
$ vimdiff success fail
4050000000-604fffffff : Soft Reserved
| 164 4050000000-604fffffff : Soft Reserved
165 4050000000-604fffffff : CXL Window 0
| 165 4050000000-604fffffff : CXL Window 0
166 4080000000-5fffffffff : dax1.0
|
------------------------------------------------------------------------
167 4080000000-5fffffffff : System RAM (kmem)
|
--------------------------------------------------------------------
I will get more detail from ACPI SRAT table etc..
Thanks and Regards
Raghu