다음을 통해 공유


연습 4 - USB 장치 문제 식별

USB 호스트 컨트롤러는 연결된 모든 디바이스가 저전력 상태가 된 후에만 전원을 끌 수 있습니다. 즉, USB 디바이스는 화면이 꺼져 있는 동안 SoC가 DRIPS가 될 수 있도록 최신 대기 상태 디바이스에서 선택적 일시 중단을 지원해야 합니다.

1부: SleepStudy 보고서를 사용하여 문제 식별

  1. 여기에서 미리 생성된 sleepstudy-report_2.html 보고서를 다운로드합니다.

  2. 즐겨찾는 브라우저에서 sleepstudy-report_2.html을 엽니다.

    • 시스템은 대기 중에 적게는 120mW만 소비할 수 있습니다(예: 대기 세션 6 참조).

    Screenshot shows example data of the systems energy consumption including time, mWh, percent of battery, and Drain state

  3. 세션 10을 클릭합니다. 시스템은 11분 동안 2.83와트의 에너지를 소비하고 DRIPS %는 0입니다.

    Screenshot shows Connected Standby Session 10 example data including start time, duration, energy change, change rate and percentage power state time

  4. 상위 위반자 테이블을 살펴보세요.

    1. USB 호스트 컨트롤러(_SB.PCI0.XHC)는 세션 기간의 99%에 대해 활성 상태입니다.

    2. XHC는 USB 3.0 호스트 컨트롤러입니다.

Screenshot shows example table of top offenders.

USB 버스 컨트롤러가 최신 대기 상태에서 한 번에 몇 분 동안 활성화된 경우 일반적으로 버스에 연결된 하나의 USB 디바이스가 선택적 일시 중단에 들어가지 않는데 이는 선택적 일시 중단을 지원하지 않기 때문일 수 있습니다. 다음 논리적 단계는 ETL 추적을 확인하여 D0에 남아 있는 USB 디바이스를 확인하는 것입니다.

선택적 일시 중단에 대한 자세한 내용은 MSDN의 USB 선택적 일시 중단 항목을 참조하세요.

2부: ETL 추적을 사용하여 문제 식별

USB 조사를 강화하기 위해 SleepStudy가 생성된 동일한 시스템에서 ETL 추적이 캡처되었습니다.

USB 문제를 조사하려면 DState 그래프와 테이블을 사용합니다.

  1. 여기에서 미리 생성된 USBProblem.etl 추적을 다운로드합니다.

  2. WPA를 사용하여 USBProblem.etl을 엽니다.

  3. 분석 탭에서 DRIPS 그래프를 끌어다 놓습니다.

  4. 비 Drips 이유를 살펴보고 USB xHCI 호스트 컨트롤러가 시스템에서 DRIPS로 들어가는 것을 방지하는 디바이스를 찾습니다.

    • 디바이스가 추적의 98% 동안 활성 상태임을 확인할 수 있습니다(% 이유 시간 열에 표시됨).

      Screenshot of sample data using WPA.

  5. USB xHCI 호스트 컨트롤러가 활성 상태인 영역을 확대합니다.

    1. 테이블에서 디바이스를 선택합니다.

    2. 그래프에서 연한 파란색 간격을 마우스 오른쪽 단추로 클릭하고 확대/축소를 선택합니다.

    3. 이제 % 이유 시간이 100%가 됩니다.

    Screenshot of WPA zoomed in on Responsible Component column

  6. Graph Explorer전원 범주에서 디바이스 Dstate 그래프를 찾습니다.

    Screenshot of WPA zoomed in on Power, CPU Frequency, CPU Idle States, and Device Dstate graphs

  7. 분석 탭에서 디바이스 Dstate 그래프를 끌어다 놓습니다.

    • 디바이스 DState 그래프는 시간 경과에 따른 디바이스의 효과적인 D 상태를 보여 줍니다. 데이터를 사용하여 시스템이 최신 대기 상태에 있는 동안 특정 디바이스가 적절한 D 상태에 들어가는지 확인할 수 있습니다.

      • PoFx 형식: Windows 전원 관리 프레임워크에서 관리하는 디바이스에 사용됩니다.

      • 비 PoFx 형식: USB 연결 디바이스에 사용됩니다.

  8. 형식 열 바로 옆에 있는 DState 열을 이동합니다. 뷰포트는 다음과 같이 표시되어야 합니다.

    Screenshot shows example DState data.

  9. 비 PoFX 범주를 확장합니다.

  10. 0x0 값(D0 상태 또는 활성)으로 Dstate 행을 확장합니다.

  11. 이름 열을 기준으로 정렬하고 USB 디바이스를 찾습니다.

    Screenshot shows example DState data based on USB devices.

D 상태 테이블의 데이터는 시스템이 대기 상태에 있는 동안 USB 복합 디바이스가 100%의 시간 동안 여전히 상태 D0에 있었음을 보여 줍니다. 복합 디바이스의 하드웨어 ID는 USB\VID_0BB4&PID_0BA1\00000015B42EE80F00000000000000000입니다. 이는 XHCI 컨트롤러의 전원이 꺼지는 것을 방지하는 디바이스입니다.

Microsoft에서 작성한 드라이버에서 디바이스를 관리하는 경우 Microsoft에 문제를 보고하세요. 그렇지 않은 경우 정보를 드라이버를 소유한 하드웨어 공급업체에 보고하여 솔루션을 찾고 디바이스가 선택적 일시 중단에 들어가도록 해야 합니다.