summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--STATE-CURRENT.md59
1 files changed, 59 insertions, 0 deletions
diff --git a/STATE-CURRENT.md b/STATE-CURRENT.md
index 91cb1c8..441ea85 100644
--- a/STATE-CURRENT.md
+++ b/STATE-CURRENT.md
@@ -1,5 +1,64 @@
# Open-IOV Current State
+> **Snapshot: 2026-10-30 ~12:20 (SESSION 153, r1013 live; HEAD `a64169db`).**
+> The arc since the SESSION 143 snapshot split in two. Guest CUDA on the
+> physical engine: the post-reboot stall is root-caused and fixed - the GR
+> ring-autopin fallback and the CE first-submission capture each guarded
+> block ownership only within their own engine class, so a channel could
+> latch a live foreign FB block (`41343c63`: cross-class block claims,
+> pre-latch CE reservations, own-block latch semantics) - and the fixed
+> build is green repeatedly (`victory_mail` `VADD bad=0` + `STATUS OK`;
+> `vecadd_loop` 100 launches PASS). The fresh-boot battery's remaining red
+> class is D2H-stage (release-before-work, a ledger-vs-writer page
+> divergence and a memset readback/writeback race are all proven;
+> release-discipline fixes are staged but uncommitted; the opdef-deadline
+> slot-complete path is the next fix). X/GL on the emulated vGPU: the wall
+> that stood since the early sessions is closed - `fffae7b1` gets Xorg `:0`
+> through the nvidia-push DMA sanity push and ScreenInit (`glxinfo` =
+> OpenGL 4.6.0 NVIDIA 570.144, direct rendering, GZDoom launches), with the
+> RC watchdog channel registered/serviced (`8898bd00`+`42c9626b`) and
+> per-client VAS resolution (`38ba1e2d`: a channel's VAs resolve through
+> its own VAS first). The app-side 10 s/frame waits are the client's own
+> give-up manager; the `sema_xw_mirror` pair completes presents (glxgears
+> latches 128-146 FPS, 200+ in the later shim runs) but produces no
+> rendered output - the GL draw stream is marshalled, not executed. The
+> engine now executes the real GL method stream in two forms: the C597
+> section capture + synthesized compute launch retires its QMD on real
+> sm_75 SASS (`0ee574a3`..`595e023a`), and the verbatim 3D method-stream
+> replay lane retires real 3D methods with no QMD (r932); the hard limit
+> is that rasterised GL pixels still need the real 3D pipeline. SESSION
+> 153's headline: the direct GL client's device-init gate is root-caused to
+> the driver-shared memfd slot word (bit 0 set = glcore skips its
+> class-0xc46f channel creation); cleared, the client allocates its
+> channels (0xbeef0100/0101/0102 plus 0x902d/0xc5b5/0xc597/0x9072/0xa140/
+> 0x90f1) and `glReadPixels` returns with GL error 0 - fixed field-side by
+> the kernel keeper `sema_shared_hold_pa` (`a64169db`, holds bit0 clear
+> deterministically) plus host hold/toggle automation (the MakeCurrent
+> handshake needs the 2<->3 transition). Current walls (ranked): (a) the
+> fresh-boot Xorg DMA-init failure in r1013 (a 10 s `Failed to initialize
+> DMA` -> no X server, so no client; a different wait from the member-spin
+> class); (b) the client PUT-visibility wall - the direct client's channels
+> never submit (its process writes no GP_PUT anywhere, the BAR0/BAR1-shadow
+> premise was falsified by direct measurement, and the submitting DDX-side
+> channel's USERD is guest RAM already tracked by the RAM scan); (c) the
+> pixel wall - no render content reaches any ring (X-side pushes are 32-64
+> B housekeeping BEGINs; every capture/readback is black). Landmine:
+> killing/exiting a direct client can trip a 4 GB `nv_alloc_system_pages`
+> guest-kernel oops - never kill clients; re-cycle instead. Delivered on
+> the emulated vGPU: the R18 CUDA-animation video (`70134652`; 60/60
+> frames zero faults, frames exact vs CPU math, single-page kernels only -
+> the window-0 code shadow carries one 4 KB page, so kernels >4 KB stay
+> hostile until it grows) and two two-VM GZDoom videos (`375d627a` tools;
+> the GPU-accelerated one runs on virtio-gpu/virgl on the host iGPU, not
+> the emulated vGPU, which remains the core frontier). Host clean, pstore
+> empty; live: r1013 mdev `95446a6c-d5da-4e74-920b-5ac0d7ccc303`, QEMU
+> 2335256, guest no Xorg/no GL client, pin/sem helpers up. Also open: the
+> SESSION 143 Vulkan-client completion regression (fence timeout with the
+> push re-completed) - not re-measured since r816, priority moved to the
+> GL path. Commits this arc: `41343c63`, `fffae7b1`, `8898bd00`,
+> `42c9626b`, `38ba1e2d`, `6f2e6193`, `0ee574a3`..`595e023a`, `70134652`,
+> `375d627a`, `1fd8d50a`, `f500779b`..`a64169db` (SESSION 153 ladder).
+>
> **Snapshot: 2026-10-26 (SESSION 143, post-reboot).** The r800 walk guard
> holds and the `gsp_phys_gr_min_data=0` bypass reaches the real engine: the
> guest Vulkan compute launch is now *submitted* (no oops, no degenerate-set