5.2 Comando de Solicitação de Evento Assíncrono

5.2 Comando Solicitação de evento
assíncrono Os eventos assíncronos são usados ​​para notificar o software host sobre informações de status, erro e integridade à medida que esses eventos ocorrem. Para permitir que eventos assíncronos sejam relatados pelo controlador, o software host precisa enviar um ou mais comandos de Solicitação de Eventos Assíncronos ao controlador. O controlador especifica um evento para o host, concluindo um comando Asynchronous Event Request. O software host deve esperar que o controlador não execute o comando imediatamente; o comando deve ser concluído quando houver um evento a ser relatado.
O comando Asynchronous Event Request é enviado pelo software host para permitir o relatório de eventos assíncronos do controlador. Este comando não tem tempo limite. O controlador lança uma entrada na fila de conclusão para este comando quando há um evento assíncrono a ser relatado ao host. Se os comandos de solicitação de evento assíncrono estiverem pendentes quando o controlador for redefinido, os comandos serão abortados.
Todos os campos específicos de comando são reservados.
O software host pode enviar vários comandos de solicitação de evento assíncrona para reduzir a latência dos relatórios de eventos. O número total de comandos Asynchronous Event Request pendentes simultaneamente pendentes é limitado pelo Limite de Solicitação de Evento Assíncrono especificado na estrutura de dados do Identify Controller na Figura 109.
Eventos assíncronos são agrupados em tipos de eventos. As informações do tipo de evento são indicadas no Dword 0 da entrada da fila de conclusão do comando Asynchronous Event Request. Quando o controlador lança uma entrada na fila de conclusão para um comando pendente de Solicitação de evento assíncrono e, portanto, relata um evento assíncrono, os eventos subsequentes desse tipo de evento são mascarados automaticamente pelo controlador até que o host limpe esse evento. Um evento é limpo lendo a página de log associada a esse evento usando o comando Obter Página de Log (consulte a seção 5.14).
Os seguintes tipos de eventos são definidos:
   Evento de erro: indica um erro geral que não está associado a um comando específico. Para limpar esse evento, o software host lê o log de informações de erro (consulte a seção 5.14.1.1) usando o comando Obter página de log com o campo Retain Asynchronous Event desmarcado para '0'.
   Evento SMART / Status de integridade: indica um evento SMART ou de status de integridade. Para limpar esse evento, o software host lê o log de informações do SMART / Health (consulte a seção 5.14.1.2) usando Obter página de log com o campo Reter evento assíncrono desmarcado para '0'. As condições SMART / Health que acionam eventos assíncronos podem ser configuradas no recurso Configuração de evento assíncrono usando o comando Definir recursos (consulte a seção 5.21).
   Eventos do conjunto de comandos de E / S: Eventos definidos por um conjunto de comandos de E / S.
    Eventos do conjunto de comandos do NVM:
     Evento Disponível na Página de Registro de Reserva: Indica que uma ou mais páginas de registro de Notificação de Reserva (consulte a seção 5.14.1.9.1) estão disponíveis. Para limpar este evento, o software host lê a página de log de Notificação de Reserva usando o comando Obter Página de Log com o campo Reter Evento Assíncrono desmarcado para '0'.
     Evento Sanitize Operation Complete: Indica que uma operação de higienização foi concluída e o status está disponível na página de log Sanitize Status (consulte a seção 5.14.1.9.2). Para limpar esse evento, o software host lê a página de log Sanitize Status usando o comando Get Log Page com o campo Retain Asynchronous Event desmarcado para '0'.

   Evento específico do fornecedor: indica um evento específico do fornecedor. Para limpar esse evento, o software host lê a página de log específica do fornecedor indicada usando o comando Get Log Page com o campo Retain Asynchronous Event desmarcado para '0'.
Eventos assíncronos são relatados devido a uma nova entrada sendo adicionada a uma página de log (por exemplo, log de informações de erro) ou a uma atualização de status (por exemplo, status no log do SMART / Health). Uma alteração de status pode ser permanente (por exemplo, a mídia tornou-se somente leitura) ou transitória (por exemplo, a temperatura excedeu um limite por um período de tempo). O software host deve modificar o limite de eventos ou mascarar o evento para alterações de status temporárias e permanentes antes de emitir outro comando Asynchronous Event Request para evitar relatórios repetidos de eventos assíncronos.
Se o controlador precisar relatar um evento e não houver comandos pendentes de solicitação assíncrona de eventos, o controlador deverá enviar uma única notificação desse tipo de evento assíncrono quando um comando de solicitação assíncrona de evento for recebido. Se um comando Obter página de log limpar o evento antes de receber o comando Asynchronous Event Request ou se ocorrer uma condição de desligamento, uma notificação não será enviada.

