EN JA
PMC.IAF(3)
PMC.IAF(3) FreeBSD Library Functions Manual PMC.IAF(3)

名称

pmc.iafIntel 固定関数性能カウンタのためのイベントの測定

ライブラリ

Performance Counters Library (libpmc, -lpmc)

書式

#include < pmc.h>

解説

Intel 固定関数 PMC は、 Intel Performance Measurement Architecture のバージョン 2 以降に準拠している CPU に存在しています。各固定関数 PMC は、特定のハードウェアイベントを測定します。 CPU で実装された固定関数 PMC の数は、異なります。関数 pmc_cpuinfo(3) を使用することによって、実行時に存在する固定関数 PMC の数を決定することができます。

Intel 固定関数 PMC は、次に文書化されています。 IA-32 Intel(R) Architecture Software Developer's Manual, Volume 3: System Programming Guide, Order Number 253669-027US, Intel Corporation, July 2008.

PMC ケーパビリティ

固定関数 PMC は、次のケーパビリティをサポートしています:
Capability Support
PMC_CAP_CASCADE No
PMC_CAP_EDGE No
PMC_CAP_INTERRUPT Yes
PMC_CAP_INVERT No
PMC_CAP_READ Yes
PMC_CAP_PRECISE No
PMC_CAP_SYSTEM Yes
PMC_CAP_TAGGING No
PMC_CAP_THRESHOLD No
PMC_CAP_USER Yes
PMC_CAP_WRITE Yes

クラス名接頭辞

これらの PMC は、“ iaf-”のクラス名接頭辞を使用して名前がつけられます。

イベント修飾子 (固定関数 PMC)

これらの PMC は、次の修飾子をサポートします:
os
リングレベル 0 で起こるイベントをカウントするために PMC を設定します。
usr
リングレベル 1、2 または 3 で起こるイベントをカウントするために PMC を設定します。
anythread
(Atom CPUs) プロセッサコアを共有するすべての論理的なプロセッサでイベントをカウントするために、PMC を設定します。デフォルトは、現在の論理的なプロセッサでイベントをカウントすることです。

os”または“ usr”修飾子のいずれも指定されていないなら、デフォルトは、両方を有効にすることです。

イベント指定子 (固定関数 PMC)

固定関数 PMC は、次のイベント名を使用して選択可能です:
INSTR_RETIRED.ANY
(固定関数カウンタ 0) リタイアした命令の数。
CPU_CLK_UNHALTED.CORE
(固定関数カウンタ 1) コアが停止されないコアサイクルの数。
CPU_CLK_UNHALTED.REF
(固定関数カウンタ 2) コアが停止されない参照サイクルの数。

使用例

コアが halt されなかったコアサイクルの数を測定するには、イベント記述子“iaf-cpu-clk-unhalted.core”を使用します。

リタイアされたユーザ命令の数を測定するには、イベント記述子“iaf-instr-retired.any,usr”を使用します。

Atom CPU のすべての論理的なプロセッサでリタイアされたユーザ命令の数を測定するには、イベント記述子“iaf-instr-retired.any,usr,anythread”を使用します。

歴史

pmc ライブラリは、 FreeBSD 6.0 ではじめて登場しました。

作者

Performance Counters Library (libpmc, -lpmc) ライブラリは、 Joseph Koshy <jkoshy@FreeBSD.org>によって書かれました。
November 14, 2008 FreeBSD