summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-30 20:57:30 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-30 20:57:30 -0400
commit0c4613466659fa6291442f9a8edefe584dc9262c (patch)
tree67eeb03124e12216e13fa8830f128e646713d4c8
parentd94fc701b557c685e07dbc5470f56b3adee89e70 (diff)
downloadopen-iov-0c4613466659fa6291442f9a8edefe584dc9262c.tar.gz
open-iov-0c4613466659fa6291442f9a8edefe584dc9262c.zip
STATE-CURRENT: real-release rc=0 chain reached; execution backend is the 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
-rw-r--r--STATE-CURRENT.md20
1 files changed, 13 insertions, 7 deletions
diff --git a/STATE-CURRENT.md b/STATE-CURRENT.md
index 3aae1ef..ee6cb5a 100644
--- a/STATE-CURRENT.md
+++ b/STATE-CURRENT.md
@@ -30,7 +30,7 @@ meant to execute on the physical GPU.
| CUDA userspace: `cuInit`, `cuDeviceGetCount`, `cuDeviceGet` | ✅ |
| `cuCtxCreate` returns | ✅ (the whole smoke test now completes) |
| `cuMemAlloc` + `cuMemcpy` roundtrip (`ALL OK` in the smoke test) | ✅ payload roundtrip verified 64/64 in the guest |
-| Full `nvidia-smi` output / kernel launch | 🟡 the static runtime now initializes (`rc=0`) and queues a kernel launch; execution awaits the backend |
+| Full `nvidia-smi` output / kernel launch | 🟡 the static runtime now initializes end-to-end with **real releases** (`cudaGetDeviceCount`/`cudaSetDevice`/3×`cudaMalloc`/2×`cudaMemcpyHtoD`/`kernel launch`/`cudaGetLastError` all `rc=0`) and queues a kernel launch; execution awaits the backend |
| CUDA kernel execution (`vectorAdd`) | ❌ not started (forwarding layer absent) |
| Graphics (3D), video | ❌ |
| Faults, multi-version, Windows, migration, multi-tenancy, performance | ❌ |
@@ -78,12 +78,18 @@ chain succeeds.
clock-domain probe inside libcuda (two device attributes) whose three
legacy clock controls were answered with zeros; they are now populated
with exactly the fields the helper checks.
-- **Caveat**: the rc=0 init chain above was obtained in fast-release mode;
- under real releases the runtime-init path still needs the pin/translation
- work (the smoke-test baseline is already correct under real releases).
-- Active work: (1) real-release delivery for the runtime init (pin/translation
- work); (2) decode the queued compute-channel pushes into real submissions on
- the physical GPU (the execution backend); then the synchronize/DtoH verify.
+- **Real-release mode now reaches the same rc=0 chain**: the earlier
+ per-push 8 s stall was two pump bookkeeping bugs (release detection keyed on
+ an unchanged semaphore VA; rewind replays re-entering the CE grace path) -
+ both fixed, and the runtime init completes in ~1 min with real releases.
+ The content rescue also learned the real method encoding (NON_INC/IMMD/
+ ONE_INC/END_PB headers).
+- Active work: (1) rerun the driver-API smoke test (cdt2) on the current
+ module to confirm no regression, and confirm the two known gaps (GMMU walks
+ for runtime VAs, staging-VA resolution) are non-blocking; (2) the execution
+ backend: decode the queued compute-channel pushes into real submissions on
+ the physical GPU; then the synchronize/DtoH verify. The host is headless,
+ so a controlled device-ownership bring-up is feasible.
Work resumed with no-watcher, real-release runtime cycles: a new commit
delivers the UVM tracking releases without host-side pins, and one
real-release, no-watcher run has reached `cudaGetDeviceCount` success; the