A much cleaner result (written by hand) that we can reuse where needed later (_i.e._ `GetNumaProcessorNode` which also crashes with [a similar MAV](https://gist.github.com/wasertech/f894ce8d6250e72a01a861c0e4eb6064) on multi-node systems).
Took me a while to understand where I should put everything, not even sure I got it right. Let me know.
I thought I was going to need `FileNumaNodeInformation` but turns out it's not really needed. I can remove it if you want.
This is what I see when I try to get a node count read:
```log
0024:fixme:ntdll:init_numa_info node affinity; using node 0.
GetNumaHighestNodeNumber: 1
```
I only see this fixme if I try to access `FILE_NUMA_NODE_INFORMATION`. I would really prefer such a behavior for our compatibility layer on any multi-node system.
A big thanks to @besentv and @zfigura for their invaluable feedback on this.
--
v4: ntdll: only show fixme about affinity on multi-node systems
https://gitlab.winehq.org/wine/wine/-/merge_requests/8995
A much cleaner result (written by hand) that we can reuse where needed later (_i.e._ `GetNumaProcessorNode` which also crashes with [a similar MAV](https://gist.github.com/wasertech/f894ce8d6250e72a01a861c0e4eb6064) on multi-node systems).
Took me a while to understand where I should put everything, not even sure I got it right. Let me know.
I thought I was going to need `FileNumaNodeInformation` but turns out it's not really needed. I can remove it if you want.
This is what I see when I try to get a node count read:
```log
0024:fixme:ntdll:init_numa_info node affinity; using node 0.
GetNumaHighestNodeNumber: 1
```
I only see this fixme if I try to access `FILE_NUMA_NODE_INFORMATION`. I would really prefer such a behavior for our compatibility layer on any multi-node system.
A big thanks to @besentv and @zfigura for their invaluable feedback on this.
--
v3: kernelbase: update GetNumaHighestNodeNumber to use SystemNumaProcessorMap
ntdll: switch case from SystemNumaProximityNodeInformation to SystemNumaProcessorMap and fixed overwritten return values
ntdll: add fix me for node affinity
kernelbase: refactor GetNumaHighestNodeNumber to use SystemNumaProximityNodeInformation
ntdll: initialize information file management for NUMA nodes
kernelbase: implement test for `GetNumaHighestNodeNumber`
kernelbase: implement `GetNumaHighestNodeNumber` to report accurate node count
https://gitlab.winehq.org/wine/wine/-/merge_requests/8995
--
v2: iphlpapi: Try to disambiguate addresses in GetBestRoute2() by probing system assigned ones.
iphlpapi/tests: Add tests for best routes.
iphlpapi: Reimplement GetBestInterfaceEx() on top of GetBestRoute2().
iphlpapi: Implement GetBestRoute2().
https://gitlab.winehq.org/wine/wine/-/merge_requests/8991
I'm afraid the macOS workarounds are still needed for 10.15 Catalina and earlier (Wine still officially supports 10.12 and later, and CrossOver supports Catalina). I think it can be slightly simplified though, in my tests the "fallback 2" case is never needed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8983#note_116304
A much cleaner result (written by hand) that we can reuse where needed later (_i.e._ `GetNumaProcessorNode` which also crashes with [a similar MAV](https://gist.github.com/wasertech/f894ce8d6250e72a01a861c0e4eb6064) on multi-node systems).
Took me a while to understand where I should put everything, not even sure I got it right. Let me know.
I thought I was going to need `FileNumaNodeInformation` but turns out it's not really needed. I can remove it if you want.
This is what I see when I try to get a node count read:
```log
0024:fixme:ntdll:init_numa_info node affinity; using node 0.
GetNumaHighestNodeNumber: 1
```
I only see this fixme if I try to access `FILE_NUMA_NODE_INFORMATION`. I would really prefer such a behavior for our compatibility layer on any multi-node system.
A big thanks to @besentv and @zfigura for their invaluable feedback on this.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8995