<feed xmlns='http://www.w3.org/2005/Atom'>
<title>open-iov.git/tools/guest-diag/ioctl_trace.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-08T15:53:20+00:00</updated>
<entry>
<title>spdx: add BSD-3-Clause identifiers to userspace/tools/scripts sources</title>
<updated>2026-10-08T15:53:20+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-08T15:53:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=2ee4fe8f43b0dc3e080c91931eadade1fd636c27'/>
<id>urn:sha1:2ee4fe8f43b0dc3e080c91931eadade1fd636c27</id>
<content type='text'>
Sweep of the 155 tracked C/Python/shell files under userspace/ (excluding
the MIT-licensed vendored userspace/extern/), tools/ and scripts/ that had
no per-file license identifier. Each gains the minimal two-line header in
the area's existing form: 'SPDX-License-Identifier: BSD-3-Clause' plus
'Copyright (c) 2026 Open-IOV contributors'; shebang and coding lines stay
first. No other content touched. kernel/** is deliberately out of scope
(recorded as a follow-up in CODESTD-REPORT-2026-10-08.md): its SPDX
coverage and MODULE_LICENSE normalization need their own GPL-2.0 pass.
</content>
</entry>
<entry>
<title>tools/guest-diag: decode engine-list, classlist and CE-cap RM control replies in the ioctl tracer</title>
<updated>2026-09-26T07:07:57+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-26T07:07:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=929d537d13c8a84130bcb73875b081ee1577504e'/>
<id>urn:sha1:929d537d13c8a84130bcb73875b081ee1577504e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kernel: coherent GSP-RM replies for engine-context creation</title>
<updated>2026-09-23T15:46:33+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-23T15:46:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=534131933ef24d602314281573db4ef16cc08a93'/>
<id>urn:sha1:534131933ef24d602314281573db4ef16cc08a93</id>
<content type='text'>
- GSP_RM_ALLOC: echo the request payload back with status forced to NV_OK.
  The kernel driver copies the reply params over the caller's params buffer
  using the class-expected size, so a zeroed reply smashed libcuda's stack
  (SIGSEGV at the engine-registration continuation); echoing makes the
  copy-back idempotent.
- CE_GET_PHYSICAL_CAPS / CE_GET_ALL(_PHYSICAL)_CAPS: report sysmem, P2P and
  BL copy caps and mark the GR-synchronous CE (GRCE, COPY0). Without a GRCE
  the client's context walk ends with an empty secondary-engine record and
  the engine RM alloc is issued with class 0 (rejected -&gt; cuCtxCreate fails).
- TU104 engine table: CE0 shares the GR PBDMA ids (the driver's GR/GRCE
  runqueue validation requires it), plus an entry for the async copy engine
  (COPY14) advertised in the GSP static info engine caps.
- tools/guest-diag/ioctl_trace: decode the RM status fields of alloc,
  control and free so the first failing driver call is visible in traces.

gitignore: keep the CUDA analysis scratch tree (incl. WORKING-HERE.md) local.
</content>
</entry>
<entry>
<title>userspace/cuda: libcuda analysis tree (debug-focused), guest ioctl tracer</title>
<updated>2026-09-23T11:05:45+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-23T11:05:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=2aafde5cc3679020d8b31277c03d70fd6908384c'/>
<id>urn:sha1:2aafde5cc3679020d8b31277c03d70fd6908384c</id>
<content type='text'>
Analysis tooling for debugging CUDA execution in Open-IOV guests:
- userspace/cuda/570.144/: fetch a library from a running guest (nc),
  objdump helpers, crash ip -&gt; file vaddr + symbol mapping, and Ghidra
  headless import/analysis/decompile scripts (project kept so single
  functions decompile in seconds). The purpose is debugging correctness
  and performance of CUDA in Open-IOV VMs (not a reimplementation);
  extracted binaries and decompiled output are gitignored.
- tools/guest-diag/ioctl_trace.c: ptrace tracker for the NVIDIA driver
  ioctls of a child (libcuda issues raw syscalls, so LD_PRELOAD sees
  nothing). Decodes RM_ALLOC (class) and RM_CONTROL (cmd) arguments;
  this is how the cuCtxCreate crash sequence was captured.
- tools/test/cuda_drv_test.c: unbuffered + per-call markers so a crash
  identifies the CUDA call it happened in.
</content>
</entry>
</feed>
