docs: bump driver-manager plan to v4.4; capture boot-log fixes + iommu scheme query

Updates the canonical planning authority for the driver-manager migration
to v4.4, which closes the remaining boot-log noise items
identified during a real QEMU boot:

- initfs sidecar-IPC ENODEV warning: detect initfs mode and skip
  UnixStream::pair() (the initfs kernel namespace does not support
  AF_UNIX socketpair and the initfs driver-manager is transient).
- initfs /tmp timeline-log failure: skip reset_timeline_log and
  log_timeline in initfs mode (/tmp is not writable there and the
  timeline log is for post-boot debugging).
- redbear-upower phantom-shutdown: spawn_signal_handler took
  _shutdown_tx by value and dropped it on return, closing the watch
  channel and surfacing as a spurious 'signal handler exited
  unexpectedly' / 'shutdown signal received' log pair per daemon
  lifetime. Fix: pass shutdown_tx.clone() to the handler and keep
  the original alive for run_daemon's lifetime.
- iommu_group_for fake-hash bug: the function checked if the iommu
  scheme was present but always returned a deterministic BDF hash
  as the 'group' (looked like a real number to drivers). Now sends
  a 32-byte QUERY RPC to /scheme/iommu/device/<bdf> and parses the
  36-byte response to return the actual assigned domain id. Real
  protocol constants are mirrored from the iommu crate; bump if
  iommu protocol version changes.
- redbear-hwutils host build: 10+ pre-existing 'never used'
  warnings from the runtime-check infrastructure (only exercised
  on the Redox target). Add
  #![cfg_attr(not(target_os = "redox"), allow(dead_code))]
  at the top of each affected bin so the allow applies only when
  the checks genuinely cannot run.

Status table: v4.4 closes the last boot-noise issues from the v4.3
status. Remaining open items are unchanged: hardware validation
matrix (D5), two-week soak + three bare-metal reboots (C4),
Driver-level Driver::on_error adoption by shipped drivers
(infrastructure ready, no daemon opts in yet).

Last reviewed line updated to 2026-07-24 (v4.4).
This commit is contained in:
2026-07-25 08:18:41 +09:00
parent dbd0210b03
commit 46621ece97
+2 -2
View File
@@ -1,8 +1,8 @@
# Red Bear OS — `pci-spawner` → `driver-manager` Migration Plan
**Document status:** v4.3 canonical planning authority (supersedes v4.2: v4.3 closes the `Driver-level Driver::on_error IPC` item via a layered approach — in-process `DriverConfig::on_error` for manager-side override, sidecar unix socketpair for spawned-daemon opt-in, linux-kpi C-callable `pci_register_error_handler` for driver-side participation. v4.2 in turn superseded v4.1: v4.2 closes the `acpid pci_fd` item and adds per-vendor firmware recipes. v4.1 in turn superseded v4.0: v4.1 closes the three P3 items the v4.0 header declared open — AER auto-dispatch, QuirkPhase::Early gating, per-vendor firmware assessment — and adds a driver-by-driver audit + adjacent-technology compatibility matrix. v4.0 in turn superseded v3.2: P2-1 done, P3 hygiene largely complete, pcid-spawner fully retired, quirks universal model, build-system staleness fix, QEMU gate passed, AER/pciehp producers live, udev-shim driver-binding view wired, concurrent double enumeration eliminated, PciErsResult 6-state enum added.)
**Document status:** v4.4 canonical planning authority (supersedes v4.3: v4.4 closes the remaining boot-log noise — initfs sidecar-IPC ENODEV warning, initfs /tmp timeline-log failure, redbear-upower phantom-shutdown log spam — and replaces the fake BDF hash in `iommu_group_env_value` with a real bincode RPC query to the iommu daemon. v4.3 in turn superseded v4.2: v4.3 closes the `Driver-level Driver::on_error IPC` item via a layered approach — in-process `DriverConfig::on_error` for manager-side override, sidecar unix socketpair for spawned-daemon opt-in, linux-kpi C-callable `pci_register_error_handler` for driver-side participation. v4.2 in turn superseded v4.1: v4.2 closes the `acpid pci_fd` item and adds per-vendor firmware recipes. v4.1 in turn superseded v4.0: v4.1 closes the three P3 items the v4.0 header declared open — AER auto-dispatch, QuirkPhase::Early gating, per-vendor firmware assessment — and adds a driver-by-driver audit + adjacent-technology compatibility matrix. v4.0 in turn superseded v3.2: P2-1 done, P3 hygiene largely complete, pcid-spawner fully retired, quirks universal model, build-system staleness fix, QEMU gate passed, AER/pciehp producers live, udev-shim driver-binding view wired, concurrent double enumeration eliminated, PciErsResult 6-state enum added.)
**Generated:** 2026-07-20
**Last reviewed:** 2026-07-24 (v4.3: Driver::on_error IPC layer)
**Last reviewed:** 2026-07-24 (v4.4: boot-log fixes + iommu real scheme query + sidecar IPC end-to-end + hwutils dead-code)
**Toolchain:** Rust nightly-2026-05-24 (edition 2024)
**Architecture:** Microkernel OS in Rust (Redox fork)
**Cross-reference baseline:** Linux kernel 7.1 at commit `ab9de95c9` (`local/reference/linux-7.1/`), CachyOS (`local/reference/cachyos/` — linux-cachyos `0001-cachyos-base-all.patch` 6.17.9 + desktop ISO 260628)