Übung 4: Identifizieren von Problemen mit USB-Geräten

Die USB-Hostcontroller können sich erst dann abschalten, wenn alle daran angeschlossenen Geräte in einen Energiesparmodus übergegangen sind. Dies bedeutet, dass USB-Geräte das selektive Energiesparen von Geräten mit modernem Standby unterstützen müssen, um sicherzustellen, dass der SoC in den DRIPS-Modus wechseln kann, während der Bildschirm abgeschaltet ist.

Teil 1: Verwenden eines SleepStudy-Berichts zum Identifizieren von Problemen

  1. Laden Sie den vorab generierten Bericht sleepstudy-report_2.htmlhier herunter.

  2. Öffnen Sie sleepstudy-report_2.html mit Ihrem bevorzugten Browser.

    • Hinweis: Im Standbymodus verbraucht das System lediglich 120 mW (siehe z. B. Standbysitzung 6).

    Screenshot: Beispieldaten zum Energieverbrauch des Systems, einschließlich Zeit, mWh, Akkustand in Prozent und Ausgleichszustand

  3. Klicken Sie auf Sitzung 10. Das System verbraucht in 11 Minuten 2,83 Watt, und der DRIPS-Prozentwert beträgt 0.

    Screenshot: Beispieldaten von Sitzung 10 im verbundenen Standbymodus, einschließlich Startzeit, Dauer, Leistungsänderung, Änderungsrate und prozentuale Dauer des Energiezustands

  4. Sehen Sie sich die Tabelle Top Offenders an.

    1. Der USB-Hostcontroller (_SB.PCI0.XHC) ist für 99 % der Sitzungsdauer aktiv.

    2. XHC ist der USB 3.0-Hostcontroller.

Screenshot: Beispieltabelle „Top Offenders“

Wenn der USB-Buscontroller mehrere Minuten lang im modernen Standbymodus aktiv ist, bedeutet dies in der Regel, dass ein an den Bus angeschlossenes USB-Gerät nicht in den Modus zum selektive Energiesparen wechselt. Dies liegt möglicherweise daran, dass das selektive Energiesparen vom Gerät nicht unterstützt wird. Der nächste logische Schritt besteht darin, anhand einer ETL-Ablaufverfolgung festzustellen, welches USB-Gerät sich in D0 befindet.

Weitere Informationen zum selektiven Energiesparen finden Sie im Thema zum selektiven Energiesparen für USB-Geräte auf MSDN.

Teil 2: Verwenden einer ETL-Ablaufverfolgung zum Identifizieren von Problemen

Zur weiterführenden USB-Untersuchung wurde eine ETL-Ablaufverfolgung auf demselben System aufgezeichnet, auf dem der SleepStudy-Bericht generiert wurde.

Um USB-Probleme zu untersuchen, verwenden Sie das Diagramm DState und die Tabelle.

  1. Laden Sie die vorab generierte Ablaufverfolgung USBProblem.etlhier herunter.

  2. Öffnen Sie USBProblem.etl mit WPA.

  3. Ziehen Sie das Diagramm DRIPS auf die Registerkarte Analyse, und legen Sie es dort ab.

  4. Wenn Sie sich die Spalte Non-Drips Reasons (Gründe für Ausbleiben von DRIPS) ansehen, sehen Sie, dass der USB xHCI-Hostcontroller das System daran hindert, in den DRIPS-Zustand zu wechseln.

    • Sie sehen, dass das Gerät während der Aufzeichnung zu 98 % aktiv war (siehe Spalte % Reason time [Zeit in Prozent für Ursache]).

      Screenshot: Beispieldaten in WPA

  5. Vergrößern Sie den Bereich, in dem der USB xHCI-Hostcontroller aktiv ist.

    1. Wählen Sie das Gerät in der Tabelle aus.

    2. Klicken Sie mit der rechten Maustaste auf das hellblaue Intervall im Diagramm, und wählen Sie „Vergrößern“ aus.

    3. Der Wert für % Reason time sollte jetzt 100 % betragen.

    Screenshot: Vergrößerte Spalte „Responsible Component“ (verantwortliche Komponente) in WPA

  6. Suchen Sie im Graph-Tester nach dem Diagramm Geräte-Dstate unter der Kategorie Leistung.

    Screenshot: Vergrößerte Diagramme zu Leistung, CPU-Frequenz, CPU-Ruhezustand und Geräte-Dstate in WPA

  7. Ziehen Sie das Diagramm Geräte-Dstate auf die Registerkarte Analyse, und legen Sie es dort ab.

    • Das Diagramm Geräte-DState zeigt die effektiven D-Zustände der Geräte im Zeitverlauf an. Anhand dieser Daten können Sie feststellen, ob ein bestimmtes Gerät in den entsprechenden D-Zustand übergeht, während sich das System im modernen Standbymodus befindet.

      • PoFx-Typ: Wird für Geräte verwendet, die über das Windows Power Management Framework verwaltet werden.

      • Nicht-PoFx-Typ: Wird für Geräte verwendet, die über USB angeschlossen sind.

  8. Verschieben Sie die Spalte DState nach rechts neben die Spalte Typ. Ihre Ansicht sollte nun folgendermaßen aussehen:

    Screenshot: DState-Beispieldaten

  9. Erweitern Sie die Kategorie Nicht-PoFX.

  10. Erweitern Sie die Zeile Dstate um den Wert 0x0 (D0-Zustand bzw. aktiv).

  11. Sortieren Sie nach der Spalte Name, und suchen Sie die USB-Geräte.

    Screenshot: DState-Beispieldaten basierend auf USB-Geräten

Die Daten in der DState-Tabelle zeigen, dass sich ein USB-Verbundgerät im Standbymodus 100 % der Zeit im D0-Zustand befand. Die Hardware-ID des Verbundgeräts lautet: USB\VID_0BB4&PID_0BA1\00000015B42EE80F0000000000000000. Dieses Gerät hat die Abschaltung des XHCI-Controllers verhindert.

Wenn das Gerät durch einen von Microsoft entwickelten Treiber verwaltet wird, melden Sie das Problem bitte an Microsoft. Andernfalls sollten Sie den für den Treiber verantwortlichen Hardwareanbieter informieren, um eine Lösung zu finden und sicherzustellen, dass das Gerät in den Modus zum selektiven Energiesparen wechselt.