問題の概要
NavAppの実行中に、画面表示が完全にフリーズします。カーネルログの調査によると 、これは アプリケーションのクラッシュではなく 、 Vivante GC7000 GPU(Galcore)の ハム です。
観察結果:
カーネルは30秒後に GPUタイムアウト を報告します(gpuTimeout = 30000)。
Galcoreは GPU状態ダンプを生成し、以下を呼び出します:
運転手は次のように報告します。
[ガルコア]:運転手を停止させて現場を維持しろ。
GPUの状態ダンプは複数のGPUブロックが詰まっていることを示しています:
FEはアイドル状態ではない
SHはアイドル状態ではありません
TXはアイドル状態ではありません
MCはアイドル状態ではありません
DMAが停止しているようです
ドライバ構成
現在のGalcore構成は以下のとおりです。
リカバリ = 0、GPUタイムアウト = 30000
GPUリカバリーが無効になっている(リカバリー=0)ため、ハングを検出するとドライバーは停止し、最後にレンダリングされたフレームだけが表示されるため、画面がフリーズする現象が確認されます。
GPUメモリの状態:
GPUのメモリ統計はメモリの使い尽きを示し ません 。
総GPUメモリ:256MB
使用量:約155MB
無料:約113MB
したがって、この問題はGPUのメモリ不足によるものではないようです。
GPUクライアント:
GPUデータベースによると、ハング時点で NavAppだけがアクティブなGPUクライアント です。
GPUの状態ダンプは、以下の以下の人から提出された複数のコマンドバッファを参照しています: NavApp
これは、NavAppが提出したレンダリングコマンドを実行している間にGPUのハングが発生したことを示しています。
応募スケジュール:
アプリケーションログから、GPUがハングする直前に以下のシーケンスが観察されています。
連続的な地図のズームイン/ズームアウト操作
オフラインの地図/タイルアクセス
経路計算
ルート情報表示
GPUのタイムアウトと状態ダンプ
GPUのハングは集中的なレンダリング作業の直後に発生します。
結論:
収集された証拠に基づくと:
カー ネルパニック 、 OOM、 アプリケーション クラッシュ はありません。
この故障は、Galcoreのウォッチドッグによって検出された GPUコマンドプロセッシングのハング です。
ハングが発生した際はNavAppがレンダリングクライアントですが、GPUドライバー内で障害が観察されます。
GPUのメモリ使用量は制限内であり、リソースの枯渇を示しているわけではありません。
TVSチームへの調査依頼:
Vivante GC7000 / Galcore GPUドライバーがレンダリング中にフリーズします。
この問題が既知のGPUドライバーかファームウェアの制限かは不明です。
GPUリカバリー(recovery=1)がこのプラットフォームでサポートされ推奨されているかどうか。
GPU状態ダンプの分析により、どのGPUコマンドまたはハードウェアブロックがタイムアウトを引き起こしたかを特定します。
BSPやGPUドライバー、ファームウェアのリリースなどが更新されていても、同様のGPUタイムアウト問題に対応しています。
こんにちは@Zhiming_Liu
SOC - iMX8qxpComek
BSPバージョン - Scarthgap L6.6.5
こんにちは、 @Ram2さん
SOCの部品番号、BSPのバージョン、および再現手順をお知らせください。
よろしくお願いします、
志明