pm_set_program_mx 和 pm_set_program_mm 子例程

用途

在计数器多路复用模式和多模式下设置系统范围的性能监视器编程。

性能监视器 API 库 (libpmapi.a)

语法


#include <pmapi.h>

int pm_set_program_mx (*prog)
pm_prog_mx_t *prog;

int pm_set_program_mm (*prog_mm)
pm_prog_mm_t *prog_mm;

描述

pm_set_program_mxpm_set_program_mm 子例程以计数器多路复用方式设置系统范围的性能监视器编程。

pm_set_program_mx 设置包含要计数的事件数组的列表以及要计数的方式。 要计数的事件位于事件标识列表的数组中。 该方式是所有事件列表的全局方式。

pm_set_program_mm 设置包含要计数的事件数组的列表,以及用于计数每个事件数组的关联方式。 为每个事件数组定义计数方式。

必须从 pm_initialize 子例程返回的列表中选择标识。

计数方式包括 "用户方式" 和 "内核方式" 或其中任一方式, "初始计数状态" 和 "进程树方式"。 仅对于调用进程及其后代, "进程树方式" 设置为 "开启"。 对于 "用户方式" 和 "内核方式" ,缺省值设置为 "关闭"。 初始缺省状态设置为延迟计数,直到调用 pm_start 子例程,并对系统中运行的所有进程的活动进行计数。

当您使用 pm_set_program_mm 子例程进行多方式计数时, "进程树方式" 和 "开始计数方式" 由它们在第一个编程集中定义的值固定。

如果列表包含可与阈值一起使用的事件 (如 pm_init 子例程所指示) ,那么也可以指定阈值。

在某些平台上,可以指定事件组,而不是个别事件。 要完成此操作,请在方式中设置 is_group 位字段,并将组标识放入每个事件数组的第一个元素中。 (组标识由 pm_init 子例程获取。)

参数

描述
* 程序 指定要在 "性能监视器" 设置中使用的事件和方式。 它支持以下方式:
PM_USER
对在用户方式下运行的进程进行计数 (缺省设置为 "关闭")。
PM_KERNEL
对在内核方式下运行的进程进行计数 (缺省设置为 "关闭")。
PM_COUNT
立即开始计数 (缺省设置为 "不开始计数")。
PM_PROCTREE
仅对调用进程及其后代将计数设置为 "开启" (缺省值设置为 "关闭")。
* 进步毫米 指定要在 "性能监视器" 设置中使用的事件和关联方式。 它支持以下方式:
PM_USER
对在用户方式下运行的进程进行计数 (缺省设置为 "关闭")。
PM_KERNEL
对在内核方式下运行的进程进行计数 (缺省设置为 "关闭")。
PM_COUNT
立即开始计数 (缺省值设置为 "不开始计数")。
PM_PROCTREE
仅对调用进程及其后代将计数设置为 "开启" (缺省值设置为 "关闭")。

第一个设置中定义的 PM_PROCTREEPM_COUNT 方式会修正计数的值。

返回值

描述
0 操作成功完成。
正错误代码 请参阅 pm_error 子例程 以解码错误代码。

错误代码

请参阅 pm_error 子例程

文件

描述
/usr/include/pmapi.h 定义标准宏,数据类型和子例程。