<feed xmlns='http://www.w3.org/2005/Atom'>
<title>open-iov.git/tools/guest-diag/inject_counters.sh, branch m32</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=m32</id>
<link rel='self' href='https://git.vgpu.io/open-iov.git/atom?h=m32'/>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/'/>
<updated>2026-10-02T19:13:06+00:00</updated>
<entry>
<title>kernel: GR context-promote bisection modes 4-17 and server-managed-ctxbuf registry variant; complete vgsp rename; docs/tooling refresh</title>
<updated>2026-10-02T19:13:06+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-02T19:13:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=4bb8550a72597ec098c6d62a75006a0aba61972e'/>
<id>urn:sha1:4bb8550a72597ec098c6d62a75006a0aba61972e</id>
<content type='text'>
- gsp_phys_booter: GR promote bisection modes 4-17 (two-phase zero-field VA,
  batched entries, hVirtMemory, bare VA, KMD SKIP_CTXBUFFER_ALLOC channel,
  old-interface GPU_INITIALIZE_CTX, FBMEM context buffer, UVM-faithful PA-only,
  PATCH/PM auxiliary promotes, server-managed no-promote path); PATCH/PM
  geometry queries and buffers; pre-boot SET_REGISTRY profile selection
- gsp_phys_gpu: gsp_phys_rmcall_gr_promote clamp 0..17 and gsp_phys_srv_ctxbuf
  parameter; registry image variant with RMSetClientRMAllocatedCtxBuffer=0
- vgsp rename across kernel, scripts, tools and docs (module vgsp.ko,
  /sys/kernel/debug/vgsp/, vgsp-&lt;subsystem&gt;: log prefixes)
- risc-v-gsp-rm-debugger user-facing rename and docs/CI refresh; guest-diag
  tool updates; README/SBOM/install/Makefile sync

Live status: CE ladder and P6 guest-copy forwarding green; GR engine context
commit still open (all promote shapes accepted or cleanly refused; the channel
stays CTXNOTVALID) - see Handoff-vGPU-IO.md Addendum 21 (local).
</content>
</entry>
<entry>
<title>guest-diag: injector handles slow chan_dump (3s wait, last-marker parse)</title>
<updated>2026-09-29T16:40:43+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-29T16:40:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=ff97caae114db5447fc71b89ead7e8d2c4d404a8'/>
<id>urn:sha1:ff97caae114db5447fc71b89ead7e8d2c4d404a8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>guest-diag: semfix watcher (stale sem-pool VA-&gt;PA from guest truth); injector marker-based handle discovery</title>
<updated>2026-09-29T16:17:11+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-29T16:17:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=23a5d82a87e3b22617a3716cd7c27934fd787084'/>
<id>urn:sha1:23a5d82a87e3b22617a3716cd7c27934fd787084</id>
<content type='text'>
</content>
</entry>
<entry>
<title>sema-svc: async VA-&gt;PA injection queue; guest-diag: fast counter+pin injector, wait sampler</title>
<updated>2026-09-29T15:55:15+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-29T15:55:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=723e4886aefad5d3cd36873db0a01bdc332b18b4'/>
<id>urn:sha1:723e4886aefad5d3cd36873db0a01bdc332b18b4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tools: inject_counters.sh - counter index order is descending by handle</title>
<updated>2026-09-29T13:44:56+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-29T13:44:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=846c98b686fa9752dd434eda54540a999faf96ec'/>
<id>urn:sha1:846c98b686fa9752dd434eda54540a999faf96ec</id>
<content type='text'>
Live verification: the trackers waiting on counter slots idx2/idx3 belong
to the channels 2nd/3rd from the top of the ascending handle list, and the
only channel whose GPFIFO put advanced to 2 was the 4th from the top,
whose tracker polled idx3. Zip descending handles with ascending counter
indices by default; ORDER=asc restores creation order.
</content>
</entry>
<entry>
<title>tools: durable guest counter enumeration/injection and VA reader</title>
<updated>2026-09-29T12:53:11+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-29T12:53:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=26fce4914011914bb1e2ee520fe62e790326877e'/>
<id>urn:sha1:26fce4914011914bb1e2ee520fe62e790326877e</id>
<content type='text'>
The counter enumeration/injection workflow lived in the guest's /tmp and was
lost on every restart. Make it durable under tools/guest-diag:

- sem_counters.py: translate a process's per-channel u32 completion counters
  (16-byte stride in the /dev/nvidiactl counter page) to guest PAs through
  /proc/&lt;pid&gt;/pagemap; --pairs emits handle,va,pa triples.
- sem_slots.py: read/write the counter slots via /proc/&lt;pid&gt;/mem (fallback
  for the host counter publish).
- read_va.py: hex dump a process VA (UVM sysmem GPU VAs are usually valid
  CPU VAs in the owning process); --u32 for method streams.
- inject_counters.sh: host-side one-shot: push the tool, take the GR handles
  from the live chan_dump, enumerate, then register each counter with
  sema_counter and pin its VA with sema_map_add.
- push_guest_tools.sh: push the new tools after every VM start.
- launch_qemu_direct.sh: parameterized mdev UUID/paths instead of a stale
  hardcoded one; committed so it survives checkouts.
</content>
</entry>
</feed>
