Partilhar via


Avaliando dados do spinlock

O relatório do spinlock apresenta as seguintes informações sobre spinlocks:

  • Adquirir taxa de exemplo
  • Taxa de exemplo de contenção
  • Limite de rotação
  • Número de CPUs
  • Velocidade da CPU, em megahertz
  • Comprimento do rastreamento, em nanossegundos
  • Comprimento do rastreamento, em ciclos

Seções de relatório do Spinlock

As próximas seções do relatório mostram o uso do spinlock durante o período de tempo do perfil.

Spinlocks individuais

Cada spinlock é mostrado separadamente. Os spinlocks são classificados com os spinlocks "mais quentes" mostrados primeiro. Muitas vezes é possível identificar o gargalo do spinlock examinando os primeiros spinlocks.

As seguintes informações são apresentadas para cada spinlock:

  • Tipo de bloqueio
  • Endereço do kernel de bloqueio
  • Símbolo do bloqueio (observe que os spinlocks criados dinamicamente não têm símbolos)

Seção de relatório de resumo

Um relatório de resumo segue as seguintes informações:

  • Percentual de tempo de CPU gasto na aquisição de bloqueio
  • Percentual de tempo de CPU gasto na contenção de bloqueio
  • Taxa de aquisição de bloqueio
  • Taxa de colisão
  • Taxa de rotação
  • Taxa de contenção, amostrada e normalizada

As duas seções finais do relatório são os eventos ignorados devido a interrupções e à função de versão.

Eventos ignorados devido a interrupções

Interrupções podem ocorrer enquanto os spinlocks são mantidos. Quando isso ocorre, o tempo de tratamento de interrupção é incluído no tempo de retenção do spinlock e o tempo de retenção do spinlock aparece excessivamente longo. O Xperf não inclui eventos de spinlock que são mantidos enquanto uma interrupção é tratada ao calcular os tempos de retenção do spinlock. A Events skipped due to interrupts linha exibe o número de eventos que não foram incluídos no cálculo. Esse número normalmente é muito pequeno.

Funções de versão

Um spinlock pode ser adquirido ou liberado de caminhos de código diferentes. Uma lista de funções de versão do spinlock é exibida no final do relatório. A lista é classificada pelo tempo de retenção do spinlock. Informações adicionais sobre uma função de versão específica, como aquisição ou contenção, também são apresentadas.

Exemplo

O exemplo a seguir mostra como obter um resumo dos dados do spinlock.

xperf -i example.etl -symbols -o example.txt -a spinlock -summary

O exemplo a seguir mostra como limitar o número de registros retornados aos cinco spinlocks mais ativos.

xperf -i example.etl -symbols -o example.txt -a spinlock -summary -counts 5

Spinlock