... if the goal is to properly report CPU info on high core count machines the major missing bit currently is processor group support ...
Yeah I saw that but I only have 12 cores / 24 threads and 2 nodes on 1 group... I am not even affected. It's just not my focus here. I only care about solving the memory access violation that arises when you run a simple app like a game that tries to grab the first node to spawn concurrent work.
... the numa nodes are actually queried and filled already. And probably GetNumaProcessorNode() / GetNumaHighestNodeNumber() can be easily implemented on top of GetLogicalProcessorInformationEx().
Yes if you look at commit df3dea2cd1dff29eaac8a5ec04176933f079b363 that's how I did it at first, but
1. it's still a lot of logic that you would have to redo every-time you just need an accurate node count, 2. I was asked multiple times to do this in ntdll, 3. it would be very useful to be able to reuse that kind of logic where such MAV can arise (like in `GetNumaProcessorNode`)
so I pushed it deeper into the "kernel".
There is SystemNumaProcessorMap, I think that's a more likely candidate.
I really wasn't sure. I can move it.
Just curious, what use did you find for FILE_NUMA_NODE_INFORMATION? Especially before VirtualAllocExNuma / MapViewOfFileExNuma are properly implemented taking into account the node parameter?
That's a good point. It's because I don't really care about moving the memory between nodes. Not now at least. Maybe one day I'll actually need this ability but for now, I just need a place to put this info for quick access so that I can avoid any memory access violation that can arise when you report only 1 logical node and the app tries to initialize its memory like if it had only 1 node when it has _de-facto_ 2 physical ones. For now I don't need `GetNumaProcessorNode` only `GetNumaHighestNodeNumber`.
I'll take some time to understand the failing tests and address them (if I can), remove the sync commit that comes from gitlab (do it myself) and migrate to `SystemNumaProcessorMap` instead of `SystemNumaProximityNodeInformation`.
In the meantime if you have more feedback, please keep it comming.