Runtime D3 (RTD3) disabled on Lenovo LOQ 15IAX9 due to SBIOS NV_ERR_INVALID_DATA (0x25) in platform_request_handler_ctrl.c (Driver 615.78.08)

未关闭
#1,489 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
c, linux

调研方向

Start by examining the reported PlatformRequestHandler failures at platform_request_handler_ctrl.c:2118 and :2175, then trace how those errors lead to Runtime D3 being marked unsupported. Reproduce on the Lenovo LOQ 15IAX9 with driver 615.78.08 and inspect the attached nvidia-bug-report log. Done means the GPU can enter Runtime D3 when idle despite the SBIOS returning NV_ERR_INVALID_DATA.

由索引模型根据 Issue 内容生成。

描述

bug
NVIDIA Open GPU Kernel Modules Version

615.78.08

Please confirm this issue does not happen with the proprietary driver (of the same version). This issue tracker is only for bugs specific to the open kernel driver.
  • I confirm that this does not happen with the proprietary driver package.
Operating System and Version

CachyOS

Kernel Release

7.3.0-4-cachyos #1 SMP PREEMPT_DYNAMIC Fri, 23 Oct 2026 15:03:58 +0000 x86_64 GNU/Linux

Please confirm you are running a stable release kernel (e.g. not a -rc). We do not accept bug reports for unreleased kernels.
  • I am running on a stable kernel release.
Hardware: GPU

GPU 0: NVIDIA GeForce RTX 3050 6GB Laptop GPU (UUID: GPU-7181b4f5-7620-7aa1-e059-5b3dc0b5c465)

Describe the bug

On the Lenovo LOQ 15IAX9 (Intel i5-12600HX + RTX 3050 Laptop GPU), the discrete GPU fails to transition into Runtime D3 (D3cold) and remains permanently stuck idling in D0/P8 state (consuming ~3.18W).

During driver initialization, calls to PlatformRequestHandler fail because the SBIOS returns NV_ERR_INVALID_DATA (0x00000025) when querying target temperature and platform power modes (platform_request_handler_ctrl.c:2175 and platform_request_handler_ctrl.c:2118). Following this assertion failure, the driver marks Runtime D3 status: Not supported in /proc/driver/nvidia/gpus/0000:01:00.0/power.

This occurs despite user-space and kernel configurations being set correctly (NVreg_DynamicPowerManagement=0x02, udev runtime PM rules active, companion HD audio controller entering suspended/D3hot, and PCIe upstream bridge 0000:00:01.0 having d3cold_allowed=1).

To Reproduce

Markdown

  1. Boot a Lenovo LOQ 15IAX9 laptop (Intel Core i5-12600HX, RTX 3050 6GB Laptop GPU) into Linux with nvidia-open (version 615.78.08).
  2. Configure fine-grained dynamic power management in /etc/modprobe.d/nvidia.conf:
    options nvidia NVreg_DynamicPowerManagement=0x02
    
     Set runtime PM to auto for upstream PCIe root port (0000:00:01.0), GPU (0000:01:00.0), and audio (0000:01:00.1) via udev rules.
    
     Ensure no display server or application holds open references to the discrete GPU (fuser /dev/nvidia* is clean).
    
     Inspect driver runtime power interface:
     Bash
    
     cat /proc/driver/nvidia/gpus/0000:01:00.0/power
    
     Observe that Runtime D3 status reports Not supported.
    
     Inspect the kernel log:
     Bash
    
     sudo dmesg | grep -i PlatformRequestHandler
    
     Observe the assertion failures: NV_ERR_INVALID_DATA (0x00000025) returned from PlatformRequestHandler at platform_request_handler_ctrl.c:2175 and platform_request_handler_ctrl.c:2118.
    
    
    
Bug Incidence

Always

nvidia-bug-report.log.gz

nvidia-bug-report.log.gz

More Info
Expected Behavior

When idle and with no active clients holding /dev/nvidia*, the discrete GPU should transition into Runtime D3 (D3cold) state to save power (~0W). Failure to retrieve platform target temperature or power modes from SBIOS (0x00000025 / NV_ERR_INVALID_DATA) should gracefully fall back to default driver thermal/power limits or be bypassed via a quirk, rather than completely disabling Runtime D3 platform support.

Additional Information
  • The companion HD Audio controller (0000:01:00.1) enters D3hot / suspended without issue.
  • The upstream root port (0000:00:01.0) has d3cold_allowed=1 and ASPM is active.
  • Under Windows on the exact same hardware, the dGPU powers down fully to D3cold / 0W, verifying that the hardware power-gating rails are fully capable of D3cold.
  • Tested with both standard and custom ACPI OSI parameters (e.g., acpi_osi="Windows 2022"), but the SBIOS continues to return 0x25 to PlatformRequestHandler calls in Linux.
主要语言
C
星标
17.5k
派生
1.9k
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

NVIDIA/open-gpu-kernel-modules 的其他 Issue

查看 NVIDIA/open-gpu-kernel-modules 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。