Unix-system-calls-perfmonctl

提供:Dev Guides
移動先:案内検索

[top]#

[[File:]]

[[File:]]

|Web |This Site

  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

  Home     References     Discussion Forums     About TP  

perfmonctl()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

perfmonctl-PMUへのインターフェース

概要

#include <syscall.h> #include <perfmon.h> long perfmonctl(int fd, int cmd, void* arg, int narg);

説明

*perfmonctl* システムコールは、PMU(パフォーマンスモニタリングユニット)へのインターフェースを提供します。 PMUは、PMD(パフォーマンスモニタリングデータ)レジスタとPMC(パフォーマンスモニタリング制御)レジスタで構成され、ハードウェア統計が収集されます。
*perfmonctl* は、関数_cmd_を入力引数_arg._に適用します。引数の数は、入力変数_narg_によって定義されます。 _fd_は、操作するperfmonコンテキストを指定します。

実装されているコマンド_cmd_は次のとおりです。

Tag

説明

*PFM_CREATE_CONTEXT*

コンテキストを設定する

perfmonctl(int fd, PFM_CREATE_CONTEXT , pfarg_context_t *ctxt,1);

_fd_パラメーターは無視されます。 _ctxt_で指定されたとおりに新しいコンテキストが作成され、そのファイル記述子が_ctxt→ ctx_fd_で返されます。

ファイル記述子は、 perfmonctl に渡すだけでなく、 read (2)システムコールを使用してイベント通知( pfm_msg_t 型)を読み取るために使用できます。 select (2)と poll (2)の両方を使用して、イベント通知を待つことができます。

コンテキストは、 close (2)システムコールを使用して破棄できます。

*PFM_WRITE_PMCS*

PMCレジスタを設定する

perfmonctl(int fd, PFM_WRITE_PMCS , pfarg_pmc_t *pmcs,n);
*PFM_WRITE_PMDS*

PMDレジスタを設定する

perfmonctl(int fd, PFM_WRITE_PMDS , pfarg_pmd_t *pmds,n);
*PFM_READ_PMDS*

PMDレジスタを読み取る

perfmonctl(int fd, PFM_READ_PMDS , pfarg_pmd_t *pmds,n);
*PFM_START*

モニタリング開始

perfmonctl(int fd,PFM_START,arg,1); perfmonctl(int fd,PFM_START,NULL,0);
*PFM_STOP*

監視を停止する

perfmonctl(int fd,PFM_START,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_CREATE_EVTSETS*

イベントセットを作成または変更する

perfmonctl(int fd,PFM_CREATE_EVTSETS,pfarg_setdesc_t*desc,n);
*PFM_DELETE_EVTSETS*

イベントセットを削除する

perfmonctl(int fd,PFM_DELETE_EVTSET,pfarg_setdesc_t*desc,n);
*PFM_GETINFO_EVTSETS*

イベントセットに関する情報を取得する

perfmonctl(int fd,PFM_GETINFO_EVTSETS,pfarg_setinfo_t*info,n);

返り値

*performctl* は、操作が成功するとゼロを返します。 エラー時には-1が返され、エラーコードが *errno* に設定されます。

可用性

このシステムコールは、カーネル2.6以降のIA-64アーキテクチャでのみ実装されています。

関連項目

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]

広告

  
Advertisements