PERFMON
Section: Devices and Network Interfaces (4)
Updated: i386
索引
jman
BSD mandoc
FreeBSD 2.2
索引
名称
perfmon
- CPU の性能モニタリングをするインタフェース
索引
書式
cpu I586_CPU
cpu I686_CPU
options PERFMON
索引
解説
perfmon
ドライバにより
Intel
の
Pentium
と
Pentium Pro
の
CPU 内部の性能モニタリング機能にアクセスできます。
これらのプロセッサには多彩なイベントについて発生回数または
(CPU サイクルでの) 持続時間のどちらかを測定するように設定できる
2 個の内部カウンタと、同じくクロックサイクルを数える
1 個のサイクルカウンタが実装されています。
ドライバではこれらの機能に対してデバイス形式によるインタフェースを提供
します。
性能モニタリングをするカウンタへの全てのアクセスは
デバイス型特殊ファイルの
``/dev/perfmon
''
を媒介として処理されます。
このデバイスが提供する
ioctl(2)
リクエストは多くあり
Aq Pa machine/perfmon.h
の中で定義され、このファイルの中には
Pentium
と
Pentium Pro
プロセッサの両方の色々なカウンタの定義もあります。
注意事項:
利用可能なイベントの集合はプロセッサ毎に異なります。
使用されるイベントコードが測定される CPU の型式に対して
適正であることを確認することはプログラマの責任です。
以下の
ioctl(2)
リクエストが定義されています:
- PMIOSETUP
-
(struct pmc
)
構造体に定義されているパラメータとフラグでカウンタを設定します。
以下のフィールドが
struct pmc
に定義されています:
- int pmc_num
-
指定するカウンタ番号です。
NPMC
(現在は 2) より小さくなければなりません。
- u_char pmc_event
-
モニタすべき特定のイベントコードで、
Aq Pa machine/perfmon.h
に定義されています。
- u_char pmc_unit
-
イベントの型に対応する装置のマスクの値です (
Intel
の文書を参照)。
- u_char pmc_flags
-
カウンタの働きを変更するフラグ (下記参照) です。
- u_char pmc_mask
-
カウンタのマスクの値です。つまり、本来、この値は指定された数のクロック
以上 (又は以下) の間継続するイベントにカウントを制限する為に使用されるしきい値
です。
次のような
pmc_flags
の値が定義されています:
- PMCF_USR
-
イベントをユーザモードでカウントします。
- PMCF_OS
-
イベントをカーネルモードでカウントします。
- PMCF_E
-
イベントを持続時間ではなくその数でカウントします。
- PMCF_INV
-
カウンタのマスクの比較の意味を逆転します。
- PMIOGET
-
(struct pmc
)
指定されたカウンタの現在の設定を返します。
- PMIOSTART
-
- PMIOSTOP
-
(int
)
指定したカウンタを起動 (停止) します。ハードウェアの欠陥により、番号順に
起動と停止をしなければなりません。
(即ち、カウンタ 0 は必ずまずカウンタ 1 を停止してから停止しなければなりません)。
ドライバではこの制約を
強制していません
(と言うのも将来の CPU ではこの制約はなくなるかも知れません)。
- PMIORESET
-
(int
)
指定されたカウンタを 0 にリセットします。カウンタはリセットする前に
PMIOSTOP
により停止されなければなりません。全てのカウンタは自動的に
PMIOSETUP
によってリセットされます。
- PMIOREAD
-
(struct pmc_data
)
カウンタの現在の値を取り出します。
pmc_data
構造体には次のような 2 個のフィールドが定義されています:
- int pmcd_num
-
読み出すカウンタの番号。
- int pmcd_value
-
64 ビットの符号付き整数での終了値。
将来、
Pentium Pro
プロセッサから
カウンタを直接読み出す為に
RDPMC
命令を使用出来る様になるでしょう。
- PMIOTSTAMP
-
(struct pmc_tstamp
)
タイムスタンプカウンタを読み出します。
pmc_tstamp
構造体では 2 個のフィールドが定義されています:
- int pmct_rate
-
カウンタの MHz でのおおよその速度です。
- quad_t pmct_value
-
64 ビット整数でのカウンタの現在の値です。
pmct_rate
フィールドに与えられるカウンタの速度は、
校正が困難な事やクロックの進行が不完全な為に、
往々にして正確ではないことに注意する事が大切です。
このフィールドについては
クロックが刻む速度を実際に表示するものというよりも
手がかりか又は適正さの検査くらいに考えるべきです。
索引
関連ファイル
- /dev/perfmon
-
カウンタへの文字型デバイスのインタフェース
- /usr/include/machine/perfmon.h
-
構造体とイベントコードを定義しているインクルードファイル
- /usr/share/examples/perfmon
-
全ての
Fn ioctl
コマンドの使用を具体的に例示したサンプルのソースコード
索引
関連項目
ioctl(2)
-
Intel Corporation
Pentium Pro Family Developer's Manual
January 1996
vol. 3
Operating System Writer's Manual
-
インテルジャパン株式会社
Pentium Pro ファミリー ディベロッパーズ マニュアル
January 1996
下巻
オペレーティング システム ライターズ マニュアル
索引
歴史
デバイスは
Fx 2.2
で初めて現れました。
索引
作者
ドライバは
An Garrett A. Wollman ,
MIT Laboratory for Computer Science
が書きました。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 関連ファイル
-
- 関連項目
-
- 歴史
-
- 作者
-
Time: 07:07:23 GMT, January 12, 2009