summaryrefslogtreecommitdiffstats
path: root/STATE-CURRENT.md
Commit message (Collapse)AuthorAge
* docs: engineering-operations playbook and project-wide status accuracy passArthur Hanson Rasmusson12 days
| | | | | | | | | | | | | | | | | | | | | | | | - docs/eng-ops.md gains Part II, live physical-backend engineering operations: hard rules, the full module-parameter matrix, the routine supervised cycle and clean-release checklist, the debugfs inventory, how to read gsp-phys-state, a debugging scenario catalogue (CTXNOTVALID/promote wedge, fail-safe WPR2, unload hangs, guest wedges, MMU/PTE and PBDMA faults, relay symptoms), a hazard register (crash causes and debugging side effects), the physical-backend OODA loop, and the work-context map with porting flows - architecture, implementation, operations, orientation, getting-started, portability, ecosystem and reference docs corrected to the current state: CUDA driver-API smoke green, CE-class work forwarding and engine-authored releases plus fault relay in place (default off), GR execution blocked on engine-context validity, the promote wedge and designed locked fail-safe, and P5 wave-2 subsumed - internal-reference cleanup in tracked docs (no analysis-source or local-archive references); historical architecture document bannered - README reading list and STATE-CURRENT frontier refreshed; new pages (runbook, green-eye user guide, porting sequence, porting/packaging notes) linked from the tree Link check: scripts/check-docs-links.py passes (56 files, no broken links).
* STATE-CURRENT: 10:55 check-back - H1 promote-ctx wedge, designed locked ↵Arthur Hanson Rasmusson12 days
| | | | fail-safe hold, green-eye wave 2
* STATE-CURRENT: 09:25 check-back - P6c relay (C0/C1/C3), H1 host GR ladder ↵Arthur Hanson Rasmusson12 days
| | | | wall, green-eye tooling
* gsp-phys: P6b waves 1.5 and 2 - deferred release and hardware-authored guest ↵Arthur Hanson Rasmusson12 days
| | | | | | | | | | | | | | | | | | | | | | | | copies - new default-off gsp_phys_work_defer_release: a forwarded guest push's releases are recorded and its GPFIFO entry is held (no consume, no GP_GET write, no counter publish/stall) until the work item publishes completion; the service thread then delivers the releases, with a fallback on failure/timeout (500 ms cap enforced every pump pass)/ pause/quiesce/channel-delete - new default-off gsp_phys_work_hw_primary: the software copy is skipped for forwarded ops, so the physical engine authors the data; a once-only software copy runs before the releases on any hardware failure or when the request cannot be queued - release-apply helpers extracted; exactly-once latches; channel-delete and teardown handling; counters and a work_guard state line - live: deferred-release run engaged=75 applied=75 timeouts=0 with the full smoke green; hardware-primary run req=100 ok=100 verify_ok=100 fallback=0 copy_skipped=119 copy_fail=0, smoke ALL OK 64/64 (guest read data the engine authored), with 19 fail-closed inline software fallbacks under single-inflight contention; a range-unregistered run proved the fallback (121 skipped copies, all recovered, smoke green) - defaults off; the software path and all existing guards unchanged
* gsp-phys: P6b wave 1 - shadow-forward guest CE copies to the physical engineArthur Hanson Rasmusson12 days
| | | | | | | | | | | | | | | | | | | - the sema service captures the first eligible copy per push from the software resolver's own operands (the real push shape mixes guest RAM with emulated-VRAM shadow addresses, including physical destinations) - HPA resolution: guest RAM through the shared guest-RAM file page cache, emulated VRAM through the mapping of its kernel shadow - new scratch page-table pool: 16 zeroed page-table pages with their page-directory entries built before any engine access, handing out one whole 128-byte GMMU PTE fetch line per copy pair (16 PTEs, 512 pairs per boot, never reused; a PTE written into an already-fetched line is not observed and there is no invalidate path) - the backend submits the copy on the module-owned channel and verifies the result host-side; every miss falls back to the ladder shadow copy, and the software pump remains authoritative - live (full smoke, both parameters on): req=42 ok=42 verify_ok=42 verify_fail=0 fallback=0, guest payload roundtrip ALL OK 64/64, clean latched release; defaults stay off
* gsp-phys: P6a - real copy engine reads/writes guest RAM pagesArthur Hanson Rasmusson12 days
| | | | | | | | | | | | | | | | | | | - file-backed guest RAM (launcher memory-backend-file share=on) and in-kernel GPA->HPA translation through the shared file page cache (read_cache_page + page_to_phys + pfn_valid), opened O_LARGEFILE; new default-off gsp_phys_guest_mem parameter - debugfs gsp-phys-guest-ram (path + gpa/off/size ranges) and gsp-phys-guest-gpa (one pinned GPA per boot); rm-call triggers 6/7 run host->guest and guest->host 4 KiB CE copies; trigger 8 is a PTE self-test through a fresh slot - guest page-table slots are pre-built during ladder stage 3: runtime PTE writes into an already-walked page-table line are not observed without a TLB invalidate - guest RAM layout (q35 4.2, 4 GiB): below-4G GPA == file offset, above-4G offset = GPA - 0x80000000 (2 GiB PCI hole) - tests: tools/test/gpage_test.c guest probe; docs + STATE-CURRENT record the live green (G2H/W2G with semaphore release, guest observed the write, smoke ALL OK 64/64, clean latched release)
* STATE-CURRENT + docs: record P2 identity overlay, P3 control forwarding and ↵Arthur Hanson Rasmusson12 days
| | | | P5 wave-1 shadow execution
* STATE-CURRENT + docs: record the freeze fix and the P2/P3 guest-wiring landingsArthur Hanson Rasmusson12 days
| | | | | | | | - STATE-CURRENT snapshot moves to the P3 frontier: the host-freeze latch and readiness gates are validated, the static identity overlay and the read-only control forwarding are landed and live-verified - the physical-backend guest-wiring design is now marked P0-P3 implemented with the P2/P3 acceptance results
* STATE-CURRENT: 01:25 check-back - G0 freeze fix validated 2/2; P2 guest ↵Arthur Hanson Rasmusson12 days
| | | | identity overlay live (GREEN); LIVE=0 control did not pass
* docs: gate post-1.0 host acceleration as do-not-implementArthur Hanson Rasmusson12 days
| | | | | | | | | | Clarify in the post-1.0 record and the public status page that host-native acceleration / host display is a stretch goal we are only considering: do not block on it, pursue it, or design around it. It is never reached automatically, requires an explicit human decision after all baseline goals are complete (and only once there is no known risk), and may be scrapped on architectural grounds. No aspect of the baseline software may be designed toward it. No baseline design or code changes.
* STATE-CURRENT: 23:12 check-back - guest-wiring P1 lifecycle landed and ↵Arthur Hanson Rasmusson12 days
| | | | exercised (fail-open); async boot FWSEC failure and a release-path freeze recurrence noted
* docs: record host VF acceleration as a deferred future goalArthur Hanson Rasmusson12 days
|
* STATE-CURRENT: 22:12 check-back - guest-wiring rung opened (inert session ↵Arthur Hanson Rasmusson12 days
| | | | API skeleton); PLAN A baseline re-verified 64/64
* STATE-CURRENT + docs: first real copy executed by the physical CE; add the ↵Arthur Hanson Rasmusson12 days
| | | | | | | | | | | | | | physical-backend guest-wiring design - STATE-CURRENT snapshot 2026-10-01 21:05: the host RM-client ladder now allocates VAS+PDB+TSG+channel and executes a real 4 KiB VA-mode CE copy (semaphore released, dst==src) on the physical engine; next is wiring the live session into the guest-facing mdev/vfio path. - docs/03-architecture/11-physical-backend-guest-wiring.md: phased design (P0-P6) for bridging the physical backend into the guest-facing emulation, with the seam table, lifecycle changes and static-config flow. - docs/README.md: reading order updated for the new document; execution status refreshed.
* STATE-CURRENT: 20:12 check-back - first real GPFIFO work submitted to the ↵Arthur Hanson Rasmusson12 days
| | | | physical engine; channel now allocates; engine did not execute the block
* STATE-CURRENT: 19:12 check-back - host RM client allocates a VAS on the live ↵Arthur Hanson Rasmusson12 days
| | | | GSP-RM; wall moved to the address-space page-directory setup; clean release
* STATE-CURRENT: 18:47 check-back - first RM objects on the live GSP-RM; ↵Arthur Hanson Rasmusson12 days
| | | | channel allocation blocked; unsafe variant removed after fail-safe reboot
* STATE-CURRENT: 16:47 check-back - ladder row updated for the GSP-RM init ↵Arthur Hanson Rasmusson13 days
| | | | milestone (log-ring and identity fixes)
* STATE-CURRENT: physical GSP-RM completes initialization and serves the ↵Arthur Hanson Rasmusson13 days
| | | | static-config RPC
* STATE-CURRENT: 15:47 check-back - source campaign closes host-side inputs; ↵Arthur Hanson Rasmusson13 days
| | | | PMU-provisioned chip identity is the one hard dependency
* STATE-CURRENT: cycles 4-10 - pre-boot RPCs/registry/timer/chipset landed; RM ↵Arthur Hanson Rasmusson13 days
| | | | init wall narrowed to static-config collection
* STATE-CURRENT: physical GSP-RM init root-caused to devid validation; cycle 8 ↵Arthur Hanson Rasmusson13 days
| | | | under test
* STATE-CURRENT: 14:07 check-back - 0x59 root-caused (missing pre-boot init ↵Arthur Hanson Rasmusson13 days
| | | | handshake); error journal collapsed 851->4; cycles 4-7 release clean
* STATE-CURRENT: 12:12 check-back - cycles 2-3 ran the real GSP-RM sequencer; ↵Arthur Hanson Rasmusson13 days
| | | | RM init fails 0x59; clean release without reboot; NOCAT capture next
* STATE-CURRENT: cycles 2-3 results - clean release without reboot; RM init ↵Arthur Hanson Rasmusson13 days
| | | | failure 0x59 under diagnosis
* STATE-CURRENT: stage 3e parser fix after the live GSP-RM sequencer request; ↵Arthur Hanson Rasmusson13 days
| | | | next cycle prepared
* docs: record next-cycle readiness for the physical GSP bootArthur Hanson Rasmusson13 days
| | | | STATE-CURRENT and the integration page reflect the implemented sequencer, clean-shutdown RPC and static-info probe awaiting the next supervised live cycle.
* STATE-CURRENT: 10:08 check-back snapshot (first real GSP boot recorded; ↵Arthur Hanson Rasmusson13 days
| | | | sequencer executor next)
* docs: record the first real GSP boot and the live GSP-RM sessionArthur Hanson Rasmusson13 days
| | | | STATE-CURRENT and the architecture docs now describe the observed order (FWSEC -> Booter Load -> RISC-V active -> event 0x1002 run-sequencer -> 0x1001 init-done), the four-handoff-bit clean-release constraint, and the --boot/--keep harness contract.
* STATE-CURRENT: recovery complete (approved reboot restored GPU); ↵Arthur Hanson Rasmusson13 days
| | | | secure-verification-only retired; full boot lifecycle next
* STATE-CURRENT: FWSEC carve milestone; fail-safe teardown limit; approved ↵Arthur Hanson Rasmusson13 days
| | | | reboot for restoration
* STATE-CURRENT: live secure-verification succeeded (WPR2 up); fail-safe holds ↵Arthur Hanson Rasmusson13 days
| | | | device pending rescue
* STATE-CURRENT: supervised D0 claim mitigation verified (3/3); FB 8 GiB; ↵Arthur Hanson Rasmusson13 days
| | | | FWSEC dry-run stage
* STATE-CURRENT: 07:12 check-back snapshot (backend hardening/read-only ↵Arthur Hanson Rasmusson13 days
| | | | dry-run stage before live boot)
* STATE-CURRENT: PLAN B claim path proven safe 3/3; real FB size 8 GiB; ↵Arthur Hanson Rasmusson13 days
| | | | secure-verification stage coded (build-only)
* STATE-CURRENT: claim harness verified; rung-3 boot spec complete; FB-size ↵Arthur Hanson Rasmusson13 days
| | | | decode identified
* STATE-CURRENT: D0 lock verified 3/3 supervised claim/release cycles; real ↵Arthur Hanson Rasmusson13 days
| | | | GSP boot is next
* STATE-CURRENT: power-domain lock implemented behind the hazard gate; ↵Arthur Hanson Rasmusson13 days
| | | | snapshot refreshed
* STATE-CURRENT: cdt2 baseline re-verified; second freeze class mechanism and ↵Arthur Hanson Rasmusson13 days
| | | | power-domain mitigation recorded
* STATE-CURRENT: execution backend hazard-gated after freeze root-cause; ↵Arthur Hanson Rasmusson13 days
| | | | bring-up snapshot refreshed
* STATE-CURRENT: root-cause the second freeze class (claim unbind) and its ↵Arthur Hanson Rasmusson13 days
| | | | hazard gate
* STATE-CURRENT: execution-backend bring-up started (claim + GSP firmware ↵Arthur Hanson Rasmusson13 days
| | | | verified); freeze-class watch note
* docs: execution-backend bring-up staged - ownership and firmware staging ↵Arthur Hanson Rasmusson13 days
| | | | verified, real boot next
* STATE-CURRENT: cdt2 64/64 rerun verified; execution backend bring-up ladder ↵Arthur Hanson Rasmusson13 days
| | | | drafted
* STATE-CURRENT: real-release rc=0 chain reached; execution backend is the ↵Arthur Hanson Rasmusson13 days
| | | | | | | | | | | | frontier - the per-push 8 s stall was pump bookkeeping (release-seen keyed on the unchanged tracker-semaphore VA; rewind replays returning to the CE grace path) - fixed; real-release init now completes in ~1 min - the content rescue now parses the real method encoding, so NON_INC-headed pushes validate and their releases land - the queued launch's module image reaches the emulated vidmem; execution on real hardware (docs/03-architecture/08 backend) is the next project
* STATE-CURRENT: no-pin release delivery committed; real-release init reaching ↵Arthur Hanson Rasmusson13 days
| | | | | | | | device count - 6ec799c delivers UVM tracking releases without host-side pins - one real-release no-watcher cycle reached cudaGetDeviceCount success - cycles continue; execution backend remains the gating item
* STATE-CURRENT: no-watcher cycles iterating (module rebuilt from the ↵Arthur Hanson Rasmusson13 days
| | | | | | | in-flight edit) - three real-release cycles without kprobes/watchers; no textual result yet - frontier unchanged: real-release runtime init and the execution backend
* STATE-CURRENT: activity resumed - no-watcher real-release runtime cyclesArthur Hanson Rasmusson13 days
| | | | | | - fresh module per cycle without kprobes/watchers; early observation: a compute-channel entry stalls with a failure notifier - frontier unchanged: real-release runtime init and the execution backend
* STATE-CURRENT: runtime client reaches kernel launch; execution backend is ↵Arthur Hanson Rasmusson14 days
| | | | | | | | the next wall - runtime init rc=0 (cudaGetDeviceCount/SetDevice/alloc/HtoD/launch accepted) - fixed the legacy clock-domain probe replies that blocked runtime init - next: real-release runtime init and physical-GPU execution of queued work
* STATE-CURRENT: PD writes proven live; runtime client past registration; ↵Arthur Hanson Rasmusson14 days
| | | | | | | | canonical reply fix - page-directory entry writes captured and validated; 64/64 baseline stays - vectorAdd client now fails after registration in libcuda (rc=3), no kernel error - BAR-info canonical reply-size bug fixed; one cache mismatch remains