-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Region created on socket #0 reports numa_node #1 #235
Comments
numa_node of created block device doesn't match the socket ID reported by ipmctl:
|
More detail:
SocketID should be equal to NUMA node ID of region, uniquely identified by ISetID.
region0 iset_id (334147221714768144 == 0x4A32120B4FE1110) matches with ipmctl region on socket 0 This doesn't correlate as namespaces on region0 are reportedly on numa_node 1:
|
|
This sounds like it might be the same as issue intel/ipmctl#156 which is closed as a defect in ndctl. What version of ndctl are you using? Please verify that the issue has been fixed in that version. If you are using a version of ndctl that has the issue fixed. |
Thanks for the reply @StevenPontsler , I don't think it's intel/ipmctl#156 as I've been following that ticket and worked on related issues with @sscargal and @nolanhergert. BIOS info below:
|
One interesting thing, if I create just one region with ipmctl, the SocketID reported by ipmctl matches ndctl region numa_node:
and when I create a second region on --socket 1, the numa_node Field switches as mentioned previously. |
Tested on Alma Linux 8.7 and the same issue:
|
A couple things:
The ndctl tool is only reporting the result of the kernel translation of ACPI proximity domain and that logic is the following in the ACPI NFIT driver: ...so ultimately it is up to whatever values your BIOS is putting in the ACPI NFIT table. |
Thanks a lot for the response, it was the incorrect documentation in ipmctl that was throwing me off then and therefore looks like this ticket is a duplicate of intel/ipmctl#89 . So from an application perspective (DAOS) that is attempting to automate creation of PMem namespaces on a specific NUMA node, how should I correlate the SocketID in ipmctl to a NUMA node ID? |
So given ipmctl doesn't directly show the NUMA node ID mapped to the socket ID, should the application derive this from the proximity domain itself? The lstopo output looks reasonable/unsurprising (attached). |
If the goal is to be able to map the closest collection of CPUs to the given memory-only-numa node then that data comes from the ACPI SLIT table. The kernel is reporting that the closest distance between one of the CPU proximity domains to the PMEM proximity domain '2' is proximity domain '0'. Note that the kernel will also report '0' if the SLIT says that CPU node '1' is of equal distance to '2'. So you would need to dump the SLIT to debug further why it says that '0' is closest initiator. |
Thanks for that info, not that I was expecting it to change but for other reasons I updated to ndctl v76.1 on leap15.4 and the issue remains. I will try to find time to dig into the ACPI SLIT table as per https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html#system-locality-information-table-slit . I was previously looking into the SRAT table. |
SRAT lists the proximity domains of CPUs and address ranges, and then SLIT tells you the relative "distance" between those domains. Typically socket local DDR and CPUs share the same proximity domain, but any other memory type will have its own proximity domain. Then it is up to SLIT to say how far away that memory-only proximity domain is away from a given CPU proximity domain. |
This seems to have been identified as a platform bug, from Kevan Rehm @ HPE:
|
@djbw thanks a lot for your help, I think we can close this as it seems to be an isolated incident and fix and workaround have been identified. |
After creating PMem regions with
ipmctl
, the regionnuma_node
reported byndctl
doesn't match the socket ID reported byipmctl
(ISetID for ipmctl with RegionID 0x0001, SocketID 0x0000 matches ndctl with dev region0, numa_node 1).I am confused as to why the numa_node doesn't match the socket ID, can someone help me understand please?
OS: Rocky Linux 8.6
Kernel: $ uname -a
Linux 4.18.0-372.32.1.el8_6.x86_64 #1 SMP Thu Oct 27 15:18:36 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Optane + IceLake platform
cpu family : 6
model : 106
model name : Intel(R) Xeon(R) Gold 5320 CPU @ 2.20GHz
stepping : 6
microcode : 0xd000389
The text was updated successfully, but these errors were encountered: