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:
@@ -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 (N1–N8) summary
|
||||
|
||||
N1–N8 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
|
||||
|
||||
Reference in New Issue
Block a user