From 46621ece97a5e2237c877ce8f3a8f90cfec806b4 Mon Sep 17 00:00:00 2001 From: vasilito Date: Sat, 25 Jul 2026 08:18:41 +0900 Subject: [PATCH] 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/ 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). --- local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md b/local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md index edabcd62de..11e446e8ff 100644 --- a/local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md +++ b/local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md @@ -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)