<feed xmlns='http://www.w3.org/2005/Atom'>
<title>open-iov.git/kernel/gsp_sema_service.h, branch stallfree</title>
<subtitle>Open-IOV vGPU-IO: host-side GSP emulation for unmodified NVIDIA guest drivers
</subtitle>
<id>https://git.vgpu.io/open-iov.git/atom?h=stallfree</id>
<link rel='self' href='https://git.vgpu.io/open-iov.git/atom?h=stallfree'/>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/'/>
<updated>2026-10-18T19:30:38+00:00</updated>
<entry>
<title>vgsp: fail4 r231 - READ-ORDER guard/witness + 32KB copy-resolution witness</title>
<updated>2026-10-18T19:30:38+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-18T19:30:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=54a41db23985a82654ad4daeca283682e2b14b1e'/>
<id>urn:sha1:54a41db23985a82654ad4daeca283682e2b14b1e</id>
<content type='text'>
r231 probe: RAWA (fresh 64 KB upload -&gt; straight D2H readback, no kernel)
returned foreign deterministic content (0x437F0000-family ramps) where the
uploaded ints 0..16383 must be, and PROBE2 == PROBE2B on that same content.
The upload/readback round trip inside the emulation is therefore not
content-preserving - before any engine execution. Two candidate mechanisms,
both now witnessed:

- READ-ORDER: a device-src copy reading a VA whose device-dst write is
  still inside the m169 pin-guard window (the writer's bytes land only when
  the guard resolves) - the read executes first. READ-ORDER-WIT logs the
  coincidence; with sema_read_order_guard=1 (new param, default 0) the read
  is deferred through the existing bounded-hold re-decode so it runs after
  the write. Opt-in pending an A/B proving no green regression.

- RESOLUTION DIVERGENCE: the dst (H2D) resolution consults the ledger
  before svc_op_translate while the src (D2H) resolution does the opposite,
  so a stale ledger landing can make the writer and reader touch different
  pages. The sema-bigcopy proof (va-&gt;pa/aperture/provenance for BOTH sides)
  now fires from 32 KB (was 1 MB), so the probe-class copies are on record.

Build green; module param registered and visible.

(cherry picked from commit bfe5d295dd3922c0dbcd0bd1a29912a02acb58ec)
</content>
</entry>
<entry>
<title>vgsp: fail4 discrimination tooling - copy-out page witnesses + full-boot bigcopy resolution budget</title>
<updated>2026-10-18T16:10:03+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-18T16:00:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=04aad03adc45683d03fe1451b8f234061e6b88ff'/>
<id>urn:sha1:04aad03adc45683d03fe1451b8f234061e6b88ff</id>
<content type='text'>
Four guest CUDA clients fail all-bad while four pass; the aggregate
counters cannot separate 'engine result never produced' from 'produced
but written to a different guest page than the client's read resolves'.
Add the two per-page witnesses that correlate the write side with the
read side:

- gsp_phys_gr_copyout_dump (booter, default 1): per-changed-page
  OUT-PAGE-WIT va=&lt;device VA&gt; hpa=&lt;guest PA written&gt; first8/last8=&lt;bytes
  shipped&gt;, bounded 12 pages per launch, plus one RELOC-CENSUS line per
  launch (gaps vs late-resolved words vs late pages).
- sema_bigcopy_log (sema service, default 24, was a hardcoded per-boot
  budget): the svc_copy large-copy proof already logs both operands'
  resolved VA -&gt; pa/aperture/provenance and the first 16 bytes each side;
  raising the budget past the boot's head makes the failing clients'
  H2D/D2H resolutions visible.

Discrimination test for the next cycle: same device VA on OUT-PAGE-WIT
(copy-out HPA) and sema-bigcopy (D2H source pa) with different PAs proves
the produced-but-misplaced class; equal PAs redirects to the readback
content/engine-input path.

