Teste de desalocar NVMe (LOGO)
Esse teste verifica a conformidade da especificação do comando desalocar em unidades do controlador NVMe.
Detalhes do teste
Especificações |
|
Plataformas |
|
Versões com suporte |
|
Tempo de execução esperado (em minutos) | 2 |
Categoria | Desenvolvimento |
Tempo limite (em minutos) | 120 |
Requer reinicialização | false |
Requer configuração especial | false |
Tipo | automático |
Documentação adicional
Os testes nessa área de recurso podem ter documentação adicional, incluindo pré-requisitos, configuração e informações de solução de problemas, que podem ser encontradas nos tópicos a seguir:
Executando o teste
Antes de executar o teste, conclua a configuração de teste conforme descrito nos requisitos de teste: Pré-requisitos de teste de disco rígido.
O teste requer que uma unidade do controlador NVMe esteja conectada. A unidade também deve atender aos seguintes requisitos:
A unidade deve ser uma unidade que não seja de inicialização. O teste é destrutivo. Ele preparará o disco com a partição e a formatação corretas para o teste.
A unidade deve dar suporte ao comando Deallocate (Trim/Unmap/Discard). O teste enviará comandos Deallocate usando o comando DATA SET MANAGEMENT Trim.
Verifique se há uma unidade separada disponível para ser usada como uma unidade de agente. O teste escolherá automaticamente a unidade de registro em log. É importante minimizar a quantidade de atividade que ocorre na unidade fora do teste do logotipo. Como esse é um teste de desempenho, a atividade externa pode afetar os resultados.
Solucionando problemas
Para solução de problemas genéricos de falhas de teste do HLK, consulte Solução de problemas de falhas de teste do Windows HLK.
Verificar rastreamento WTT
Exibir o Log de Tarefas do Teste de Desempenho de Corte de Execução.
Abra o arquivo de log TrimPerf.wtl.
Verifique se há mensagens que possam resolver o problema.
Copie o arquivo de log .wtl. Esse é o rastreamento WTT descrito na seção Rastreamento WTT.
Verificar os resultados do comando iniciado
Procurar logs de trabalho do teste de desempenho de corte (LOGO).
Abra LaunchCommand.result.
Se o erro estiver relacionado à inicialização de um processo, determine por que o logman ou tracerpt falhou.
Nenhuma métrica encontrada
O teste depende da habilitação do rastreamento etw do Storport para obter as métricas de conclusão do comando. Consulte a seção Rastreamento etw para obter mais informações sobre como habilitar esse rastreamento.
Verifique se nenhum outro rastreamento ETW do Storport está registrando em log no momento. Somente um rastreamento ETW do Storport pode estar ativo por vez.
Se você receber a mensagem de erro "O test drive não dá suporte a trim/unmap/deallocate/discard", tente o seguinte:
Verifique a unidade NVMe para verificar se o bit LBPU da página VPD B2h está definido como um.
Tente enviar um comando Deallocate por meio do comando Trim do DATA SET MANAGEMENT.
Execute o teste novamente.
Falha no teste com erros de "Incompatibilidade"
O teste envia comandos Deallocate e verifica o conteúdo na região desalocada. Ele verifica os três cenários a seguir. Se todos eles falharem, ele relatará um erro.
Dados anteriores: o comando Deallocate não fez nada nessa região.
Todos os 0x00s: o comando Deallocate escreveu todos os 0x00s na região.
Todos os 0xFFs: o comando Deallocate gravou todos os 0xFFs na região.
O teste imprime o local de uma violação. Ao verificar o deslocamento de violação, use o deslocamento impresso no arquivo de log mais o deslocamento de bytes da violação.
Por exemplo, no arquivo de log, ele imprime:
Verificação de dados anteriores: incompatibilidade no byte X; Esperado: 0x3D, Real: 0xFF
Falha na validação de corte marcar no deslocamento Y, comprimento Z
Em seguida, o deslocamento do byte de violação é X + Y (em bytes).
Falha no teste com "evento de redefinição encontrado"
Desalocar comandos não deve causar evento de redefinição de disco. Se esse erro acontecer, marcar a implementação do comando NVMe deallocate.
Se você quiser depurar a falha executando casos de teste específicos, tente as seguintes opções de linha de comando:
Exibir todos os casos de teste com números: TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LoggerDriveLetter]: /DeviceType NVMe /Scenario Compliance /PrintTestCaseName
Execute um caso de teste específico por número de caso de teste: TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LoggerDriveLetter]: /Scenario Compliance /Precondition F /TestCase [TestCaseNumber]
Se você quiser depurar a falha mais rapidamente, tente desabilitar o pré-condições (preencha a unidade até 90% completa, leva muito tempo) adicionando o parâmetro /Precondition F da seguinte maneira:
- TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LoggerDriveLetter]: /DeviceType NVMe /Scenario Complaince /DiskSize 0 /Cooldown 2 /Precondition F
Para obter mais informações de solução de problemas, consulte Solução de problemas de teste de dispositivo.armazenamento.
Mais informações
O teste avalia as seguintes métricas:
Comando Deallocate
Todos os comandos Deallocate devem gravar todos os 0x00 ou todos os 0xFF ou dados anteriores nas regiões desalocadas.
Os comandos de desalocar não devem gerar eventos de redefinição de disco.
Comandos de E/S (com Deallocate enviando simultaneamente em regiões diferentes)
- Os comandos de desalocar não devem afetar a exatidão das operações de leitura/gravação.
Etapas manuais de reprodução
Abra o Editor do Registro e navegue até o seguinte caminho: HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Enum-> SCSI -> Disk&Ven_[nome da unidade NVMe (não controlador) em teste] -> [caminho da instância do dispositivo] -> Parâmetros do dispositivo -> Storport
Clique com o botão direito do mouse em Storport, clique em Novo e, em seguida, clique em Valor DWORD (32 bits).
Nomeie a chave como EnableLogoETW e defina o valor como 1.
Conecte a unidade em teste de volta ao sistema ou reinicie o computador para habilitar a chave do Registro.
Copie os arquivos TrimPerf.exe, EtwProcessor.dll, Wex.Common.dll e Wex.Communication.dll para o computador local.
Execute a linha de comando.
Sintaxe de comando
Comando | Descrição |
---|---|
TrimPerf.exe /DriveNumber [StorageDriveNumber] /LogDriveLetter [LogDriveLetter]: /DeviceType StorConsumer /Scenario Performance /DiskSize 0 /Cooldown 2 |
|
Executa o teste. |
Observação
Para obter ajuda de linha de comando para esse binário de teste, digite /h.
Lista de arquivos
Arquivo | Location |
---|---|
TrimPerf.exe |
<[testbinroot]>\nttest\driverstest\storage\wdk\ |
Etwprocessor.dll |
<[taefbinroot]>\ |
Wex.common.dll |
<[taefbinroot]>\ |
Wex.communication.dll |
<[taefbinroot]>\ |
Parâmetros
Nome do parâmetro | Descrição do parâmetro |
---|---|
WDKDeviceID | Caminho da instância do dispositivo a ser testado. |
LLU_NetAccessOnly | Conta de usuário para acessar o compartilhamento de arquivos de teste. |
LLU_LclAdminUsr | Conta de usuário para executar o teste. |
Destrutivo | (0,1) 0=Passivo, 1=Destrutivo |
StorageDriveNumber | Número da unidade de armazenamento |