NVMe – Aufheben der Zuordnung – Test (LOGO)
Mit diesem Test wird die Einhaltung der Spezifikation durch den deallocate-Befehl auf NVMe-Controllerlaufwerken überprüft.
Testdetails
Spezifikationen |
|
Plattformen |
|
Unterstützte Versionen |
|
Voraussichtliche Laufzeit (in Minuten) | 2 |
Kategorie | Entwicklung |
Zeitüberschreitung (in Minuten) | 120 |
Neustart erforderlich | false |
Erfordert eine spezielle Konfiguration | false |
Typ | automatic |
Zusätzliche Dokumentation
Tests in diesem Funktionsbereich enthalten möglicherweise zusätzliche Dokumentation, einschließlich Informationen zu Voraussetzungen, Einrichtung und Fehlerbehebung, die in den folgenden Themen zu finden sind:
Ausführen des Tests
Bevor Sie den Test ausführen, schließen Sie die Testeinrichtung wie in den Testanforderungen beschrieben ab: Testvoraussetzungen für Festplattenlaufwerke.
Für den Test muss ein NVMe-Controllerlaufwerk angeschlossen sein. Das Laufwerk muss darüber hinaus die folgenden Anforderungen erfüllen:
Das Laufwerk sollte kein Startlaufwerk sein. Der Test ist destruktiv. Er bereitet den Datenträger mit der korrekten Partitionierung und Formatierung für die Tests vor.
Das Laufwerk muss den Deallocate-Befehl (Trim/Unmap/Discard) unterstützen. Der Test sendet Deallocate-Befehle mithilfe des Befehls DATA SET MANAGEMENT Trim.
Stellen Sie sicher, dass ein separates Laufwerk verfügbar ist, das als Protokollierungslaufwerk verwendet werden kann. Während des Tests wird das Protokollierungslaufwerk automatisch ausgewählt. Es ist wichtig, den Umfang der Aktivitäten zu minimieren, die außerhalb des Logo-Tests auf dem Laufwerk stattfinden. Da es sich um einen Leistungstest handelt, können externe Aktivitäten die Ergebnisse beeinflussen.
Problembehandlung
Allgemeine Informationen zur Problembehandlung von HLK-Testfehlern finden Sie unter Problembehandlung von Windows HLK-Testfehlern.
Überprüfen der WTT-Ablaufverfolgung
Sehen Sie sich das Taskprotokoll von Trim-Leistungstest ausführen an.
Öffnen Sie die Protokolldatei TrimPerf.wtl.
Suchen Sie nach Meldungen, die das Problem beheben können.
Kopieren Sie die .wtl-Protokolldatei. Dies ist die WTT-Ablaufverfolgung, die im Abschnitt „WTT-Ablaufverfolgung“ beschrieben wird.
Überprüfen der Ergebnisse der gestarteten Befehle
Durchsuchen Sie die Auftragsprotokolle zum Trim-Leistungstests (LOGO).
Öffnen Sie die Datei „LaunchCommand.result“.
Wenn der Fehler im Zusammenhang mit dem Starten eines Prozesses steht, ermitteln Sie, warum logman oder tracerpt zu Fehlern geführt haben.
Keine Metriken gefunden
Der Test hängt davon ab, dass die Storport ETW-Ablaufverfolgung aktiviert ist, um die Metriken zur Befehlsausführung abzurufen. Weitere Informationen zum Aktivieren dieser Ablaufverfolgung finden Sie im Abschnitt „ETW-Ablaufverfolgung“.
Stellen Sie sicher, dass derzeit keine anderen Storport ETW-Ablaufverfolgungen protokolliert werden. Es kann jeweils nur eine Storport ETW-Ablaufverfolgung aktiv sein.
Wenn die Fehlermeldung „Das Testlaufwerk unterstützt trim/unmap/deallocate/discard nicht“ auftritt, versuchen Sie Folgendes:
Überprüfen Sie das NVMe-Laufwerk, um sicherzustellen, dass das LBPU-Bit auf der VPD B2h-Seite auf eins festgelegt ist.
Versuchen Sie, einen Deallocate-Befehl über den Trim-Befehl von DATA SET MANAGEMENT zu senden.
Führen Sie den Test erneut durch.
Test verursacht einen Fehlern wegen fehlender Übereinstimmung
Der Test übermittelt Deallocate-Befehle und überprüft den Inhalt in dem Bereich, dessen Zuordnung aufgehoben wurde. Dabei werden die folgenden drei Szenarien überprüft. Wenn alle fehlerhaft sind, wird ein Fehler gemeldet.
Vorherige Daten: Der Deallocate-Befehl hat in diesem Bereich nichts ausgeführt.
Nur 0x00: Der Deallocate-Befehl hat in diesem Bereich nur 0x00s geschrieben.
Nur 0xFF: Der Deallocate-Befehl hat in diesem Bereich nur 0xFFs geschrieben.
Der Test gibt den Ort aus, an dem der Verstoß aufgetreten ist. Verwenden Sie beim Überprüfen des Verstoßes den in der Protokolldatei ausgegebenen Offset sowie den Byteoffset des Verstoßes.
Beispiel für die Ausgabe in der Protokolldatei:
Überprüfen auf frühere Daten: Konflikt bei Byte X; Erwartet: 0x3D, Ist: 0xFF
Fehler bei der Überprüfung der Kürzung bei Offset Y, Länge Z
Der Byteoffset des Verstoßes beträgt dann X + Y (in Byte).
Der Test wird mit dem Fehler „Reset-Ereignis gefunden“ beendet.
Deallocate-Befehle sollten kein Reset-Ereignis auf dem Datenträger verursachen. Wenn ein solcher Fehler auftritt, überprüfen Sie die Implementierung des NVMe-Deallocate-Befehls.
Wenn Sie den Fehler debuggen möchten, indem Sie bestimmte Testfälle ausführen, können Sie die folgenden Befehlszeilenoptionen ausprobieren:
Anzeigen aller Testfälle mit Zahlen: TrimPerf.exe /DriveNumber [SpeicherLaufwerkNummer] /LogDriveLetter [ProtokollierungsLaufwerkNummer]: /DeviceType NVMe /Scenario Compliance /PrintTestCaseName
Ausführen eines bestimmten Testfalls anhand der Testfallnummer: TrimPerf.exe /DriveNumber [SpeicherLaufwerkNummer] /LogDriveLetter [ProtokollierungsLaufwerkNummer]: /Scenario Compliance /Precondition F /TestCase [TestFallNummer]
Wenn Sie den Fehler schneller debuggen möchten, können Sie versuchen, die Vorbedingung zu deaktivieren (füllen Sie das Laufwerk bis 90 % auf – zeitintensiv), indem Sie den Parameter „/Precondition F“ wie folgt hinzufügen:
- TrimPerf.exe /DriveNumber [SpeicherLaufwerkNummer] /LogDriveLetter [ProtokollierungsLaufwerkNummer]: /DeviceType NVMe /Scenario Complaince /DiskSize 0 /Cooldown 2 /Precondition F
Weitere Informationen zur Problembehandlung finden Sie unter Problembehandlung bei Device.Storage-Tests.
Weitere Informationen
Beim Test werden die folgenden Metriken ausgewertet:
Deallocate-Befehl
Alle Deallocate-Befehle sollten nur 0x00 oder nur 0xFF oder frühere Daten in die Bereiche schreiben, deren Zuordnung aufgehoben wird.
Deallocate-Befehle sollten keine Reset-Ereignisse auf dem Datenträger auslösen.
E/A-Befehle (während Deallocate gleichzeitig an verschiedenen Bereiche sendet)
- Deallocate-Befehle sollten keine Auswirkungen auf die Richtigkeit von Lese-/Schreibvorgängen haben.
Schritte zur manuellen Reproduktion
Öffnen Sie den Registrierungs-Editor, und navigieren Sie zum folgenden Pfad: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Enum > SCSI > Disk&Ven_[Name des getesteten NVMe-Laufwerks (nicht Controller)] > [Geräteinstanzpfad] > Device Parameters > Storport
Klicken Sie mit der rechten Maustaste auf Storport, klicken Sie anschließend auf Neu und dann auf DWORD-Wert (32-Bit).
Benennen Sie den Schlüssel mit EnableLogoETW, und legen Sie den Wert auf 1 fest.
Schließen Sie das getestete Laufwerk wieder an das System an, oder starten Sie den Computer neu, um den Registrierungsschlüssel zu aktivieren.
Kopieren Sie die Dateien „TrimPerf.exe“, „EtwProcessor.dll“, „Wex.Common.dll“ und „Wex.Communication.dll“ auf den lokalen Computer.
Führen Sie die Befehlszeile aus.
Befehlssyntax
Befehl | Beschreibung |
---|---|
TrimPerf.exe /DriveNumber [Nummer_des_Speicherlaufwerks] /LogDriveLetter [Buchstabe_des_Protokollierungslaufwerks]: /DeviceType StorConsumer /Scenario Performance /DiskSize 0 /Cooldown 2 |
|
Führt den Test aus. |
Hinweis
Geben Sie /h ein, um die Befehlszeilenhilfe für diese Testbinärdatei anzuzeigen.
Dateiliste
Datei | Standort |
---|---|
TrimPerf.exe |
<[testbinroot]>\nttest\driverstest\storage\wdk\ |
Etwprocessor.dll |
<[taefbinroot]>\ |
Wex.common.dll |
<[taefbinroot]>\ |
Wex.communication.dll |
<[taefbinroot]>\ |
Parameter
Parametername | Parameterbeschreibung |
---|---|
WDKDeviceID | Instanzpfad des zu testenden Geräts. |
LLU_NetAccessOnly | Benutzerkonto für den Zugriff auf die Testdateifreigabe. |
LLU_LclAdminUsr | Benutzerkonto für die Ausführung des Tests. |
Destructive | (0,1) 0=Passiv, 1=Destruktiv |
StorageDriveNumber | Nummer des Speicherlaufwerks |