PERFMONCTL

Section: Linux Programmer's Manual (2)
Updated: 2017-09-15
Index JM Home Page roff page
 

名前

perfmonctl - IA-64 の PMU (性能監視ユニット) のインターフェース  

書式

#include <syscall.h>
#include <perfmon.h>

long perfmonctl(int fd, int cmd, void *arg, int narg);
: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。  

説明

IA-64 固有の perfmonctl() システムコールは PMU (性能監視ユニット; performance monitoring unit) へのインターフェースを提供する。 PMU は PMD (performance monitoring data) レジスターと PMC (performance monitoring control) レジスターで構成され、 ハードウェアの統計を収集する。

perfmonctl() は、 操作 cmdarg で指定された入力引数で行う。 引数の数は narg で規定される。 fd 引数は操作対象の perfmon コンテキストを指定する。

cmd に指定できる値は以下のとおりである。

PFM_CREATE_CONTEXT
perfmonctl(int fd, PFM_CREATE_CONTEXT, pfarg_context_t *ctxt, 1);
コンテキストを用意する。
fd 引数は無視される。 新しい perfmon コンテキストを ctxt で指定した内容で作成し、 そのファイルディスクリプターを ctxt->ctx_fd で返す。
ファイルディスクリプターはそれ以降の perfmonctl() の呼び出しで使用したり、 read(2) を使ってイベント通知 (pfm_msg_t 型) を読み出したりするのに使用できる。 このファイルディスクリプターは select(2), poll(2), epoll(7) で状態監視 (ポーリング) することができる。
コンテキストを破棄するには、 そのファイルディスクリプターに対して close(2) を呼び出す。
PFM_WRITE_PMCS
perfmonctl(int fd, PFM_WRITE_PMCS, pfarg_reg_t *pmcs, n);
PMC レジスターを設定する。
PFM_WRITE_PMDS
perfmonctl(int fd, PFM_WRITE_PMDS, pfarg_reg_t *pmds, n);
PMD レジスターを設定する。
PFM_READ_PMDS
perfmonctl(int fd, PFM_READ_PMDS, pfarg_reg_t *pmds, n);
PMD レジスターを読み出す。
PFM_START
perfmonctl(int fd, PFM_START, NULL, 0);
監視を開始する。
PFM_STOP
perfmonctl(int fd, PFM_STOP, NULL, 0);
監視を停止する。
PFM_LOAD_CONTEXT
perfmonctl(int fd, PFM_LOAD_CONTEXT, pfarg_load_t *largs, 1);
指定したコンテキストをスレッドに接続する。
PFM_UNLOAD_CONTEXT
perfmonctl(int fd, PFM_UNLOAD_CONTEXT, NULL, 0);
指定したコンテキストをスレッドが切り離す。
PFM_RESTART
perfmonctl(int fd, PFM_RESTART, NULL, 0);
オーバーフロー通知を受信した後、 監視を再開する。
PFM_GET_FEATURES
perfmonctl(int fd, PFM_GET_FEATURES, pfarg_features_t *arg, 1);
PFM_DEBUG
perfmonctl(int fd, PFM_DEBUG, val, 0);
val が 0 以外の場合、デバッグモードを有効にする。 そうでない場合、 無効にする。
PFM_GET_PMC_RESET_VAL
perfmonctl(int fd, PFM_GET_PMC_RESET_VAL, pfarg_reg_t *req, n);
PMC レジスターをデフォルト値にリセットする。
 

返り値

perfmonctl() は操作が成功すると 0 を返す。 エラーの場合、 -1 が返り、 errno にエラーの原因を示す値が設定される。  

バージョン

perfmonctl() は Linux 2.4 以降で利用可能である。  

準拠

perfmonctl() は Linux 固有で、 IA-64 アーキテクチャーでのみ利用できる。  

注意

glibc はこのシステムコールに対するラッパー関数を提供していない。 syscall(2) を使って呼び出すこと。  

関連項目

gprof(1)

perfmon2 インターフェース仕様  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。


 

Index

名前
書式
説明
返り値
バージョン
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 03:33:32 GMT, December 05, 2022