Prerequisites
Code of Conduct
Feature Summary
Add a watchdog to the GPU health monitor that detects DCGM operations that stop returning because the node-local NVIDIA driver is unresponsive.
Problem/Use Case
A GPU driver failure does not always return a DCGM timeout or error. A driver-facing call can block indefinitely while Kubernetes continues to report the node as Ready and its GPUs as allocatable. Because the poll loop itself is blocked, it cannot publish a health event. The liveness probe eventually restarts the monitor, but the replacement can block on the same driver operation without recording the underlying fault.
Remote DCGM endpoints require different handling: an unresponsive service, DNS failure, or network problem does not prove that the local node's GPU driver needs remediation.
Proposed Solution
- Track node-local DCGM operations from an independent watchdog thread using a configurable monotonic deadline.
- Emit
GpuDriverUnresponsive with DRIVER_PROBE_HANG and a reboot recommendation only for embedded, node-local mode.
- Classify hangs in remote modes as
GpuDcgmConnectivityFailure with DCGM_PROBE_HANG and no local reboot recommendation.
- Bound critical event delivery within the liveness restart budget and retry failed delivery attempts.
- Persist active local-driver state across monitor restarts to avoid duplicate events and allow a later healthy clearing event.
- Export a detection metric and expose watchdog and liveness timing through Helm values.
- Ship
GpuDriverUnresponsive with STORE_ONLY processing by default so operators can validate detections before enabling remediation.
Component
Health Monitor
Related Implementation
Draft implementation: #1574
Depends on the pre-cleanup delivery fix tracked in #1575.
Prerequisites
Code of Conduct
Feature Summary
Add a watchdog to the GPU health monitor that detects DCGM operations that stop returning because the node-local NVIDIA driver is unresponsive.
Problem/Use Case
A GPU driver failure does not always return a DCGM timeout or error. A driver-facing call can block indefinitely while Kubernetes continues to report the node as
Readyand its GPUs as allocatable. Because the poll loop itself is blocked, it cannot publish a health event. The liveness probe eventually restarts the monitor, but the replacement can block on the same driver operation without recording the underlying fault.Remote DCGM endpoints require different handling: an unresponsive service, DNS failure, or network problem does not prove that the local node's GPU driver needs remediation.
Proposed Solution
GpuDriverUnresponsivewithDRIVER_PROBE_HANGand a reboot recommendation only for embedded, node-local mode.GpuDcgmConnectivityFailurewithDCGM_PROBE_HANGand no local reboot recommendation.GpuDriverUnresponsivewithSTORE_ONLYprocessing by default so operators can validate detections before enabling remediation.Component
Health Monitor
Related Implementation
Draft implementation: #1574
Depends on the pre-cleanup delivery fix tracked in #1575.