<feed xmlns='http://www.w3.org/2005/Atom'>
<title>open-iov.git/kernel, branch master</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=master</id>
<link rel='self' href='https://git.vgpu.io/open-iov.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/'/>
<updated>2026-10-12T05:46:11+00:00</updated>
<entry>
<title>vgsp-sema: a stale-dropped pool read must not consume the residue rule (second-client fix)</title>
<updated>2026-10-12T05:46:11+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-12T05:39:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=9cb378918e2f11eab134ba60ba8d7f562b7ff289'/>
<id>urn:sha1:9cb378918e2f11eab134ba60ba8d7f562b7ff289</id>
<content type='text'>
r99/r100: the fresh session's reused pool page reads the previous session's
residue (cur=2) before the first genuine release (pay=1) is translated; the
translated read set ch-&gt;pool_rel_seen, so every later residue release
(payload &lt;= cur) was silently dropped by the final else and the client spun
at DEVICE forever. A read that applied or deferred nothing now leaves the
flag clear so the r63/r64 residue re-seed still fires for the first genuine
release of the session.
</content>
</entry>
<entry>
<title>vgsp-sema: discover GR data candidates from the fresh inline param block (second-client fix)</title>
<updated>2026-10-12T05:46:11+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-12T05:38:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=a5e57a960dfb11abf50e28487f8b11d6b88aadaf'/>
<id>urn:sha1:a5e57a960dfb11abf50e28487f8b11d6b88aadaf</id>
<content type='text'>
Second-client launches scanned a stale/reused guest param page that still
held the FIRST client's device VAs: zero new candidates resolved, nothing
was relocated, and the engine executed with unrelocated guest pointers
(r97 evidence: client#1 '15 candidate ptrs, 100 pages resolved' and win0
param 160=110400; client#2 '12 candidates, 1 page' with 160=75552ec00000
unrelocated). The driver-authored inline param block is captured from the
pushbuffer at request time, so scanning it makes pointer discovery
independent of guest-page reuse timing. Adds svc_gr_scan_cand()/
svc_gr_scan_inline() and the DIAG win0/guest-param proof line. Client #1
stays green (4 cycles); the remaining second-client stall is the pool
semaphore residue (see next commit).
</content>
</entry>
<entry>
<title>vgsp-gr: dump first words of changed bounce pages (m142 diagnostic)</title>
<updated>2026-10-12T03:26:27+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-12T03:26:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=1dab2b18a6b2bed1354c55822d060a539518806b'/>
<id>urn:sha1:1dab2b18a6b2bed1354c55822d060a539518806b</id>
<content type='text'>
Discriminates engine-side writes of float data (kernel ran with c on this
buffer) from non-kernel writes (pointers/QMD-shaped words).
</content>
</entry>
<entry>
<title>vgsp-gr: log the changed bounce page indexes at copy-out (m142 diagnostic)</title>
<updated>2026-10-12T02:41:26+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-12T02:41:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=d02b8531472bc6c06e2a231c45ebf5cd3ecb6edd'/>
<id>urn:sha1:d02b8531472bc6c06e2a231c45ebf5cd3ecb6edd</id>
<content type='text'>
8 changed pages x 4 passes for smiley vs 33 for victory's vadd - the
indexes name the relocated range (bi &gt;= 0x40 = the c-pointer output
window 0x150000+) and discriminate engine-side partial dispatch from a
guest write-back/read attribution failure.
</content>
</entry>
<entry>
<title>vgsp-gr: one bounded re-arm of a stalled forwarded launch (context save/unload lottery)</title>
<updated>2026-10-12T02:34:10+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-12T02:34:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=2d1afd5d04bd61bbea3d63ede5c020684963ca4c'/>
<id>urn:sha1:2d1afd5d04bd61bbea3d63ede5c020684963ca4c</id>
<content type='text'>
r90 evidence: the 3rd session's forwarded launch entered SKED (CWD VALID)
and was then saved/unloaded by the FECS before dispatch; qmd_rel stayed at
5/6, GP_GET froze, and every later launch on the boot was never fetched
either. The service owns no repair path, so the channel stayed dead until
reboot.

