Re: [PATCH 2/2 v6] mm/mempolicy: Don't create weight sysfs for memoryless nodes

Honggyu Kim
2025-03-18T11:02:53Z

On 3/18/2025 5:02 PM, Yunjeong Mun wrote:
> Hi Gregory, I have one more question below.
>
> On Tue, 11 Mar 2025 00:42:49 -0400 Gregory Price <gourry@gourry.net> wrote:
>> On Tue, Mar 11, 2025 at 01:02:07PM +0900, Yunjeong Mun wrote:
>>
>> forenote - Hi Andrew, please hold off on the auto-configuration patch
>> for now, the sk group has identified a hotplug issue we need to work out
>> and we'll likely need to merge these two patch set together. I really
>> appreciate your patience with this feature.
>>
>>> Hi Gregory,
>>>
>>> In my understanding, the reason we are seeing 12 NUMA node is because
>>> it loops through node_states[N_POSSIBLE] and its value is 4095 (twelves ones)
>>> in the code [1] below:
>>>
>> ... snip ...
>>
>> Appreciated, so yes this confirms what i thought was going on. There's
>> 4 host bridges, 2 devices on each host bridge, and an extra CFMWS per
>> socket that is intended to interleave across the host bridges.
>>
>
> Thanks for confirm. Honggyu represented it as a tree sturcture:
> rootport/
> ├── socket0
> │   ├── cross-host-bridge0 -> SRAT && CEDT (interleave on) --> NODE 2
> │   │   ├── host-bridge0 -> CEDT
> │   │   │   ├── cxl0 -> CEDT
> │   │   │   └── cxl1-> CEDT
> │   │   └── host-bridge1 -> CEDT
> │   │   ├── cxl2 -> CEDT
> │   │   └── cxl3 -> CEDT
> │   └── dram0 -> SRAT ---------------------------------------> NODE 0
> └── socket1
> ├── cross-host-bridge1 -> SRAT && CEDT (interleave on)---> NODE 3
> │   ├── host-bridge2 -> CEDT
> │   │   ├── cxl4 -> CEDT
> │   │   └── cxl5 -> CEDT
> │   └── host-bridge3 -> CEDT
> │   ├── cxl6 -> CEDT
> │   └── cxl7 -> CEDT
> └── dram1 -> SRAT ---------------------------------------> NODE 1

Some simple corrections here. host-bridge{0-3} above aren't detected from CEDT.
The corrected structure is as follows.

rootport/
├── socket0
│ ├── cross-host-bridge0 -> SRAT && CEDT (interleave on) --> NODE 2
│ │ ├── host-bridge0
│ │ │ ├── cxl0 -> CEDT
│ │ │ └── cxl1-> CEDT
│ │ └── host-bridge1
│ │ ├── cxl2 -> CEDT
│ │ └── cxl3 -> CEDT
│ └── dram0 -> SRAT ---------------------------------------> NODE 0
└── socket1
├── cross-host-bridge1 -> SRAT && CEDT (interleave on)---> NODE 3
│ ├── host-bridge2
│ │ ├── cxl4 -> CEDT
│ │ └── cxl5 -> CEDT
│ └── host-bridge3
│ ├── cxl6 -> CEDT
│ └── cxl7 -> CEDT
└── dram1 -> SRAT ---------------------------------------> NODE 1

Thanks,
Honggyu