- ASUS ROG 게이밍 노트북에서는 ACPI.sys DPC 지연 현상으로 인해 오디오 끊김, 마우스 멈춤, 비디오 재생 오류 등 심각한 성능 저하 문제 발생함
- 원인은 펌웨어(BIOS) 내 비효율적이거나 결함이 있는 ACPI Machine Language(AML) 코드에서 비롯된 것으로, 운영체제나 드라이버 교체로는 해결 불가능함
-
주기적인 하드웨어 이벤트(GPE) 와 내장 컨트롤러(EC) 관련 작업이 CPU 0 코어를 독점하며, Sleep() 호출 등 잘못된 인터럽트 처리로 인해 대기 시간과 시스템 반응성에 악영향을 미침
- 펌웨어는 MUX 모드 인식 없이 GPU 전원 주기를 반복하며, 이로 인해 시스템 일시정지부터 블루스크린까지 다양한 장애 유발함
- 이 문제는 2021년 이후 다양한 ASUS 게이밍 노트북 모델에서 일관되게 보고되고 있으며, ASUS 공식 대응은 진행되지 않음
프로젝트 의의 및 배경
이 오픈소스 리포지토리는 ASUS 게이밍 노트북(ROG 시리즈 등)에서 반복적으로 발생하는 ACPI.sys DPC 지연 문제의 근본 원인을 펌웨어 및 ACPI 테이블 단에서 분석한 심층 기술 리포트임. 대표적으로 Zephyrus, Strix, Scar 제품 등의 고성능 모델이 유튜브 시청, 음성/화상 통화, 마우스 움직임 등 기본적인 사용 환경에서도 끊김 현상, 랙, 오디오 오류를 빈번히 경험함. 문제는 드라이버, 윈도우 재설치, 리눅스 전환 등 다양한 시도가 모두 무효하며, 원인은 오직 펌웨어 내 잘못된 AML 코드에 있음.
주요 증상 및 측정 결과
-
LatencyMon 등 툴로 측정 시, 실시간 오디오 및 기타 작업 처리 불가 판정
-
ACPI.sys 드라이버가 인터럽트와 DPC 라우틴에서 특정 코어(CPU 0)를 장시간 점유함이 확인됨
- 인터럽트-프로세스 지연: 최고 65,816μs, 평균 23.29μs
- DPC 루틴 지연: 최고 5,998μs
-
CPU 0이 독점적으로 90초 이상 인터럽트 처리에 사용되며, 이는 로드 밸런싱 실패가 아니라 펌웨어가 단일 코어를 점유하도록 설계됨을 의미함
- 원인은 단순 윈도우 드라이버 이슈가 아니라, 펌웨어에서 비효율적이거나 결함이 있는 AML 코드가 ACPI.sys에 전달되어 실행됨에서 기인함. 특히 GPE(General Purpose Events) 및 Embedded Controller(EC) 트래픽이 문제를 유발함
세부 분석: 고급 ACPI 로그 추적 및 문제 패턴
-
Windows Performance Analyzer 및 ETW 트레이싱 결과, 해당 지연 현상이 30~60초 주기로 정기적으로 발생함이 드러남
- 주요 이벤트인 _GPE._L02 핸들러가 길게 실행되며(예: 13.6ms), 이로 인해 실시간 성능이 심각하게 저하됨
- GPU 전원 관리 명령이 MUX(다중그래픽 선택) 모드 상태와 무관하게 반복적으로 발생, 실제로는 dGPU만이 디스플레이에 연결된 환경에서 불가능한 상태 전환 시도가 계속됨
- 이 과정에서 컴퓨터가 블루스크린(BSOD)으로 종료되거나, 드라이버 스레드가 무한 대기 상태에 빠지는 등 치명적 장애가 유발됨
펌웨어 코드 추출 및 디컴파일
-
acpidump, iasl 등 도구로 ACPI 테이블을 추출 후 디컴파일하여 분석
- 문제의 GPE 핸들러는 간단하게
- _L02: _SB.PC00.LPCB.ECLV() 호출
- 하지만 ECLV() 메서드 내부에서는
- Sleep(25~100ms) 등 CPU 정지 호출 반복
- EC 이벤트 큐가 비어도 인위적으로 이벤트 생성(자기 재무장), 무한 반복 패턴 생성
- GPE 내부 슬립 호출은 인터럽트 컨텍스트에서 금기시되는 행위로, 한 코어가 수십 ms간 봉쇄되어 실시간 스케줄링/입력/오디오 등에 악영향을 줌
이벤트 처리/디스패치 및 전원 관리 로직
- GPE 이벤트는 배터리 상태 및 GPU 전원/디스플레이 전환 관련 래퍼 함수 호출로 이어짐
- PWCG(): 배터리/AC 어댑터 상태 폴링 및 OS 알림 신호 반복
- NOD2(): NVIDIA 드라이버에 전원 상태 재평가 알림
- MUX 모드 상태(HGMD == 0x03)을 체크해서 올바른 GPU를 대상으로 동작해야 하는데, 실제 구간에서는 이를 생략하여 모드 불문 무차별 전원사이클 명령을 반복함
시스템/모델 전반의 동일한 결함
- Scar 15, Zephyrus M16 등 여러 모델에서 이벤트 실행 시간, GPU 전원 사이클 주기, WMI 호출 패턴이 거의 동일하게 관측됨
- Armoury Crate(WMI 서비스)가 해당 현상을 더 악화시키는 것으로 추정됨
근본 원인 및 설계 실패 요약
-
인터럽트 컨텍스트 오해: 펌웨어에서 GPE 메서드 실행 중 GPE 신호를 마스킹하여 ACPI/EC 작업이 직렬화되고, 내부 Sleep() 호출로 지연 시간이 수십 ms에 달함
-
인터럽트 잘못 처리: GPE 소스 클리어 없이 무한 자기 재무장으로 반복 GPE 유발(주기 타이머 역할)
-
플랫폼(Hardware) 상태 비인식: MUX 모드 여부를 확인하지 않고 GPU 전원 관리 명령 전송
- 전체적으로 실시간 보장 요구(오디오/비디오 등)를 충족하지 못하며, 마이크로소프트 공식 HLK GlitchFree 테스트 불합격 요인이 됨
사용자 리포트 및 이슈 지속성
- 2021년부터 ASUS 공식 포럼, Reddit 등에서 같은 현상 반복 제기
- Strix, TUF, G시리즈 포함 전 라인업에서 증상 일관
- 2023~2024 최신 모델까지 동일 결함 지속, 임시 우회법만 존재
결론: 문제의 본질과 시사점
-
측정 증거: GPE 핸들러가 한 코어를 13ms 이상 봉쇄
-
코드 증거: 인터럽트 핸들러 내 Sleep() 명시
-
논리 증거: MUX 모드 체크 결여
-
시스템 증거: 여러 모델/BIOS에서 재현 확인
- "단지 비효율적 인터럽트 핸들러 내부 슬립과 GPU 상태 미확인"이라는 단순하지만 치명적인 설계 오류로, 수백만 ASUS 노트북 사용자가 기본 작업조차 끊김을 겪음
- ASUS는 본 분석 시점까지 공식 대응/수정 계획을 내놓지 않음
분석방법 및 참고
- 본 리포트는 Windows Performance Toolkit, acpidump, iasl 등 도구로 실기기에서 데이터 추출 및 AML 코드 직접 분석을 통해 도출
- 모든 주요 증거(트레이스, 메서드, 명령)는 재현 가능