5.2 Comandos de solicitação de evento
assíncrono Eventos assíncronos são usados ​​para notificar o software host sobre status, erros e informações de status operacional quando esses eventos ocorrem. Para que o controlador relate eventos assíncronos, o software host precisa enviar um ou mais comandos de solicitação de evento assíncrono ao controlador. O controlador atribui um evento ao host concluindo o comando "Asynchronous Event Request". O software host deve esperar que o controlador não execute o comando imediatamente; quando houver um evento a ser relatado, o comando deverá ser concluído.
Os comandos de solicitação de evento assíncrono são enviados pelo software host para permitir o relatório de eventos assíncronos do controlador. Este comando não atingiu o tempo limite. Quando houver um evento assíncrono a ser relatado ao host, o controlador emitirá uma entrada da fila de conclusão para este comando. Se os comandos "Solicitação de evento assíncrona" não forem concluídos quando o controlador for redefinido, esses comandos serão abortados.
Todos os campos específicos de comando são reservados.
O software host pode enviar vários comandos de solicitação de evento assíncrono para reduzir o atraso do relatório de eventos. Ao mesmo tempo, o número total de comandos de solicitação de evento assíncrono pendentes é limitado pelo limite de solicitação de evento assíncrono especificado na estrutura de dados "controlador de identificação" da FIG. 109.
Eventos assíncronos são divididos em tipos de eventos. As informações do tipo de evento são indicadas no Dword 0 da entrada da fila de conclusão do comando de solicitação de evento assíncrono. Quando o controlador emite uma entrada na fila de conclusão para um comando de solicitação de evento assíncrono pendente e, portanto, relata um evento assíncrono, o controlador bloqueia automaticamente os eventos subsequentes desse tipo de evento até que o host limpe o evento. Limpe o evento lendo a página de log associada ao evento usando o comando "Obter página de log" (consulte a seção 5.14).
Os seguintes tipos de eventos são definidos:
   Evento de erro: indica um erro geral que não está relacionado a um comando específico. Para limpar este evento, o software host usa o comando "Obter Página de Log" para limpar o campo "Manter Eventos Assíncronos" em "0" para ler o log de mensagens de erro (consulte 5.14.1.1).
   Evento de status SMART / Health: Indica SMART ou evento de status de saúde. Para limpar esse evento, o software host usa a "Obter página de log" e limpa o campo "Manter eventos assíncronos" para "0" para ler o registro de informações do SMART / Health (consulte 5.14.1.2) Você pode usar o comando "Função de instalação" para configurar o SMART / Run Status que aciona eventos assíncronos na função "Configuração de evento assíncrona" (consulte a Seção 5.21).
   Eventos do conjunto de comandos de E / S: Eventos definidos pelo conjunto de comandos de E / S.
    Eventos do conjunto de comandos do NVM:
       Eventos disponíveis da página de log reservada: indica que uma ou mais páginas de log de notificação reservadas (consulte a seção 5.14.1.9.1) estão disponíveis. Para limpar este evento, o software host usará o comando "Obter Página de Log" para ler a página "Notificação de Retenção" e limpe o campo "Manter Evento Assíncrono" para "0".
       Evento de operação concluída de limpeza: indica que a operação de limpeza foi concluída e há um status disponível na página de log "Status da limpeza" (consulte a Seção 5.14.1.9.2) Para limpar esse evento, o software host usa o comando "Obter página de log" para limpar o campo "Manter eventos assíncronos" em "0" para ler a página de log "Limpar status".

 Eventos específicos do fornecedor: indicam eventos específicos do fornecedor. Para limpar esse evento, o software host usa o comando "Obter Página de Log" para limpar o campo "Manter Eventos Assíncronos" em "0" para ler a página de log específica do fornecedor indicada.
À medida que novas entradas são adicionadas à página de log (por exemplo, logs de mensagens de erro) ou atualizações de status (por exemplo, o status no log do SMART / Health), eventos assíncronos são relatados. A mudança de estado pode ser permanente (por exemplo, a mídia tornou-se somente leitura) ou pode ser transitória (por exemplo, a temperatura excede o limite por um período de tempo). O software host deve modificar o limite de eventos ou mascarar eventos para alterações transitórias e permanentes de estado antes de emitir outro comando "solicitação de evento assíncrono" para evitar relatórios repetidos de eventos assíncronos.
Se o controlador precisar relatar um evento e não houver comandos de solicitação de evento assíncrono pendentes, o controlador deverá enviar uma única notificação do tipo de evento assíncrono quando o comando de solicitação de evento assíncrono for recebido. Se o comando "Obter página de log" limpar o evento antes de receber o comando "Solicitação de evento assíncrona" ou ocorrer uma queda de energia, nenhuma notificação será enviada.

5.2.1 Conclusão do comando
Uma entrada da fila de conclusão é lançada na Fila de conclusão do administrador se houver um evento assíncrono a ser relatado ao host. Os valores de status específicos do comando associados ao Asynchronous Event Request são definidos na Figura 45.

5.2.1 Conclusão do comando

Se houver eventos assíncronos a serem relatados ao host, a entrada da fila de conclusão será lançada na "fila de conclusão de gerenciamento". Os valores de status específicos do comando associados às solicitações de eventos assíncronos são definidos na Figura 45.

A palavra-chave 0 da entrada da fila de conclusão contém informações sobre o evento assíncrono. A definição do Dword 0 da entrada da fila de conclusão está na Figura 46.

A palavra-chave 0 da entrada da fila concluída contém informações sobre eventos assíncronos. A definição do Dword 0 para concluir a entrada da fila é mostrada na Fig. 46.

 

 As informações na Figura 47, Figura 48 ou Figura 50 são retornadas no campo Informações Assíncronas de Eventos, dependendo do Tipo de Evento Assíncrono.

Dependendo do tipo de evento assíncrono, as informações na Figura 47, Figura 48 ou Figura 50 são retornadas no campo "Informações Assíncronas de Eventos".

 

 

 

 

 

 

 

Acho que você gosta

Origin www.cnblogs.com/hswy/p/12671374.html
Recomendado
Clasificación