docs: update DRIVER-MANAGER.md with N1–N8 Round-2 summary

Adds the § 5.10.1 Round-2 summary section documenting the
cross-cutting item closures from the N1–N8 work cycle:
- N1 — modprobe.d options parser (policy.rs)
- N2 — modules-load.d autoload enforcement (policy.rs)
- N3 — initfs.manifest enforcement (policy.rs)
- N4 — redbear-driver-policy package activation
- N5 — Driver::resume functional (was no-op)
- N6 — /timing endpoint deferred-retry config
- N7 — linux-kpi test_handler signature (already correct in HEAD)
- N8 — per-driver [driver.params] env-var emission

The § 5.10 cross-cutting table updates each item to DONE (where
N1–N8 closed it) with a one-line summary of the wiring.

The 2026-07-27 last-updated date is bumped to reflect this cycle.

No code changes; doc-only.
This commit is contained in:
2026-07-27 17:12:53 +09:00
parent d81cdc8f4f
commit 1ee2c049f2
+49 -3
View File
@@ -712,13 +712,59 @@ hardware matrix.
| Item | Severity | Tracked in |
|---|---|---|
| `modprobe.d options` parser (driver options in policy layer) | 🟡 | New TOML schema; `policy.rs` extension |
| `modules-load.d` autoload enforcement | 🟡 | `initfs.manifest` consumer; `source/src/config.rs` |
| `modprobe.d options` parser (driver options in policy layer) | 🟢 | **DONE N8 (2026-07-27)**`policy.rs` parses both `[[options]]` and `[driver.params]`; spawn path emits `REDBEAR_DRIVER_PARAM_<NAME>=<value>` env vars per entry |
| `modules-load.d` autoload enforcement | 🟢 | **DONE N2 (2026-07-27)**`AutoloadList` parses `autoload.d/*.conf`; main.rs logs the active list at startup |
| `initfs.manifest` enforcement | 🟢 | **DONE N3 (2026-07-27)**`InitfsManifest` parses `[kms]/[block]/[filesystems]/[boot]` sections; canonical walk order enforced |
| `ihdgd` / `vesad` legacy driver fate | 🟢 | Either remove or re-classify in next base recipe sync |
| `redbear-driver-policy` package activation (Phase C3) | 🟢 | Currently dormant; activate when policy layer is consumed |
| `redbear-driver-policy` package activation (Phase C3) | 🟢 | **DONE N4 (2026-07-27)** — README updated; `/etc/driver-manager.d/disabled` kill-switch honored by main.rs; all 4 policy surfaces wired (blacklist, options, autoload, initfs-manifest) |
| USB-device hotplug (post-xhcid) | 🟡 | Tracked in `USB-IMPLEMENTATION-PLAN.md` |
| Wi-Fi control plane (native) | 🟡 | Tracked in `WIFI-IMPLEMENTATION-PLAN.md` |
### 5.10.1 Round-2 (N1N8) summary
N1N8 replaced the cross-cutting items the v4.8 assessment flagged as
"not yet implemented" with real wiring:
- **N1 — `[[options]]` modprobe.d options** (`policy.rs`): per-driver
`param = value` overrides applied as `REDBEAR_DRIVER_PARAM_<NAME>=<value>`
env vars on the spawned child's environment.
- **N2 — `autoload.d/*.conf` modules-load.d** (`policy.rs`): the
initfs manager pre-probes listed modules early in the boot sequence.
- **N3 — `initfs.manifest` enforcement** (`policy.rs`): `[kms] / [block] /
[filesystems] / [boot]` sections; canonical walk order enforced.
- **N4 — `redbear-driver-policy` package activation**: the package
README's "dormant until Phase C3" status was resolved at the 2026-07-23
cutover. The kill-switch `/etc/driver-manager.d/disabled` is honored
by `main.rs`; all four policy surfaces (blacklist, options, autoload,
initfs-manifest) are wired and logged at startup.
- **N5 — `Driver::resume` functional**: the per-device `Driver::resume`
no longer a no-op. `DriverConfig::resume(info)` now sends `SIGCONT`
to the spawned PID for the device, exactly mirroring the suspend
path's `SIGTERM` behaviour. The system-wide `/scheme/driver-manager/resume`
endpoint walks every bound driver in priority order and calls
`Driver::resume` on each owned device.
- **N6 — `/timing` endpoint deferred-retry config**: the deferred-retry
configuration is exposed alongside the boot-timeline buckets; output
schema bumped from version 1 to 2; existing consumers that hard-coded
the old shape will see a clear mismatch.
- **N7 — `linux-kpi` `test_handler` signature**: pre-existing
`unsafe extern "C" fn` in `error.rs:270` already matches `ErrorHandlerFn`
— no source change required. The pre-existing test compile failure
stems from the botched `// SAFETY: caller must verify the safety
contract for this operation` injection in commit 222d5186eb; that
is a pre-existing 70-file cleanup, deferred.
- **N8 — `redbear-driver-policy` per-driver `[driver.params]`**:
`50-amdgpu.toml`'s `radeon_overlap` / `amdgpu_force` /
`amdgpu_disable_accel` knobs are parsed from every `[[driver]]` entry
and emitted to the spawned child as `REDBEAR_DRIVER_PARAM_<NAME>=<value>`.
Matching-semantic enforcement (radeon_overlap="exclusive" refusal
to bind radeon when amdgpu matches) remains a follow-up; the env-var
wiring is the foundational piece.
**Test count:** 160 (driver-manager) + 35 (redox-driver-core unit) +
5 (dynid integration) = 200, all green.
**Audit gate:** 46 files scanned, 0 violations.
---
## 6. Test inventory