CPCプロバイダ
CPUパフォーマンス・カウンタ(cpc
)プロバイダにより、CPUパフォーマンス・カウンタ・イベントに関連付けられたプローブが使用できるようになります。
プローブは、選択したプロセッサ・モードで、特定のタイプのイベントが指定した回数発生したときに起動します。プローブが起動すると、システムの状態の様相をサンプリングして、システムの動作を推論できるようになります。イベント・カウンタ値の妥当な値は、イベントとワークロードによって異なります。プローブの起動が過剰にならないように、大きな値から始めます。その値を小さくすることで、統計的精度を向上させます。
CPUパフォーマンス・カウンタは有限のリソースであり、有効にできるプローブの数はハードウェアの能力によって異なります。ハードウェアの能力を超える数のcpc
プローブを有効にすると、エラーが返されます。ハードウェア・リソースが使用できない場合、リソースが使用可能になるまでプローブは失敗します。
CPCプローブのイベント・カウンタ値は大きな値から始めて、より正確にシステム・アクティビティが表現されるように試行錯誤しながら、その値を小さくします。
cpcプローブ
cpc
プロバイダによって使用可能になるプローブは、次のプローブ記述形式になります:cpc:::<event name>-<mode>-<count>
プローブ名の構成要素の定義を表に示します。表8-6 プローブ名の構成要素
構成要素 | 内容 |
event name | プラットフォーム固有または汎用のイベント名。 |
mode | イベントをカウントするための特権モード。有効なモードは、ユーザー・モード・イベントに対するuser、カーネル・モード・イベントに対するkernel、ユーザー・モードとカーネル・モードの両方のイベントに対するallです。 |
count | CPUに対してプローブが起動されるまでに、そのCPUで発生する必要があるイベントの数。このカウントは構成可能な値です。カウント値が大きすぎると、プローブの起動頻度が少なくなり、統計の信頼性が低下します。カウント値が小さすぎると、プローブの起動が頻繁になりすぎて、システムはトレース・アクティビティで溢れてしまいます。カウント値を選択するときには、大きな値から始めて、より正確な統計が得られるようになるまで値を小さくしていきます。 |
CPCプローブをリストすると、プローブのリストにカウント値の例が表示されます。このカウント値は、ガイドラインとして不自然に大きく設定されています。
cpcプローブの引数
次の表に、cpc
プローブの引数の型を示します。
表8-7 プローブの引数
arg0
|
プローブの起動時点でのカーネル内のプログラム・カウンタ(PC)。プローブの起動時点で現在のプロセスがカーネルで実行されていなかった場合は0 |
arg1
|
プローブの起動時点でのユーザーレベル・プロセスのPC。プローブの起動時点で現在のプロセスがカーネルで実行されていなかった場合は0 |
説明が示すように、arg0
がゼロ以外の場合、arg1
はゼロになり、arg0
がゼロの場合、arg1
はゼロ以外になります。