Solaris 動的トレースガイド

プローブ

sysinfo プロバイダは、sys に分類されるカーネル統計情報内のフィールドに対応したプローブを使用できるようにします。sysinfo から提供されたプローブは、対応する sys 値が増分される直前に起動します。以下は、kstat(1M) コマンドを使って、sys に分類されるカーネル統計情報の名前と現在の値を両方表示する例です。


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

表 23–1 に、sysinfo プローブを一覧します。

表 23–1 sysinfo プローブ

bawrite

バッファーからデバイスへの非同期書き出しが行われる直前に起動するプローブ。 

bread

デバイスからのバッファーの物理読み取りが行われたときに起動するプローブ。bread は、デバイスがバッファーを要求したあと、処理の完了が保留される前に起動します。

bwrite

バッファーからデバイスへの書き出しが行われる直前に起動するプローブ。書き出しは、同期書き出し、非同期書き出しの両方を含みます。

idlethread

CPU がアイドルループに入ったときに起動するプローブ。 

intrblk

割り込みスレッドがブロックされたときに起動するプローブ。 

inv_swtch

実行中のスレッドが CPU の解放を強制されたとき起動するプローブ。 

lread

デバイスからのバッファーの論理読み取りが行われたときに起動するプローブ。 

lwrite

バッファーからデバイスへの論理書き込みが行われたときに起動するプローブ。 

modload

カーネルモジュールがロードされたときに起動するプローブ。 

modunload

カーネルモジュールがアンロードされたときに起動するプローブ。 

msg

msgsnd(2) または msgrcv(2) システムコールが発行されたあと、メッセージキュー操作が行われる前に起動するプローブ。

mutex_adenters

所有されている適応型ロックの獲得が試みられたときに起動するプローブ。このプローブが起動するときは、lockstat プロバイダの adaptive-block プローブ、または adaptive-spin プローブも起動します。詳細については、第 18 章lockstat プロバイダを参照してください。

namei

ファイルシステム内で名前の検索が試みられたときに起動するプローブ。 

nthreads

スレッドが作成されたときに起動するプローブ。 

phread

生の入出力読み取りが行われる直前に起動するプローブ。 

phwrite

生の入出力書き込みが行われる直前に起動するプローブ。 

procovf

システムのプロセステーブルのエントリがなくなったため新しいプロセスを作成できないときに起動するプローブ。 

pswitch

CPU が実行スレッドを切り替えたときに起動するプローブ。 

readch

正常に読み取りが行われたあと、この読み取りの実行スレッドに制御が移る前に起動するプローブ。読み取りに使用されるシステムコールは、read(2)readv(2)pread(2) のいずれかです。arg0 には、正常に読み取られたバイト数が格納されます。

rw_rdfails

書き込み側が読み取り/書き込みロックを保持している場合、または必要としている場合に、この読み取り/書き込みロックの読み取りロックが試みられたとき起動するプローブ。このプローブが起動するときは、lockstat プロバイダの rw-block プローブも起動します。詳細については、第 18 章lockstat プロバイダを参照してください。

rw_wrfails

読み取り/書き込みロックが 1 つ以上の読み取り側、または単一の書き込み側によって保持されている場合に、この読み取り/書き込みロックを保持していない書き込み側による書き込みロックが試みられたとき起動するプローブ。このプローブが起動するときは、lockstat プロバイダの rw-block プローブも起動します。詳細については、第 18 章lockstat プロバイダを参照してください。

sema

システムコール semop(2) が発行されたあと、セマフォー操作が行われる前に起動するプローブ。

sysexec

システムコール exec(2) が発行されたときに起動するプローブ。

sysfork

システムコール fork(2) が発行されたときに起動するプローブ。

sysread

システムコール read(2)readv(2)pread(2) のいずれかが呼び出されたときに起動するプローブ。

sysvfork

システムコール vfork(2) が発行されたときに起動するプローブ。

syswrite

システムコール write(2)writev(2)、または pwrite(2) が発行されたときに起動するプローブ。

trap

プロセッサトラップが発生したときに起動するプローブ。ただし、一部のプロセッサ、特に UltraSPARC 系プロセッサでは、一部の軽量トラップを処理するときにこのプローブを起動しないことがあります。 

ufsdirblk

UFS ファイルシステムによるディレクトリブロックの読み取りが行われたときに起動するプローブ。UFS については、ufs(7FS) のマニュアルページを参照してください。

ufsiget

i ノードの取得時に起動するプローブ。UFS については、ufs(7FS) のマニュアルページを参照してください。

ufsinopage

データページが関連付けられていないコア内の i ノードの再利用が可能になったあと起動するプローブ。UFS については、ufs(7FS) のマニュアルページを参照してください。

ufsipage

データページが関連付けられたコア内の i ノードの再利用が可能になったあと起動するプローブ。このプローブは、関連付けられたデータページがディスクにフラッシュされたあとで起動します。UFS については、ufs(7FS) のマニュアルページを参照してください。

writech

正常に書き込みが行われたあと、この書き込みの実行スレッドに制御が移る前に起動するプローブ。書き込みに使用されるシステムコールは、write(2)writev(2)pwrite(2) のいずれかです。arg0 には、正常に書き込まれたバイト数が格納されます。

xcalls

クロスコールが行われる直前に起動するプローブ。クロスコールは、一方の CPU から、別の CPU によるすばやい処理を要求するオペレーティングシステム機構です。