PlatformRequestHandler: missing !bInit guard on bSystemParamLimitUpdate causes NV_ERR_INVALID_DATA at boot
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 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 はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NVIDIA/open-gpu-kernel-modules のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
NVIDIA/open-gpu-kernel-modules#1343 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
HKC G27H7Pro redundant long-HPD loop after DisplayPort link training (RTX 5060 Laptop, 610.57.04)オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
NVIDIA/open-gpu-kernel-modules#1323 ·
メンテナーはふだん 1 日以内に返信
-
build-problem
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
NVIDIA/open-gpu-kernel-modules#1155 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
build-problem
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
NVIDIA/open-gpu-kernel-modules#1154 · コメント 10 件 ·
メンテナーはふだん 1 日以内に返信
-
Bug template is outdated対応中かも @Rohithmatham12 が 123 日前に担当しました。 オープンbug
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
NVIDIA/open-gpu-kernel-modules#1147 ·
メンテナーはふだん 1 日以内に返信
NVIDIA/open-gpu-kernel-modules の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
libsdl-org/SDL#16464 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
backend
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
BasedHardware/omi#20940 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1時間未満 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信