docs(iommu): record the executed flip to iommu=pt and its measured cost of nothing

Window 01:24-01:35. Byte-identical A/B (rebuild proved it: same 1,287,656 B corpus,
same billed token counts 59,024 / 21,568): cold prefill 1,585.1 -> 1,616.0 t/s
(+2.0 %), warm 208,531 -> 214,131, needle hit/hit both boots. The 13-16 % that
justified amd_iommu=off since 2026-09-11 does not exist on this host; the decode
delta (-9.7 %) is instrument noise -- three repeats of one request on the same boot
gave 31.8/46.9/47.8 t/s.

NPU precondition restored: amdxdna bound 0000:c6:00.1 (driver 0.7.0, firmware
amdnpu/17f0_11/npu_7.sbin), group 26 identity, PASID width 10, /dev/accel/accel0
root:render with dank in render. No endpoint deployed, so frank-npu stays retired
-- only its rationale changes. Gates: 0 failed units, 32 groups (31 identity + the
SD reader's DMA quirk), iGPU c5:00.0 identity with ATS, dragoon ledger unchanged
(74.1 GiB, no clamp, listening at 39.8 s).

Deferred on purpose: the pp_dpm_fclk pin (changes iGPU timing for everyone, nothing
co-runs yet) and PerfOpt (7.0.0-38 has zero perfopt symbols, 26.04 caps at 7.0.0-38.38).
Re-keyed: decision record banner/front matter/verification/revert + new execution
section, frank-npu rationale, AGENTS key lesson, both index pages.
This commit is contained in:
Frank
2026-10-18 01:34:17 -07:00
parent 5ad28c19d8
commit 34a30d8505
6 changed files with 160 additions and 48 deletions
+11 -11
View File
@@ -1107,17 +1107,17 @@ linked runbooks.
times (`RuntimeError: No HIP GPUs are available`).
- SearXNG outbound traffic must stay on the Gluetun tunnel; do not move its
ports off the gluetun service.
- `amd_iommu=off` on Dankclaw (adopted 2026-09-11 on the vendor's 13–16 %
prefill figure, never measured here) retires the XDNA2 NPU: the driver's
SVA/PASID bind needs an enabled IOMMU (`/dev/accel/accel0` fails `err=-19`).
That trade is on an expiring path: **AMD PerfOpt** (iommu tree 2026-09-24,
Linux 7.4) makes the IOMMU skip GPA→SPA translation for the *privileged iGPU*
while staying fully armed for every other device — and it arms only when the
iGPU is already in the identity domain, so the next boot-line window is
`iommu=pt` with the NPU usable, not `off`. PerfOpt buys 2–4 % back on a Strix
Halo desktop (18–23 % on Strix Point laptops); it is not installable here
yet (Ubuntu 26.04 caps at `7.0.0-38`). Research in
`serverAppConfigs-docs/LLM/dankclaw-iommu-translation-off.md`.
- Dankclaw boots **`iommu=pt`** since 2026-10-18. The boot line is tracked in
`dankclaw/host/grub` and moves ONLY through `scripts/set-dankclaw-bootline.sh`
(diff, install, `update-grub`, verify `grub.cfg`, `--reboot`) — never by
hand-editing `/etc/default/grub`. It replaced `amd_iommu=off` (2026-09-11),
adopted on the vendor's 13–16 % prefill figure and never measured here: the
local A/B on byte-identical traffic says identity mode costs **nothing**
(+2.0 %, 1,616 t/s cold prefill), so the XDNA2 NPU returned for free —
`amdxdna` binds `c6:00.1` (PASID width 10, identity group 26) and the old
`err=-19` only ever asked for an enabled IOMMU. **AMD PerfOpt** (iommu tree
2026-09-24, Linux 7.4) still skips the page walk outright for the privileged
iGPU, but it arms only in the identity domain and 26.04 caps at `7.0.0-38`.
- Rootless Quadlet containers run with `--replace --rm`: `podman logs` covers
only the CURRENT instance; history across recreations lives in
`journalctl --user -u <name>.service`. Read rootless storage WITHOUT sudo