返回值

操作成功时,perfmonctl()返回零。发生错误时,将返回-1并将errno设置为指示错误原因。

PERFMONCTL - Linux手册页

Linux程序员手册 第2部分
更新日期: 2017-09-15

另外参见

gprof(1)

perfmon2接口规范

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

语法

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

long perfmonctl(int fd, int cmd, void *arg, int narg);

Note:

There is no glibc wrapper for this system call; see NOTES.

版本

从Linux 2.4开始可以使用perfmonctl()。

备注

Glibc没有为该系统调用提供包装器;使用syscall(2)调用它。

名称

perfmonctl-与IA-64性能监视单元的接口

遵循规范

perfmonctl()是特定于Linux的,仅在IA-64体系结构上可用。

说明

特定于IA-64的perfmonctl()系统调用提供了与PMU(性能监视单元)的接口。 PMU由PMD(性能监视数据)寄存器和PMC(性能监视控制)寄存器组成,它们收集硬件统计信息。

perfmonctl()将操作cmd应用于arg指定的输入参数。参数的数量由narg定义。 fd参数指定要操作的perfmon上下文。

cmd支持的值为:

PFM_CREATE_CONTEXT
设置上下文。
fd参数将被忽略。按照ctxt中的指定创建一个新的perfmon上下文,并在ctxt->ctx_fd中返回其文件描述符。
该文件描述符可用于对perfmonctl()的后续调用中,并可用于使用read(2)读取事件通知(类型pfm_msg_t)。可以使用select(2),poll(2)和epoll(7)轮询文件描述符。
可以通过在文件描述符上调用close(2)来破坏上下文。
PFM_WRITE_PMCS
设置PMC寄存器。
PFM_WRITE_PMDS
设置PMD寄存器。
PFM_READ_PMDS
读取PMD寄存器。
PFM_START
开始监视。
PFM_STOP
停止监视。
PFM_LOAD_CONTEXT
将上下文附加到线程。
PFM_UNLOAD_CONTEXT
从线程中分离上下文。
PFM_RESTART
收到溢出通知后,重新启动监视。
PFM_GET_FEATURES
perfmonctl(int fd, PFM_GET_FEATURES, pfarg_features_t *arg, 1);
PFM_DEBUG
如果val非零,则启用调试模式,否则禁用。
PFM_GET_PMC_RESET_VAL
将PMC寄存器重置为默认值。
日期:2019-08-20 17:59:06 来源:oir作者:oir