(cherry picked from commit 78ea8b7807231ac418a17b85c29ed1845e1b0062)
</content>
</entry>
<entry>
<title>vgsp: GR late-resolve span cap + fill candidate superset + RELOC-GAP stage logging</title>
<updated>2026-10-18T11:38:46+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-18T11:37:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=042eb952046f7b637f91fa701cd50085efe2578b'/>
<id>urn:sha1:042eb952046f7b637f91fa701cd50085efe2578b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vgsp: GR relocation completeness - resolve unmatched device-VA words via the landing resolver (RELOC-FIXED), param gsp_phys_gr_reloc_resolve default 1</title>
<updated>2026-10-18T11:16:09+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-18T11:15:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=24c806ffe9dbe1b0a13fc0a8e3dab91a1e8bc448'/>
<id>urn:sha1:24c806ffe9dbe1b0a13fc0a8e3dab91a1e8bc448</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vgsp: GR fill hold param-gated (default 0: log-only, never hold); record-destroyer root-cause notes</title>
<updated>2026-10-18T10:50:21+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-18T10:49:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=fdef24a4999f9699a1143d0d73eab226b36c0035'/>
<id>urn:sha1:fdef24a4999f9699a1143d0d73eab226b36c0035</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vgsp: GR fill hold - absolute deadline + expiry-proceed + dropped-page detail</title>
<updated>2026-10-18T10:19:43+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-18T10:17:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=e99040b9ca2acc10a9d4b57fe45626331e203a7c'/>
<id>urn:sha1:e99040b9ca2acc10a9d4b57fe45626331e203a7c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vgsp: m178 GR launch reliability + diagnostics; tools: pin latching robustness</title>
<updated>2026-10-17T23:18:50+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-17T23:18:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=33de4c9bc524ac27582fde5911ad32d89d0a7de9'/>
<id>urn:sha1:33de4c9bc524ac27582fde5911ad32d89d0a7de9</id>
<content type='text'>
Kernel: authorship instrumentation + swrel gate for in-flight GR release VAs;
first-poll shortening + fast extended re-arm (params gr_retry_fast=1,
gr_first_poll_ms=2500); per-attempt win0 bank recompute + shadow recopy in the
outcome-retry loop; poll-break/deposit-readback diagnostics; C1-C10 sema
diagnostics (crel-entry, relx, opdef-clear, walk, pub-adv, hold-fallback,
busy-defer, CAND-OVERWRITE, inline recs); busy-defer hold instead of
software-release consume; counter fast path; QMD word 48/49 skip.
Tools: heartbeat thread, scanner-alive probe on reinstall, full periodic
re-assert, #nopid handling, per-client reset fix (debounce), dead-pid drop,
supervisor grace+threshold.
</content>
</entry>
<entry>
<title>vgsp: m177 pin-free self-sufficiency wave + tool hardening</title>
<updated>2026-10-17T21:51:19+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-17T21:51:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=78ac3864039e066354181cb6b53c92e96d86ff3e'/>
<id>urn:sha1:78ac3864039e066354181cb6b53c92e96d86ff3e</id>
<content type='text'>
(1) svc_session_flush keeps svc.direct_base (per-boot constant; the pin-free
    targeted scanner's gate/input) and a new gsp_sema_service_guest_reset()
    hook wipes boot-scoped discovery state on guest RM reload;
(2) counter-page derive now takes the first READABLE source (vaspaces -&gt;
    discovered -&gt; targeted) instead of failing -EIO on a walked-but-garbage
    page, with one-shot diagnostics;
(3) new m177c UVM ring-space directory discovery: content-verified
    (push_va -&gt; push_pa) samples from the GR content discovery and CE push
    pairing feed a second discovered-directory slot (walks the 0x2xxxxxxx
    family), consulted by svc_walk_discovered;
(4) GR channels now deliver withheld opdef sets at entry consume (normal
    tail and the stale-skip path) instead of waiting for the 10 s sweep;
(5) host tools hardened: semfix_uvmt QMP reconnect + pid-generation dedupe
    + stale-sem eviction + post-success pin latch + heartbeats; pin_gr_stream
    accept timeout + guest-scanner reinstall backoff + restart loop +
    subprocess timeouts; new pin_supervisor.sh (heartbeat watchdog, capped
    restarts) wired into start_vm_keep.sh.
Evidence: r194-r196 cycles; pool resolves src=trusted pin-free; ring dir
0x10801c000 found 4/4; row: 'rel-apply ... written' with tools up.
</content>
</entry>
<entry>
<title>vgsp: m169 stale device-destination guard (device-dst copies translated only by walk/RAM-scan are held until a pin confirms; r172 streams2_diag stream-1 H2D wrote through a stale walk entry while the launch read the true page) + session-scope the op-trace budget + bigcopy witness covers device-dst copies &gt;=64KB</title>
<updated>2026-10-17T02:03:28+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-17T02:03:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=419615dc4e1fa5e9c2b4e0d15a0df94ca163a09b'/>
<id>urn:sha1:419615dc4e1fa5e9c2b4e0d15a0df94ca163a09b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vgsp: m163 lost-H2D copy integrity (drain injected pins before CE op resolution; hold failed device-copy ops) + m164 CLASS-2 GR no-capture entry hold + m165 pool release applies at fresh-pin time + m166 timeout-ladder warm-sem fail-fast; scanner: first-class pool VA resolution + periodic re-assert + demand routing</title>
<updated>2026-10-17T00:54:49+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-17T00:54:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=b90ced5aa52d202e678918093d1bb497ec1efd2b'/>
<id>urn:sha1:b90ced5aa52d202e678918093d1bb497ec1efd2b</id>
<content type='text'>
</content>
</entry>
</feed>
