Snapdragon Samsung Galaxy S9 には、リモート再起動をトリガーするために悪用される可能性のある GPU 安定性バグがあります

click fraud protection

Samsung Galaxy S9 および Galaxy S9+ は、Qualcomm Snapdragon 845 システムオンチップを搭載し、米国、香港、ラテンアメリカの一部を含むいくつかの市場で発売されました。 英国の企業 GraphicsFuzz は、リモート電話の再起動/クラッシュを引き起こすために悪用される可能性がある GPU の安定性に関するバグを発見しました。

新しい サムスンギャラクシーS9 香港、米国、カナダ、ラテンアメリカの一部を含むいくつかの市場向けに、最新の Qualcomm Snapdragon 845 システムオンチップが含まれています。 サムスンは、一部の市場では自社製の Exynos SoC ではなく、最新のフラッグシップである Qualcomm Snapdragon SoC を選択することがよくあります。 これは、Samsung Galaxy S6 を除いて、通常米国に当てはまります。 平均的な消費者にとって、Exynos 9810 と Snapdragon 845 の違いはほとんどありません。 ただし、内部的には、チップセットの違いによりエクスペリエンスが大きく異なる場合があります。

アナンドテックSnapdragon Galaxy S9 と Exynos Galaxy S9 のレビューでは、パフォーマンスの明らかな違いが明らかになりました 2 つのモデル間のバッテリー寿命は、Snapdragon モデルの方が Exynos モデルよりもはるかに優れています。 英国に本拠を置く企業によると、これら 2 つの大きく異なるチップセットにより、今回の懸念はパフォーマンスの違いだけではないようです。 グラフィックスファズ. グラフィックスファズ は、デバイスの GPU の信頼性テストを専門とする新興企業です。 彼らは、グラフィックス ドライバーのバグを探すテストを開発し、発見された問題の根本原因を診断するための支援を提供します。 たとえば、チームがセキュリティ上の問題を発見したとします。 Samsung Galaxy S6 の ARM ドライバーに影響、彼らは Google からバグ報奨金を授与されました。 Snapdragon Samsung Galaxy S9 のテスト中に、 グラフィックスファズ Adreno 630 のグラフィックス ドライバーでエラーが見つかりました。

電話機全体の再起動をトリガーする Samsung 製の標準インターネット ブラウザで閲覧する場合は、有効な WebGL インターネット ページ経由でアクセスできます。

特に、複雑だが有効なシェーダーの Adreno 630 のレンダリングにエラーがあり、これを悪用するとデバイスがフリーズし、最終的には再起動する可能性があります。 シェーダは、単純に GPU が画像をレンダリングできるようにするプログラムです。 グラフィックスファズ は、このバグを引き起こす悪意のある意図で WebGL ページを設計したのではなく、デバイスの GPU 安定性の標準テスト中に偶然発見されたと述べています。 この遠隔クラッシュが再現可能であることが判明すると、同社は以下に連絡を取りました。 XDA-開発者 クアルコムとサムスンの両方との開示プロセスを促進するため。

Snapdragon Samsung Galaxy S9 での WebGL クラッシュの再現

どちらの会社の代表者にも連絡を取る前に、次のことを確認しました。 グラフィックスファズ私たちの独自のデバイスでの調査結果。 グラフィックスファズ テスト用の特別な Web ページを設定し、何が起こるかを確認するために Google Play ストアで最も人気のある 5 つのインターネット ブラウザを選択しました。 以下の表は、5 つの異なる Web ブラウザーで複雑なシェーダーをレンダリングした場合の効果を示しています。

テストされたデバイス: クアルコム Snapdragon 845 Samsung Galaxy S9+ (SM-G965U)

オペレーティング·システム: Android 8.0.0 オレオ SM-G965U

ウェブブラウザ

結果

Google Chrome v65.0.3325.109

約 2 秒間だけフリーズします

サムスン インターネット v7.0.10.46

フリーズすると、最終的には完全な再起動がトリガーされます

オペラ v45.1.2246.125351

電話がフリーズする

