2025/09/17 03:54 The Asus Gaming Laptop ACPI Firmware Bug: A Deep Technical Investigation

やあ、ロボ子!今日はASUSのゲーミングノートPCに関する面白いニュースがあるのじゃ。

博士、こんにちは。どんなニュースですか?

どうやら、ASUSのROGシリーズ、StrixとかScarとかZephyrusとかのハイエンドゲーミングノートPCで、YouTubeを見てるとカクついたり、Discordで通話してるとノイズが入ったり、マウスカーソルがフリーズしたりする問題があるらしいのじゃ。

それは困りますね。原因は何なのでしょう?

原因はBIOSファームウェアのバグらしいぞ。ACPI(Advanced Configuration and Power Interface)っていう、電力管理とかを制御する部分に問題があるみたい。

ACPIですか。具体的にはどんな問題なのですか?

ACPI.sysっていうのがDPC(Deferred Procedure Call)を引き起こして、レイテンシが高くなっちゃうのじゃ。LatencyMonで計測したら、ACPI.sysが原因で高いDPCレイテンシが発生して、CPU 0に負荷が集中してたみたい。

DPCレイテンシが高いと、具体的にどんな影響があるんですか?

DPCレイテンシが高いと、処理が遅延して、カクつきやノイズの原因になるのじゃ。記事によると、最大割り込み処理レイテンシが65,816.60 μs、ISRの最大実行時間が536.80 μs(ACPI.sys)、DPCルーチン最大実行時間が5,998.83 μs(ACPI.sys)だったらしいぞ。

かなり深刻ですね。他に何か分かったことはありますか?

ETW(Event Tracing for Windows)トレースによると、30~60秒ごとに定期的なスパイクが発生して、_GPE._L02イベントが13.6ミリ秒もかかってたらしいのじゃ。しかも、ディスクリートGPUの電源オン/オフが繰り返されてたみたい。

ディスクリートGPUの電源オン/オフが繰り返されるのは、バッテリーの消費にも影響がありそうですね。

そうなんじゃ。MUXスイッチっていう、ディスクリートGPUを直接ディスプレイに接続するUltimate Modeで特に問題が発生するみたい。ファームウェアがdGPUの電源を周期的にオフにしようとするのが原因らしいぞ。

MUXスイッチの制御がうまくいってないんですね。

その通り!しかも、_PS3(GPU Power Off)コマンドが実行されると、システムがクラッシュする可能性もあるらしいぞ。恐ろしいのじゃ。

_GPE._L02イベントは何をしているんですか?

_GPE._L02イベントは、バッテリーとACアダプターの状態チェックをトリガーしてるのじゃ。バッテリーポーリングとGPU通知に関連する関数が呼び出されてるみたい。

バッテリーの状態チェックが、GPUの電源サイクルに影響を与えているんですね。

そういうことじゃ。ファームウェアを解析したら、_GPE._L02ハンドラー内でSleep()関数が使われてたり、LGPA()メソッドでGPUへの電力関連コマンドがMUXモードをチェックせずに送信されてたりするみたい。

Sleep関数が割り込み処理の中で使われているのは問題ですね。MUXモードのチェック漏れも、不具合の原因になりそうです。

まさにそう!他にも、PWCG()メソッドがバッテリーとACアダプターの状態をポーリングしたり、NOD2()メソッドがGPUドライバーに通知を送信して、_PS0/_DOS/_PS3の電源サイクルを誘発したりしてるみたい。

電力管理のコードが複雑に絡み合って、問題を引き起こしているんですね。

その通りじゃ。しかも、複数のASUSゲーミングノートPCモデルで同様の問題が発生してるみたい。ユーザー報告も2021年から多数あるらしいぞ。

ASUSには早急なファームウェアの修正を期待したいですね。

本当にそうじゃ!根本原因は、割り込みコンテキストの誤解、欠陥のある割り込み処理、プラットフォーム認識の欠如らしいぞ。ASUSさん、頑張って!

博士、今日は勉強になりました。ありがとうございました。

どういたしまして。しかし、これだけ高性能なPCでカクつきが発生するなんて、まるで高級レストランで出された料理に髪の毛が混入しているようなものじゃな!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。