<feed xmlns='http://www.w3.org/2005/Atom'>
<title>open-iov.git/kernel/gsp_phys_booter.c, 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: 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=8d7409a93ad883a55dbafe057da408f4e334749e'/>
<id>urn:sha1:8d7409a93ad883a55dbafe057da408f4e334749e</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>vgsp: m135 - never relocate param offsets &lt; 0x100 (header server-VA corrupted vadd blockDim -&gt; one-CTA result); pre-rewrite/final header dumps</title>
<updated>2026-10-07T23:53:25+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-07T23:53:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=effc633f4a1e17f0d12494f6794e5691420eb8dd'/>
<id>urn:sha1:effc633f4a1e17f0d12494f6794e5691420eb8dd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vgsp: m134 - re-apply the data-pointer relocation after the inline-data replay (inline records restored the original guest pointers into the engine-mapped page; root cause of the param-read wall)</title>
<updated>2026-10-07T23:45:49+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-07T23:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=d2f142a1d217023fe3e866324a9421f732e9c75f'/>
<id>urn:sha1:d2f142a1d217023fe3e866324a9421f732e9c75f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vgsp: m133 - move the win0 shadow pool to a fresh PTE line (slots 0x190..0x197) + win0 content and PT-slot diagnostics (the slot-0x108 line reads stale to the SM data path)</title>
<updated>2026-10-07T23:39:36+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-07T23:39:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=eeac003d4ea2f8666ad1e2ed088f90163d04238d'/>
<id>urn:sha1:eeac003d4ea2f8666ad1e2ed088f90163d04238d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vgsp: m132 - unique marker in spare bounce page 101 (prove SM data-path reach for probes)</title>
<updated>2026-10-07T23:25:27+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-07T23:25:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=8fdd49162dce3abb94d38b20b2df948976cfaf03'/>
<id>urn:sha1:8fdd49162dce3abb94d38b20b2df948976cfaf03</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vgsp: m130 - mirror write readback diagnostic (does the guest-page pointer patch land?)</title>
<updated>2026-10-07T22:53:20+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-07T22:53:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=ae11886aa97a81e209fb261e5aa4d2d4edfd357a'/>
<id>urn:sha1:ae11886aa97a81e209fb261e5aa4d2d4edfd357a</id>
<content type='text'>
</content>
</entry>
</feed>
