| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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).
|
| |
|
|
| |
fail-safe hold, green-eye wave 2
|
| |
|
|
| |
wall, green-eye tooling
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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)
|
| |
|
|
| |
P5 wave-1 shadow execution
|
| |
|
|
|
|
|
|
| |
- 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
|
| |
|
|
| |
identity overlay live (GREEN); LIVE=0 control did not pass
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
exercised (fail-open); async boot FWSEC failure and a release-path freeze recurrence noted
|
| | |
|
| |
|
|
| |
API skeleton); PLAN A baseline re-verified 64/64
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
physical engine; channel now allocates; engine did not execute the block
|
| |
|
|
| |
GSP-RM; wall moved to the address-space page-directory setup; clean release
|
| |
|
|
| |
channel allocation blocked; unsafe variant removed after fail-safe reboot
|
| |
|
|
| |
milestone (log-ring and identity fixes)
|
| |
|
|
| |
static-config RPC
|
| |
|
|
| |
PMU-provisioned chip identity is the one hard dependency
|
| |
|
|
| |
init wall narrowed to static-config collection
|
| |
|
|
| |
under test
|
| |
|
|
| |
handshake); error journal collapsed 851->4; cycles 4-7 release clean
|
| |
|
|
| |
RM init fails 0x59; clean release without reboot; NOCAT capture next
|
| |
|
|
| |
failure 0x59 under diagnosis
|
| |
|
|
| |
next cycle prepared
|
| |
|
|
| |
STATE-CURRENT and the integration page reflect the implemented sequencer, clean-shutdown RPC and static-info probe awaiting the next supervised live cycle.
|
| |
|
|
| |
sequencer executor next)
|
| |
|
|
| |
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.
|
| |
|
|
| |
secure-verification-only retired; full boot lifecycle next
|
| |
|
|
| |
reboot for restoration
|
| |
|
|
| |
device pending rescue
|
| |
|
|
| |
FWSEC dry-run stage
|
| |
|
|
| |
dry-run stage before live boot)
|
| |
|
|
| |
secure-verification stage coded (build-only)
|
| |
|
|
| |
decode identified
|
| |
|
|
| |
GSP boot is next
|
| |
|
|
| |
snapshot refreshed
|
| |
|
|
| |
power-domain mitigation recorded
|
| |
|
|
| |
bring-up snapshot refreshed
|
| |
|
|
| |
hazard gate
|
| |
|
|
| |
verified); freeze-class watch note
|
| |
|
|
| |
verified, real boot next
|
| |
|
|
| |
drafted
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
in-flight edit)
- three real-release cycles without kprobes/watchers; no textual result yet
- frontier unchanged: real-release runtime init and the execution backend
|
| |
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|