Compartilhar via


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
  • Device.Storage.ControllerDrive.NVMe.BasicFunction
Plataformas
  • Windows 10, edições de cliente (x86)
  • Windows 10, edições de cliente (x64)
  • Windows Server 2016 (x64)
Versões com suporte
  • Windows 10
  • Windows 10, versão 1511
  • Windows 10, versão 1607
  • Windows 10, versão 1703
  • Windows 10, versão 1709
  • Windows 10, versão 1803
  • Windows 10, versão 1809
  • Windows 10, versão 1903
  • Próxima atualização para Windows 10
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