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 | |
sysvfork |
システムコール vfork(2) が発行されたときに起動するプローブ。 |
syswrite | |
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 によるすばやい処理を要求するオペレーティングシステム機構です。 |