fix: parse Inspur PCIe CPU affinity

This commit is contained in:
Mikhail Chusavitin
2026-09-14 10:48:47 +03:00
parent 9ac38c2914
commit 8794e0adec
6 changed files with 140 additions and 54 deletions
+25
View File
@@ -2020,3 +2020,28 @@ couple a standard inventory document to one viewer.
`reanimator.json`.
- Fan RPM animation, PSU live load, and other Bee live-only presentation are
intentionally out of scope.
---
## ADL-069 — Inspur physical CPU locator as PCIe affinity
**Date:** 2026-09-14
**Context:** Some Inspur/Kaytus `onekeylog` archives do not contain host sysfs
NUMA data, but their RESTful PCIe inventory identifies the physical processor
in `location` or `DeviceLocator` values such as `#CPU0_PE2_P7_R5_SL0`.
**Decision:** Parse the bounded `CPU<n>` token from those locator fields into
the nullable `numa_node`/CPU-affinity field for PCIe devices and network
adapters. Combined `component.log` is also a valid PCIe inventory source when
`devicefrusdr.log` is absent. RESTful PCIe entries use their domain-qualified
BDF as canonical `slot`, retaining the physical locator as description, so
card/function records merge with the NIC inventory. Locator values without an
isolated `CPU<n>` token remain unknown (`nil`); no affinity is inferred from
BDF numbering.
**Consequences:**
- Inspur physical PCIe-to-socket wiring can drive the standalone topology even
for BMC-only dumps.
- `CPU0` remains distinct from missing affinity.
- On systems with Sub-NUMA Clustering, the value represents physical CPU
affinity rather than an operating-system NUMA-domain ID.