Unix入門
Unix Shell程式設計
高階Unix
Unix有用參考
Unix有用資源
精選閱讀
版權所有 © 2014 tutorialspoint
|
perfmonctl() - Unix,Linux系統呼叫
廣告
名稱perfmonctl - PMU介面概要
#include <syscall.h>
#include <perfmon.h>
long perfmonctl(int fd, int cmd, void *arg, int narg);
|
描述
perfmonctl 系統呼叫提供了一個 PMU(效能監控單元)介面。PMU 由 PMD(效能監控資料)暫存器和 PMC(效能監控控制)暫存器組成,硬體統計資料在此處收集。
perfmonctl 將對輸入引數 arg 應用函式 cmd。引數數量由輸入變數 narg 定義。fd 指定要對其進行操作的 perfmon 上下文。 已實現的命令 cmd 為:
標籤 | 描述 |
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);
|
|
返回值
操作成功時,perfmonctl 返回零。如果出錯,則返回 -1,並在 errno 中設定錯誤程式碼。
可用性自核心 2.6 起,此係統呼叫僅在 IA-64 架構上實現。
參見
廣告
|
|
|