Record: MI25 driver interface study — 2026-08-23
Outcome
Studied the Linux driver that controls the MI25 on beast.lan and produced a rough draft mapping its exposed kernel interfaces.
Key facts established and verified on beast.lan:
- The running driver is out-of-tree amdgpu-dkms 6.19.14, not the in-tree 6.8 driver; source at /usr/src/amdgpu-6.19.14-2377056.24.04/.
- The local mainline 7.2/7.3 tree matches the DKMS source for the hwmon and fan-control code; drift is limited to line offsets.
- The driver names the sensors edge, junction, mem; the old README’s “hotspot”/“VRM” naming is corrected.
- pwm1 writes require pwm1_enable=1 first (driver rejects manual writes otherwise).
- fan1_input/fan1_target return garbage (2^27); RPM control is unusable on this card; PWM is the only trustworthy control.
- amdgpu exposes no /proc/driver/amdgpu; debugfs exists but requires root.
- debugfs is not a stable ABI (Documentation/filesystems/debugfs.rst) and may be absent, unmounted, or lockdown-restricted on other hosts; the service must treat it as optional diagnostics only.
- The in-tree driver reports no module version (empty /sys/module/amdgpu/version on athena); the DKMS driver reports 6.19.14.31400100; the service must handle both.
Decisions
- The local ~/sources/linux tree is the primary reference, cross-checked against the DKMS source on beast.lan.
- The episode documents the driver; it does not change the running service.
- The fan-control path trace is included in the document.
Verification
- Live hwmon, device sysfs, and debugfs values read on beast.lan and dated in the document: verified 2026-08-23.
- Driver sources cited from the local tree and the DKMS tree.
- make test passes.
Commits
- (pending; episode not yet committed)