Microsoft Edge v1.0.0.1726

約 3 秒間だけフリーズします

Firefox v59.0.2

ブラウザがクラッシュする

Google Chrome と Microsoft Edge は両方とも、携帯電話を数秒間フリーズさせて WebGL エラーを生成しますが、デバイスは最終的には正常になります。 グラフィックスファズ しばらくの間 Google Chrome チームと話し合い、次のことを学んだと報告してくれました。 Chrome は、スマートフォンのフル充電を防ぐために、一定時間が経過すると GPU プロセスを終了するメカニズムを実装していること クラッシュ。 Opera は電話をフリーズしますが、再起動はトリガーしません。 Firefox アプリ自体はクラッシュしますが、電話は正常です。 最後に、Samsung インターネット経由でページにアクセスすると、携帯電話の完全な再起動が開始される前に、携帯電話の速度が最高速度まで低下します。

以下はクラッシュのデモビデオです。

エラーの詳しい説明

グラフィックスファズ より詳細な調査を実行したところ、電話機の再起動を引き起こす問題は次のとおりであることがわかりました。 Qualcomm Snapdragon 845 の一部である Qualcomm Adreno 630 の GPU ドライバー内 システムオンチップ。 グラフィックスファズ クラッシュに関するログを収集したので、以下に埋め込みました。 何が起こっているかを簡単に要約すると、携帯電話が複雑なシェーダーをレンダリングするときに、GPU は 「柵」と呼ばれるもの。 フェンスは、CPU 間の共有メモリへのアクセスを調整するために使用されます。 そしてGPU。 デスクトップとは異なり、モバイル GPU は CPU と同じ RAM にアクセスできるため、ゲームのプレイ時や他のレンダリングの際には、フェンスを使用してその共有メモリにアクセスします。 個別のグラフィックスを備えたデバイスでは、GPU 自体に独自のメモリがあります。 現在のすべての携帯電話は、ビデオ メモリとランダム アクセス メモリを RAM のフラッシュ ストレージと共有しています。 ここでの問題は、フェンスが完了できないことでカーネル パニックが発生し、電話機が再起動することです。

再起動前にカーネルパニックを完了する

[12681.035590] [2:crtc_commit: 117: 433] kgsl kgsl-3d0: |a6xx_snapshot_gmu| set FENCE toALLOWmode:0
[12681.035839] [2:crtc_commit: 117: 433] kgsl kgsl-3d0: |kgsl_device_snapshot| snapshot created at pa 0x000000016e500000 size 927400
[12681.035993] [0: kworker/u16:5:27740] kgsl kgsl-3d0: |kgsl_snapshot_save_frozen_<wbr />objs| kgsl_snapshot_save_frozen_objs start
[12681.036085][2:crtc_commit: 117: 433]Kernelpanic-notsyncing: !!!FENCETIMEOUT
[12681.036156][2:crtc_commit: 117: 433]CPU: 2 PID: 433 Comm: crtc_commit:117Tainted: GW 4.9.65-13087505#1
[12681.036248][2:crtc_commit: 117: 433]Hardwarename: SamsungSTARQLTEPROJECTRev14 (DT)
[12681.036319][2:crtc_commit: 117: 433]Calltrace:
[12681.036368] [2:crtc_commit: 117: 433] [] dump_backtrace+0x0/0x248
[12681.036438] [2:crtc_commit: 117: 433] [] show_stack+0x18/0x28
[12681.036509] [2:crtc_commit: 117: 433] [] dump_stack+0x98/0xc0
[12681.036578] [2:crtc_commit: 117: 433] [] panic+0x1e0/0x44c
[12681.036646] [2:crtc_commit:117: 433] [] sde_plane_wait_input_fence+<wbr />0x174/0x28c
[12681.036727] [2:crtc_commit:117: 433] [] sde_crtc_atomic_flush+0x1c4/<wbr />0x5e8
[12681.036807] [2:crtc_commit: 117: 433] [] drm_atomic_helper_commit_<wbr />planes+0x19c/0x1fc
[12681.036891] [2:crtc_commit: 117: 433] [] complete_commit+0x74/0x6a4
[12681.036960] [2:crtc_commit:117: 433] [] _msm_drm_commit_work_cb+0x48/<wbr />0x1c4
[12681.037038] [2:crtc_commit: 117: 433] [] kthread_worker_fn+0x78/0x194
[12681.037108] [2:crtc_commit: 117: 433] [] kthread+0xd8/0xf0
[12681.037172] [2:crtc_commit: 117: 433] [] ret_from_fork+0x10/0x20
[12681.037239][2:crtc_commit: 117: 433]Kernelloadedat: 0x800a0000, offsetfromcompile-timeaddress 20000
[12681.037331][2:crtc_commit: 117: 433]SMP: stoppingsecondaryCPUs

