<feed xmlns='http://www.w3.org/2005/Atom'>
<title>open-iov.git/tools/guest-diag/nmi_catch.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-09-28T16:10:17+00:00</updated>
<entry>
<title>guest-diag: nmi_catch.sh - sysrq-l sampler that keeps nvidia kernel stacks</title>
<updated>2026-09-28T16:10:17+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-09-28T16:10:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=ba95c995a719289f40fedda081df91f576b52c2a'/>
<id>urn:sha1:ba95c995a719289f40fedda081df91f576b52c2a</id>
<content type='text'>
The guest RM's expiring waits are kernel busy-polls and all of their
functions are notrace, so ftrace/kprobes cannot name them. sysrq-l NMI
backtraces can: this sampler triggers them and keeps only the Comm and
[nvidia] frame lines per round, so the wait/teardown stacks survive dmesg
ring wraps. Caught the adapter-shutdown scrubber stack
(channelReadChannelMemdesc &lt;- ceutilsUpdateProgress &lt;- scrubberDestruct &lt;-
memmgrDestroyInternalChannels &lt;- gpuStatePreUnload &lt;- nv_shutdown_adapter).
</content>
</entry>
</feed>
