<feed xmlns='http://www.w3.org/2005/Atom'>
<title>open-iov.git/tools/guest-diag/wall2, 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-25T15:23:17+00:00</updated>
<entry>
<title>wall2 session 89: counter-page record resolve proven live (slot learn + pub_calls 0-&gt;172); GR ctx-init release apply remains the single unmet wait</title>
<updated>2026-10-25T15:23:17+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T15:23:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=7924df70261aad94b919add5778a910b0f9837bd'/>
<id>urn:sha1:7924df70261aad94b919add5778a910b0f9837bd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wall2 session 89: GMMU PT walk replicated host-side + live inject (validated: ring entries and push method streams match); gpfifo done 0-&gt;6; root cause of -4 = release-apply gates (gr_forward defer-arm, op_tr_pending opdef withholding) + unresolvable counter page 0x20400f000 (slot stays pending); counter-page {pa,va} record tables found for host-side resolve (live only)</title>
<updated>2026-10-25T15:20:09+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T15:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=99945b39da4fb2fc0e649c93f38ee66968551efa'/>
<id>urn:sha1:99945b39da4fb2fc0e649c93f38ee66968551efa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wall2: session 88 - push page-5 injection fix (proven +30/sweep), host_resolve tool, RING GAP diagnosis (gpfifo done=0), gdb-SIGKILL RM-lock wedge lesson</title>
<updated>2026-10-25T14:38:34+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T14:38:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=2954ee131bed4f0fa6aacae46bb6f987799135e2'/>
<id>urn:sha1:2954ee131bed4f0fa6aacae46bb6f987799135e2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wall-2 session-87: window page-list hunt - the 2 GiB cycle's windows are scattered (later offsets at first_PA+off are zeros); the memdesc {size 0x20000, PA=0x107c47000, kptrs} page list is only reachable via the kernel pointers (kcore walk with fresh addresses needed); content search for the init-stream prefix found the window pages (0x103c06000+0x858, 0x11dbfa000+0x858, 0x126d69000+0x59c) but the VA&lt;-&gt;page relation is non-linear; the client blocks in os_schedule at the allocation (the unread later pushes suspected)</title>
<updated>2026-10-25T14:16:15+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T14:16:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=8a57d945eb4dab7ed8ff6779ad481419df1198ed'/>
<id>urn:sha1:8a57d945eb4dab7ed8ff6779ad481419df1198ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wall-2 session-86 tools: vk_memprops.py (standalone Vulkan memory-properties dump), vk_alloc_test.py (standalone allocation reproducer), t91.py (auto-clear + ICD memprops/alloc hooks), t90.py (A8 count auto-clear)</title>
<updated>2026-10-25T14:09:05+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T14:09:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=3fe51aefde1fb2ad7c7bcebf2d5e42e75607ae77'/>
<id>urn:sha1:3fe51aefde1fb2ad7c7bcebf2d5e42e75607ae77</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wall-2 session-86: the DEVICE_LOCAL -2 wall CRACKED - the 512 MiB emulated VRAM was the gate (the ICD hooks captured ALLOC size=0x4000 typeIndex=1 valid; vk_memprops shows device-local heap[0]=512 MiB); the nvidia-nvidia-vgpu-turing-2g mdev type (2 GiB heap, VGPU_MDEV_TYPE env var honoured by start_vm_keep.sh) lets the same client with the same recipe proceed past vkAllocateMemory into a deeper wait (os_schedule, no -2); remaining: the later pushes at va=+0x52d4/+0x586c read pa=0x0 (window page list scattered; injections covered page 1 only) - extend the window injections; tools: vk_memprops.py, vk_alloc_test.py (hits -4 without the harness), t91.py</title>
<updated>2026-10-25T14:08:53+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T14:08:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=e4d8ef84f70c084243468a3cae26448d973c841d'/>
<id>urn:sha1:e4d8ef84f70c084243468a3cae26448d973c841d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wall-2 session-85 BREAKTHROUGH: the NvOgl wait CLEARED - the A8 loop's exit needs the session count *(u32*)(lib_base+0x2070b7c) to reach 0 (the engine sessions' completion counter); a direct gdb write of 0 cleared the wait and the client ADVANCED past the post-device phase for the first time (VKDEVICE ok then VKFAIL vkAllocateMemory -&gt; -2 OUT_OF_DEVICE_MEMORY at vk_frame.c:204 - the new wall: the DEVICE_LOCAL heap/type reporting, no alloc RPC reached the emulation)</title>
<updated>2026-10-25T13:26:41+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T13:26:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=98a120b2da9361aa9331776351ef4694fc72ed98'/>
<id>urn:sha1:98a120b2da9361aa9331776351ef4694fc72ed98</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wall-2 session-84: the a86038 want-scan mapped - all four entries PASS with the driven window value (wants {0,0,0,6} vs actuals {0,0,0,0xffffffff00000100}, no pending); a full-window write (0x0..0x1ff0) does not clear the wait; the residual gate is the A8 loop's internal callback/retry machinery (the a85f30 exit path decrements *(rbp) while firing the global callbacks 0x206f790/0x206f7a0 with args from rbp+0x30/0x38/0x40) and the slow yield-spin cadence (b284b0(...,0xb))</title>
<updated>2026-10-25T13:24:05+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T13:24:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=9b5a83f5116e58088a23e26285714256cad22232'/>
<id>urn:sha1:9b5a83f5116e58088a23e26285714256cad22232</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wall-2 session-83: the A8 completion counter decoded to a client readback window - a82f30 -&gt; *(obj+0x19b8)=eglcore+0xb250f0 -&gt; b1bf00 (slow path obj+0x224==0) -&gt; b27c90 reads *(u32*)(*(*(obj+0x1480)+0x58)+idx*16) (idx 0xbb.., min over n=*(u32*)(obj+0x22efc)); the window for handle 0xbeec0100 is VA 0x7827e6c12000 (/dev/nvidiactl) and the host CAN write it via the RAM file: writing 0x100 made the client read it (obj+0x1070=0x100, actual table entry 0xffffffff00000100) - first live proof the counter can be driven from the host; the wait persists in the loop's second scan (a85ec1/b29dc0) and the *(rsp+0x38) branch</title>
<updated>2026-10-25T13:20:52+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T13:20:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=c5a63b494c8f107922c1eb92dcf5dee7141ad0a8'/>
<id>urn:sha1:c5a63b494c8f107922c1eb92dcf5dee7141ad0a8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wall-2 session-82: counter-page PA hunt - the client's pagemap does not contain the counter pool (guest_pmap_win.py empty for 0x20400f000 and 0x121000000 ranges; semfix_uvmt's pin_counter_page never succeeded) and the vidmem-window hypothesis is not supported (poke_vidmem at the pool window offset 0x3F87000 + rank slots 0xfd0/0xfc0/0xfb0 with 6 then 0x40 changed the shadow but did not move the A8 wait); gdb attach hangs on the post-device spin (kill by PID + SIGCONT recovery)</title>
<updated>2026-10-25T13:08:22+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-25T13:08:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=7554ae4b029b5a1df98d26b40dab58ea9630e645'/>
<id>urn:sha1:7554ae4b029b5a1df98d26b40dab58ea9630e645</id>
<content type='text'>
</content>
</entry>
</feed>
