Provided by: manpages-ja-dev_0.5.0.0.20180315+dfsg-1_all bug

名前

       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_FEARURES, 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 プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。