Skip to content

nvidia: keep RC timer alive across runtime suspend - #1298

Open
lars76 wants to merge 1 commit into
NVIDIA:mainfrom
lars76:fix-rc-timer-runtime-suspend
Open

nvidia: keep RC timer alive across runtime suspend#1298
lars76 wants to merge 1 commit into
NVIDIA:mainfrom
lars76:fix-rc-timer-runtime-suspend

Conversation

@lars76

@lars76 lars76 commented Aug 16, 2026

Copy link
Copy Markdown

TL;DR

Any user with both an integrated GPU and a discrete NVIDIA GPU is affected.

  1. The laptop uses the integrated GPU.
  2. The unused NVIDIA GPU powers down.
  3. NVIDIA's monitoring timer fires while the GPU is powered down and stops permanently.
  4. The NVIDIA GPU is later powered up for a game or application.
  5. The GPU works, but its monitoring timer remains stopped until reboot.
  6. This patch keeps the timer running without waking the powered-down GPU.

Technical cause

nvidia_rc_timer_callback() rearms its one-second timer only when rm_run_rc_callback() returns NV_OK.

While the GPU is runtime-suspended, rm_run_rc_callback() returns NV_ERR_GENERIC because FULL_GPU_SANITY_CHECK() requires the GPU to be fully powered.

The timer is therefore not rearmed. Nothing starts it again when the GPU resumes, so the one-second callback mechanism remains stopped for the lifetime of the driver instance.

This disables periodic callbacks including the RC watchdog, GPU-presence checking, and GSP log polling. Other fallback mechanisms still exist, so the GPU can continue to work without this timer.

Fix

Rearm the timer while rc_timer_enabled remains set.

nv_stop_rc_timer() clears this flag before intentionally stopping the timer, so the change does not restart a deliberately disabled timer.

The timer continues to run on the host, but it does not wake a runtime-suspended NVIDIA GPU.

@CLAassistant

CLAassistant commented Aug 16, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants