<feed xmlns='http://www.w3.org/2005/Atom'>
<title>open-iov.git/tools/guest-diag/scanerr.py, 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: cuda_cycle.sh - one-command CUDA bring-up attempt</title>
<updated>2026-09-29T13:29:02+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-29T13:29:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=6135508cc3b043c35d2e0617870f35b18b29b79c'/>
<id>urn:sha1:6135508cc3b043c35d2e0617870f35b18b29b79c</id>
<content type='text'>
Restart the VM, push the guest tools, start cdt holding on failure, wait
for the 20 GR channels, register/pin the completion counters and arm
scanerr.py, so each iteration is a single command. scanerr now loops over
scanner hits until a hit carries a non-zero RM error record.
</content>
</entry>
<entry>
<title>tools: scanerr.py - dump the non-zero RM error record behind a forced 999</title>
<updated>2026-09-29T13:24:47+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-29T13:24:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=9e07277c87351e193f1c03daddb81ba7a76d0745'/>
<id>urn:sha1:9e07277c87351e193f1c03daddb81ba7a76d0745</id>
<content type='text'>
The libcuda error scanner (FUN_0054fa00) walks a context list and returns
999 when its force flag is set and any context's RM error record has a
non-zero class. ctx999 only shows the first (zeroed) record; scanerr walks
the whole list and prints every non-zero record so the failing control or
alloc is named. Pushed by push_guest_tools.sh.
</content>
</entry>
</feed>
