Skip to content

Conversation

@pmenzel
Copy link
Contributor

@pmenzel pmenzel commented Jul 29, 2026

Tested on jabberwocky, and nvidia-smi works afterward.

NVIDIA GSP-based GPUs (e.g. the A100 in jabberwocky) are not reset by
kexec. The GSP firmware and its WPR2 carveout survive into the next
kernel, whose freshly-initialised IOMMU then rejects the GPU's stale
DMA. The result is an AMD-Vi IO_PAGE_FAULT storm, a GSP exception
(Xid 120, load access fault), and RmInitAdapter failing with 0x62
(NV_ERR_RESET_REQUIRED), so nvidia-smi reports "No devices were found".
A cold boot is unaffected because the GPU is power-cycled; only the
kexec path leaves the device in this wedged state.

Unload the NVIDIA driver in cmd_reboot() before handing off to the new
kernel, so the driver shuts the GSP down cleanly and the next kernel
enumerates a healthy GPU. Guarded on the driver actually being loaded,
so it is a no-op on the rest of the fleet, and best effort otherwise:
if a module is missing or busy the reboot still proceeds.

Resolves: #557
Assisted-by: Claude Opus 4.8 <noreply@anthropic.com>
# so nvidia-smi reports "No devices were found". Unloading the driver first
# lets it shut the GSP down cleanly so the next kernel enumerates a healthy
# GPU. Best effort: if a module is absent or busy, proceed with the reboot
# anyway (no worse than not unloading at all).
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No idea, if we want long comments, so LLMs better understand the code, or if they should be more terse or even removed.

Sign in to join this conversation on GitHub.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant