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

From: Honggyu Kim
Date: Tue Mar 18 2025 - 07:05:53 EST




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@xxxxxxxxxx> 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