You are not logged in.

#1 2025-11-20 10:39:45

pums974
Member
Registered: 2015-04-06
Posts: 13

The GPU fails to enter Runtime D3

The GPU fails to enter Runtime D3 (D3cold) power state. Attempts to query power management attributes via sysfs result in Input/Output errors, suggesting the GPU or its PCI interface becomes unresponsive to power management queries immediately after initialization. The GPU remains in D0 state continuously, draining battery, despite no active processes using it.

System Information:
   * OS: Arch Linux (Rolling)
   * Kernel: 6.17.8-arch1-1
   * GPU: NVIDIA T600 Laptop GPU (Turing architecture)
   * CPU: Intel Core 11th Gen (TigerLake-H) with UHD Graphics
   * Driver Version : 580.105.08

Diagnostic:

cat /sys/class/drm/card1/device/power_state
    D0
cat /sys/bus/pci/devices/0000:01:00.0/power/autosuspend_delay_ms returns
    cat: read error: Input/output error
cat /proc/driver/nvidia/gpus/0000:01:00.0/power
    Runtime D3 status:          ?
    Video Memory:               ?

    GPU Hardware Support:
     Video Memory Self Refresh: ?
     Video Memory Off:          ?

    S0ix Power Management:
     Platform Support:          Supported
     Status:                    ?

    Notebook Dynamic Boost:     ?

Configuration:

pacman -Ss nvidia | grep installed
core/linux-firmware-nvidia 20251111-1 [installed]
extra-testing/nvidia-open-dkms 580.105.08-3 [installed]
extra-testing/nvidia-utils 580.105.08-3 [installed]
extra-testing/opencl-nvidia 580.105.08-3 [installed]
extra/bumblebee 3.2.1-21 [installed]
extra/cuda 13.0.2-1 [installed]
extra/cuda-tools 13.0.2-1 [installed]
extra/cudnn 9.16.0.29-1 [installed]
extra/egl-gbm 1.1.2.1-1 [installed]
extra/egl-wayland 4:1.1.20-1 [installed]
extra/egl-x11 1.0.3-1 [installed]
extra/libnvidia-container 1.18.0-1 [installed]
extra/libvdpau 1.5-3 [installed]
extra/libxnvctrl 580.105.08-1 [installed]
extra/nccl 2.28.9-1 [installed]
extra/nvhpc 25.9-1 [installed]
extra/nvhpc-comm-libs 25.9-1 [installed]
extra/nvhpc-compilers 25.9-1 [installed]
extra/nvidia-container-toolkit 1.18.0-1 [installed]
extra/nvidia-open-dkms 580.105.08-2 [installed: 580.105.08-3]
extra/nvidia-prime 1.0-5 [installed]
extra/nvidia-settings 580.105.08-1 [installed]
extra/nvidia-utils 580.105.08-2 [installed: 580.105.08-3]
extra/nvtop 3.2.0-1 [installed]
extra/opencl-nvidia 580.105.08-2 [installed: 580.105.08-3]
extra/primus_vk 1.6.2-1 [installed]
extra/xf86-video-nouveau 1.0.18-1 (xorg-drivers) [installed]
multilib/lib32-nvidia-utils 580.105.08-1 [installed]
multilib/lib32-opencl-nvidia 580.105.08-1 [installed]
cat /etc/modprobe.d/nvidia.conf
    options nvidia-drm modeset=1
    options nvidia NVreg_UsePageAttributeTable=1

    options nvidia "NVreg_DynamicPowerManagement=0x02"

    options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp/nvidia

    #options nvidia NVreg_EnableGpuFirmware=0
