Guia de rastreamento dinâmico Solaris

Testes

O provedor sysinfo disponibiliza testes que correspondem aos campos na estatística do kernel chamada sys: um teste fornecido por sysinfo é acionado imediatamente antes do valor sys correspondente ser incrementado. O exemplo seguinte mostra como exibir ambos os nomes e os valores atuais da estatística do sistema chamada sys usando o comando kstat(1M).


$ kstat -n sys
module: cpu                             instance: 0
name:   sys                             class:    misc
	bawrite                         123
	bread                           2899
	bwrite                          17995
...

Os testes do sysinfo estão descritos na Tabela 23–1.

Tabela 23–1 Testes do sysinfo

bawrite

Teste que é acionado sempre que um buffer está prestes a ser gravado assincronamente em um dispositivo. 

bread

Teste que é acionado sempre que um buffer é fisicamente lido a partir de um dispositivo. bread é acionado depois que o buffer tiver sido solicitado do dispositivo, mas antes que o bloqueio impeça a sua conclusão.

bwrite

Teste que é acionado sempre que um buffer está prestes a ser gravado em um dispositivo, seja síncrona ou assincronamente.

idlethread

Teste que é acionado sempre que uma CPU entra no loop inativo. 

intrblk

Teste que é acionado sempre que um segmento de interrupção é bloqueado. 

inv_swtch

Teste que é acionado sempre que um segmento em execução é forçado a desistir involuntariamente da CPU. 

lread

Teste que é acionado sempre que um buffer é logicamente lido a partir de um dispositivo. 

lwrite

Teste que é acionado sempre que um buffer é logicamente gravado a partir de um dispositivo. 

modload

Teste que é acionado sempre que um módulo do kernel é carregado. 

modunload

Teste que é acionado sempre que um módulo do kernel é descarregado. 

msg

Teste que é acionado sempre que uma chamada do sistema msgsnd(2) ou msgrcv(2) é feita, mas antes que as operações da fila de mensagens tenha sido realizada.

mutex_adenters

Teste que é acionado sempre que é feita uma tentativa de adquirir o bloqueio adaptativo com proprietário. Se este teste for acionado, um dos adaptive-block do provedor lockstat ou testes do adaptive-spin também serão acionados. Consulte o Capítulo 18Provedor lockstat para obter detalhes.

namei

Teste que é acionado sempre que uma pesquisa de nome é tentada no sistema de arquivos. 

nthreads

Teste que é acionado sempre que um segmento é criado. 

phread

Teste que é acionado sempre que uma leitura de E/S básica está prestes a ser realizada. 

phwrite

Teste que é acionado sempre que uma gravação de E/S básica está prestes a ser realizada. 

procovf

Teste que é acionado sempre que um novo processo não pode ser criado porque o sistema está fora das entradas de tabela do processo. 

pswitch

Teste que é acionado sempre que uma CPU alterna entre executar um segmento para executar outro. 

readch

Teste que é acionado depois de cada leitura bem sucedida, mas antes que o controle seja retornado para o segmento que está realizando a leitura. Uma leitura pode ocorrer através das chamadas do sistema read(2), readv(2) ou pread(2) arg0 contém o número de bytes que foram lidos com êxito.

rw_rdfails

Teste que é acionado sempre que há uma tentativa de ler-bloquear um bloqueio de leitores/gravador quando o bloqueio já está sendo mantido por um gravador, ou desejado por um gravador. Se este teste for acionado, o teste rw-block do provedor lockstat também será acionado. Consulte o Capítulo 18Provedor lockstat para obter detalhes.

rw_wrfails

Teste que é acionado sempre que há uma tentativa de gravar-bloquear um bloqueio de leitores/gravador quando o bloqueio é mantido por alguns leitores ou por outro gravador. Se este teste for acionado, o teste rw-block do provedor lockstat também será acionado. Consulte o Capítulo 18Provedor lockstat para obter detalhes.

sema

Teste que é acionado sempre que uma chamada do sistema semop(2) é feita, mas antes que quaisquer operações de semáforo tenham sido realizadas.

sysexec

Teste que é acionado sempre que uma chamada do sistema exec(2) é feita.

sysfork

Teste que é acionado sempre que uma chamada do sistema fork(2) é feita.

sysread

Teste que é acionado sempre que uma chamada do sistema read(2), readv(2) ou pread(2) é feita.

sysvfork

Teste que é acionado sempre que uma chamada do sistema vfork(2) é feita.

syswrite

Teste que é acionado sempre que uma chamada do sistema write(2), writev(2) ou pwrite(2) é feita.

trap

Teste que é acionado sempre que uma interceptação do processador ocorre. Observe que alguns processadores, em particular variantes do UltraSPARC, manipulam algumas interceptações leves através de um mecanismo que não faz com que este teste seja acionado. 

ufsdirblk

Teste que é acionado sempre que um bloqueio de diretório é lido a partir de um sistema de arquivos UFS. Consulte ufs(7FS) para obter detalhes sobre UFS.

ufsiget

Teste que é acionado sempre que um inode é recuperado. Consulte ufs(7FS) para obter detalhes sobre UFS.

ufsinopage

Teste que é acionado depois que um inode no núcleo sem quaisquer páginas de dados associadas tiver sido disponibilizado para reutilização. Consulte ufs(7FS) para obter detalhes sobre UFS.

ufsipage

Teste que é acionado depois que um inode no núcleo com quaisquer páginas de dados associadas tiver sido disponibilizado para reutilização. Este teste é acionado depois que as páginas de dados associadas forem movidas para o disco. Consulte ufs(7FS) para obter detalhes sobre UFS.

writech

Teste que é acionado depois de cada gravação bem sucedida, mas antes que o controle seja retornado para o segmento que está realizando a gravação. Uma leitura pode ocorrer através de chamadas do sistema write(2), writev(2) ou pwrite(2). arg0 contém o número de bytes que foram gravados com êxito.

xcalls

Teste que é acionado sempre que uma chamada cruzada está prestes a ser feita. Uma chamada cruzada é o mecanismo do sistema operacional de uma CPU para solicitar o funcionamento imediato de outra CPU.