Personalizando parâmetros do Spinlock
Por padrão, o sistema registra um evento spinlock para cada 1000 aquisições não realizadas e um evento spinlock para cada aquisição em disputa. A coleta de dados do Spinlock dá suporte a três parâmetros que permitem personalizar a coleta de dados. Para definir parâmetros de coleção de spinlock, use o comando a seguir.
xperf -setspinlocksample [spin_threshold] [acquire_sample_rate] [contention_sample_rate]
Parâmetros
spin_threshold
A instrumentação do spinlock fornece uma capacidade de rastrear bloqueios fortemente travados. Isso é obtido definindo um limite de rotação alto. Se um bloqueio girar menos que esse limite, nenhum evento spinlock será registrado. Por exemplo, se esse valor for 1, um evento spinlock será adquirido para cada tentativa de adquirir um bloqueio. Se esse valor for 10, um evento spinlock será registrado para cada dez tentativas de adquirir um bloqueio. O valor padrão é 1.
acquire_sample_rate
Taxa de exemplo na qual os eventos de spinlock são registrados durante um rastreamento. Por exemplo, se esse valor for 1000, um evento spinlock será registrado para cada 1.000 aquisições de eventos sem colisão. O valor padrão é 1000.
contention_sample_rate
Taxa na qual os eventos de spinlock são registrados quando ocorrem colisões. Por exemplo, se esse valor for 100, um evento spinlock será registrado para cada 100 colisões de spinlock. O valor padrão é 1.
Comentários
Os parâmetros da coleção Spinlock retornam aos valores padrão quando o sistema é reiniciado. Para garantir a coleta de dados válida, sempre consulte ou defina parâmetros de spinlock antes de iniciar a coleta de dados do evento.
Exemplo
O exemplo a seguir mostra como consultar os valores atuais.
xperf -spinlock
O exemplo a seguir define o limite de rotação como 1, a taxa de exemplo de aquisição como 1000 e a taxa de exemplo de contenção do spinlock como 100.
xperf -setspinlocksample 1 1000 100
Essa consulta retorna o resultado a seguir para os valores definidos no exemplo anterior.
Current Spinlock Spin Threshold = 1
Current Spinlock Acquire Sample Rate = 1000
Current Spinlock Contention Sample Rate = 100