Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

PlatformRequestHandler: missing !bInit guard on bSystemParamLimitUpdate causes NV_ERR_INVALID_DATA at boot

オープン 初心者向け
#1,360 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@SammyTourani がすでに取り組んでいます。

2026年9月26日 から。

  • #1402 @SammyTourani による — オープン

評価

難易度
1/5
見積もり時間
1時間未満
初心者へのやさしさ
88/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
c

調査の方向性

platform_request_handler_ctrl.c を開き、2467 行付近の _pfmreqhndlrCallPshareStatus を調べ、bSystemParamLimitUpdate ブロックと隣接するガード付きブロックを比較します。ブートパスで 2 つの NV_ERR_INVALID_DATA アサーションが出力されなくなっている一方、ランタイムの PSHARESTATUS 更新では保留中の上限が引き続き適用されることを確認します。

索引モデルが issue の本文から書いたものです。

説明

Problem

At boot, PlatformRequestHandler fires two NV_ERR_INVALID_DATA assertions:

NVRM: GPU0 nvAssertOkFailedNoLog: Assertion failed: Invalid data passed [NV_ERR_INVALID_DATA] (0x00000025) returned from PlatformRequestHandler failed to get target temp from SBIOS @ platform_request_handler_ctrl.c:2174
NVRM: GPU0 nvAssertOkFailedNoLog: Assertion failed: Invalid data passed [NV_ERR_INVALID_DATA] (0x00000025) returned from PlatformRequestHandler failed to get platform power mode from SBIOS @ platform_request_handler_ctrl.c:2117

These are boot-only cosmetic (runtime works fine), but the root cause is a missing guard in the driver.

Root Cause

In _pfmreqhndlrCallPshareStatus (platform_request_handler_ctrl.c), the bSystemParamLimitUpdate block at line 2467 has no !bInit guard:

// line 2467 — MISSING guard
if (pPfmreqhndlrData->PFMREQHNDLRACPIData.bSystemParamLimitUpdate)
{
    _pfmreqhndlrUpdateTgpuLimit(pPlatformRequestHandler, pGpu);   // line 2473 → 2174 ASSERT
    _pfmreqhndlrUpdatePpmdLimit(pPlatformRequestHandler, pGpu, NV_FALSE);  // line 2482 → 2117 ASSERT
    pPfmreqhndlrData->PFMREQHNDLRACPIData.bSystemParamLimitUpdate = NV_FALSE;
}

Every other block in the same function has a guard:

Line Block Guard
2387 EDPpeak && !bInit
2442 UserConfigTGP && !bInit
2457 PlatformCustomization (bInit)
2467 bSystemParamLimitUpdate none

During init, PSHARESTATUS (func 0x20) returns _UPDATE_LIMIT_PENDING. The driver immediately calls _pfmreqhndlrUpdateTgpuLimit and _pfmreqhndlrUpdatePpmdLimit before PSHAREPARAMS (func 0x2A) has initialized the TGPU/PPMD sensor counters. The counters are bSupported=false && !bVolatile, so pfmreqhndlrGetPerfSensorCounterById returns NV_ERR_INVALID_DATA.

The init-time PPMD update at line 1218 (after PSHAREPARAMS) already handles boot-time PPMD initialization correctly. The bSystemParamLimitUpdate block should be deferred to runtime, matching the pattern used by every other block.

Fix

One-line change at platform_request_handler_ctrl.c:2467:

// BEFORE:
if (pPfmreqhndlrData->PFMREQHNDLRACPIData.bSystemParamLimitUpdate)

// AFTER:
if (pPfmreqhndlrData->PFMREQHNDLRACPIData.bSystemParamLimitUpdate && !bInit)

Environment

  • Driver: 610.57.04 (open)
  • GPU: RTX 5050 Laptop (GB207M, 10DE:2D98)
  • Kernel: 7.2.3-1-cachyos
  • Platform: Lenovo LOQ 15IRX11

Impact

Boot-only cosmetic. No runtime side effects. The TGPU limit is applied on first runtime PSHARESTATUS with _UPDATE_LIMIT_PENDING. The init-time PPMD update at line 1218 already handles boot-time sensor initialization.

主要言語
C
スター
17.4k
フォーク
1.9k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

NVIDIA/open-gpu-kernel-modules のほかの issue

NVIDIA/open-gpu-kernel-modules の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。