grep CMDLINE /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet vga=current nvidia-drm.modeset=1 iommu=pt"
cat /lib/udev/rules.d/80-nvidia-pm.rules
    # Enable runtime PM for NVIDIA VGA/3D controller and HDMI Audio devices on adding device
    # These firsts lines are not officially recommended by NVidia, but have been found
    # to be necessary on some systems
    ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
    ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"
    ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", TEST=="power/control", ATTR{power/control}="auto"

    # Enable runtime PM for NVIDIA VGA/3D controller and HDMI Audio devices on driver bind
    ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
    ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"
    ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", TEST=="power/control", ATTR{power/control}="auto"

    # Disable runtime PM for NVIDIA VGA/3D controller and HDMI Audio devices on driver unbind
    ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
    ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"
    ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", TEST=="power/control", ATTR{power/control}="on"
○ nvidia-hibernate.service - NVIDIA system hibernate actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-hibernate.service; enabled; preset: disabled)
     Active: inactive (dead)

○ nvidia-persistenced.service - NVIDIA Persistence Daemon
     Loaded: loaded (/usr/lib/systemd/system/nvidia-persistenced.service; disabled; preset: disabled)
     Active: inactive (dead)

○ nvidia-powerd.service - nvidia-powerd service
     Loaded: loaded (/usr/lib/systemd/system/nvidia-powerd.service; disabled; preset: disabled)
     Active: inactive (dead)

○ nvidia-resume.service - NVIDIA system resume actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-resume.service; enabled; preset: disabled)
     Active: inactive (dead)

○ nvidia-suspend.service - NVIDIA system suspend actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend.service; enabled; preset: disabled)
     Active: inactive (dead)

○ nvidia-suspend-then-hibernate.service - NVIDIA actions for suspend-then-hibernate
     Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend-then-hibernate.service; disabled; preset: disabled)
     Active: inactive (dead)

Troubleshooting attempted (Failed):
    Disabling GSP Firmware (NVreg_EnableGpuFirmware=0).
    Tested with and without iommu=pt kernel parameter.
    Tested packages: nvidia, nvidia-open, nvidia-dkms nvidia-open-dkms
    Tested version: 580.105.08 and 580.95.05

Offline

#2 2025-11-20 10:50:14

pums974
Member
Registered: 2015-04-06
Posts: 13

Re: The GPU fails to enter Runtime D3

after removing

 bumblebee primus_vk xf86-video-nouveau lib32-primus

I got more data

cat /proc/driver/nvidia/gpus/0000:01:00.0/power
Runtime D3 status:          Not supported
Video Memory:               Active

GPU Hardware Support:
 Video Memory Self Refresh: Not Supported
 Video Memory Off:          Supported

S0ix Power Management:
 Platform Support:          Supported
 Status:                    Disabled

Notebook Dynamic Boost:     Not Supported

but I still have

cat: '/sys/bus/pci/devices/0000:01:00.0/power/autosuspend_delay_ms': Input/output error

And I'm still stuck on D0


EDIT: disabling the GSP (enablingNVreg_EnableGpuFirmware=0) is even better

cat /proc/driver/nvidia/gpus/0000:01:00.0/power

Runtime D3 status:          Enabled (fine-grained)
Video Memory:               Active

GPU Hardware Support:
 Video Memory Self Refresh: Supported
 Video Memory Off:          Supported

S0ix Power Management:
 Platform Support:          Supported
 Status:                    Disabled

Notebook Dynamic Boost:     Not Supported

but still stuck on D0 et still have the Input/output error

Last edited by pums974 (2025-11-20 13:51:27)

Offline

#3 2025-11-20 15:29:39

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,004

Re: The GPU fails to enter Runtime D3

iommu=pt

Are you trying to vfio the GPU?

Does it respond to

nvidia-smi

nb. that nvidia-smi will wake the GPU for sure, so if you're polling that or the GPU in any other form (test the behavior from the multi-user.target to make sure no fancy widget is checking the temperature there or stuff like that)

autosuspend_delay_ms is rather for USB runtime power management.
Speaking of which, does it help to "module_blacklist=nvidia_uvm,ucsi_ccg", https://wiki.archlinux.org/title/Kernel_parameters ?

Offline

Board footer

Powered by FluxBB