On the first poll timeout, re-issue the two GPFIFO_SCHEDULE controls the
stage-4 sequence used (channel-level 0xa06f0103 + TSG-level 0xa06c0101,
both proven accepted) and re-ring the work-submit doorbell, then poll one
more full window before the postmortem. No BIND, no PROMOTE (m76-m81
proved the explicit PREEMPT/tail variants stop the QMD enqueuing).
</content>
</entry>
<entry>
<title>vgsp: GR data path - pre-publish bounce fill, engine-change proof, ipin-first data resolution</title>
<updated>2026-10-12T02:17:15+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-12T02:17:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=3530fb6ee20d514eddb0e21645abddf512059367'/>
<id>urn:sha1:3530fb6ee20d514eddb0e21645abddf512059367</id>
<content type='text'>
Two fixes and one diagnostic for the all-zero-results class (r89: smiley's
4 vadd launches reported GUEST GR LAUNCH OK yet every output word read 0):

- gsp_phys_booter: copy the guest data pages into the bounce window BEFORE
  gsp_phys_rmcall_publish_locked() rings the doorbell. The fill used to run
  after the kick; the engine front end starts within ~7 ms, so the kernel
  could read the window before it was filled.
- gsp_phys_booter: per-page checksums at copy-in, compared at copy-out;
  the copy-out log now reports 'N changed by engine'. An all-unchanged
  window after a reported completion is the front-end-ran/grid-never-
  dispatched signature (completion semaphores are front-end authored).
  The first 3 data (va,hpa,reloc) triples are logged per launch.
- gsp_sema_service: svc_gr_data_fill resolves data pages through
  svc_ipin_lookup() first (guest-truth pins), falling back to
  svc_resolve_va, mirroring the pool resolver order; a wrong page here
  silently runs the kernel on zeros. First 16 resolved (va,pa,ap) triples
  are logged for post-mortem comparison against the guest's own mapping.
</content>
</entry>
<entry>
<title>Revert "vgsp-sema: scope channel deletion to the owning RM client (ISSUE-0002)"</title>
<updated>2026-10-11T21:50:53+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-11T21:50:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=b06a23c3a8ed36de9db3b880fe6df55d63ad4586'/>
<id>urn:sha1:b06a23c3a8ed36de9db3b880fe6df55d63ad4586</id>
<content type='text'>
This reverts commit 5fa773c2cd4e166d2c31a40aff9fb63e7534fec3.
</content>
</entry>
<entry>
<title>Revert "vgsp-sema: scope CE/GR rank assignment to the owning client (ISSUE-0002)"</title>
<updated>2026-10-11T21:50:52+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-11T21:50:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=4e98122015a736459d303b71d32b300448e51dad'/>
<id>urn:sha1:4e98122015a736459d303b71d32b300448e51dad</id>
<content type='text'>
This reverts commit 35ca086b20f04f6be5bd935fd53d08e43f67e869.
</content>
</entry>
<entry>
<title>Revert "vgsp-sema: session boundary is a client change, not the last channel closing (ISSUE-0002)"</title>
<updated>2026-10-11T21:50:52+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-11T21:50:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=93bc66fbb4777b72e8f72e8e9ea7e960b0b6d0d1'/>
<id>urn:sha1:93bc66fbb4777b72e8f72e8e9ea7e960b0b6d0d1</id>
<content type='text'>
This reverts commit 12732c5894c893344422da4fd8d075c4c43c8e8a.
</content>
</entry>
<entry>
<title>Revert "vgsp-sema: keep the scrubber channel inert; publish its finish payload from GP_PUT (ISSUE-0002)"</title>
<updated>2026-10-11T21:50:52+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-11T21:50:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=a3911afb321b1f8846e60576796a664de6ac9cdb'/>
<id>urn:sha1:a3911afb321b1f8846e60576796a664de6ac9cdb</id>
<content type='text'>
This reverts commit 2d0a65b8f10f8bfac935d880dd9704e7b14f5b29.
</content>
</entry>
</feed>