続きを読む

グラフィックスファズ は、この問題が Samsung インターネット ブラウザでのみ発生する理由は、GPU ウォッチドッグにあると考えています。 場合によっては、長時間実行されているシェーダーで GPU がハングすることがあります。その場合、ブラウザーまたは OS には通常、応答しないグラフィックス ドライバーを強制的に再起動する GPU ウォッチドッグが備えられています。 の グラフィックスファズ テスト シェーダーには for ループがいくつかあるため、レンダリングに時間がかかる可能性がありますが、それでも有効なシェーダーです。 Mali-G72 GPU を搭載した Exynos 9810 Samsung Galaxy S9 など、他のいくつかのデバイスはこのシェーダーをレンダリングできます。 したがって、チームは グラフィックスファズ このエラーは、Adreno 630 の GPU ドライバーの欠陥が原因で発生しているという結論に達しました。

Qualcomm Snapdragon 835 の Adreno 540 GPU を搭載し、同じバージョンの Samsung インターネット ブラウザを実行している Google Pixel 2 XL は、最高に遅くなります。 これは、このエラーが、シェーダーをレンダリングする Qualcomm GPU ドライバーと、Samsung ブラウザーのウォッチドッグがシェーダーを終了しないことに問題がある可能性があることを意味します。 サービス。

うまくいけば、Qualcomm は再起動の原因となっている GPU ドライバーの根本的な問題を診断し、修正されたドライバーをすぐに Samsung に提供できるでしょう。 もちろん、このアップデートがエンド ユーザーに反映されるまでにはしばらく時間がかかる可能性があります。 それまでの間、Samsung はこの問題を軽減するために Samsung Internet Web ブラウザのアップデートをプッシュする予定です。 Google の動作と一致する問題 (少なくとも Web ページ経由での悪用を防止) クロム。 この問題は Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+ に影響することが知られていますが、Snapdragon 845 を搭載した他のデバイスにも影響する可能性があります。

自分のモバイルまたはデスクトップ デバイスの GPU の信頼性をテストすることに興味がある場合は、次のチームを参照してください。 グラフィックスファズ は、有効なシェーダーの一部をデバイス上で実行できるようにする Web アプリのデモをまとめました。 その Web ページにアクセスするには、次の方法があります。 このリンクに従ってください.

開示スケジュール

  • 2018 年 3 月 28 日: グラフィックスファズ に手を差し伸べた XDA-開発者 問題を私たちに知らせています。 XDA-開発者 当社独自の Samsung Galaxy S9+ (SM-G965U) で問題を再現しました。
  • 2018年3月29日: グラフィックスファズ さらに詳しい情報を提供し、クアルコムとサムスンの従業員向けにバグを再現するための特別な Web ページを設定しました。
  • 2018年3月30日: XDA-開発者 はサムスンとクアルコムの両社に報告書の全詳細を連絡した。 クアルコムの担当者から折り返し連絡があり、メッセージを受信したことがわかりました。
  • 2018 年 4 月 2 日: Samsung の担当者から、メッセージを受信した旨の連絡がありました。
  • 2018年4月4日: サムスンの担当者は、サムスンの窓口に報告書を提出するよう勧めました。 セキュリティレポート ページ。 XDA-開発者 が報告書を提出し、Samsung のエンジニアがその報告書に割り当てられました。