pm_get_data , pm_get_tdata , pm_get_Tdata , pm_get_data_cpu , pm_get_tdata_cpu , pm_get_Tdata_cpu , pm_get_data_lcpu , pm_get_tdata_lcpu 和 pm_get_Tdata_lcpu 子例程
用途
返回系统范围的性能监视器数据。
库
性能监视器 API 库 (libpmapi.a)
语法
#include <pmapi.h>
int pm_get_data ( *pmdata)
pm_data_t *pmdata;
int pm_get_tdata (pmdata, * time)
pm_data_t *pmdata;
timebasestruct_t *time;
int pm_get_Tdata (pmdata, * times)
pm_data_t *pmdata;
pm_accu_time_t *times;
int pm_get_data_cpu (cpuid, *pmdata)
int cpuid;
pm_data_t *pmdata;
int pm_get_tdata_cpu (cpuid, *pmdata, *time)
int cpuid;
pm_data_t *pmdata;
timebasestruct_t *time;
int pm_get_Tdata_cpu (cpuid, *pmdata, *times)
int cpuid;
pm_data_t *pmdata;
pm_accu_time_t *times
int pm_get_data_lcpu (lcpuid, *pmdata)
int lcpuid;
pm_data_t *pmdata;
int pm_get_tdata_lcpu (lcpuid, *pmdata, *time)
int lcpuid;
pm_data_t *pmdata;
timebasestruct_t *time;
int pm_get_Tdata_lcpu (lcpuid, *pmdata, *times)
int lcpuid;
pm_data_t *pmdata;
pm_accu_time_t *times
描述
pm_get_data 子例程检索当前系统范围的性能监视器数据。
pm_get_tdata 子例程检索当前系统范围的性能监视器数据,以及指示上次读取硬件计数器的时间戳记。
pm_get_Tdata 子例程检索当前系统范围的性能监视器数据,并且计算事件的累积时间 (时间基准, PURR 时间和 SPURR 时间)。
pm_get_data_cpu, pm_get_tdata_cpu和 pm_get_Tdata_cpu 子例程检索指定处理器的当前性能监视器数据。 给定处理器标识表示范围内的连续数字0至_system_configuration.ncpus. 仅当在机器上未执行动态重新配置操作时,才能使用这些子例程,因为当添加或除去处理器时,会修改处理器编号,并且指定的处理器编号可以指定从一个调用到另一个调用的不同处理器。 维护这些子例程是为了与先前版本兼容。
pm_get_data_cpu 子例程检索指定处理器的当前性能监视器数据。
pm_get_tdata_cpu 子例程检索指定处理器的当前性能监视器数据以及指示上次读取硬件计数器的时间戳记。
pm_get_Tdata_cpu 子例程检索指定处理器的当前性能监视器数据,并计算事件的累积时间 (时间基准, PURR 时间和 SPURR 时间)。
pm_get_data_lcpu, pm_get_tdata_lcpu和 pm_get_Tdata_lcpu 子例程检索指定逻辑处理器的当前性能监视器数据。 给定的处理器标识表示范围内的值0至_system_configuration.max_ncpus。此值始终表示相同的处理器,即使在发生动态重新配置操作之后也是如此。 如果指定的逻辑处理器号在计数时间间隔内从未运行,那么这些子例程可能会返回错误。
pm_get_data_lcpu 子例程检索指定逻辑处理器的当前性能监视器数据。
pm_get_tdata_lcpu 子例程检索指定逻辑处理器的当前性能监视器数据以及指示上次读取硬件计数器的时间戳记。
pm_get_Tdata_lcpu 子例程检索指定逻辑处理器的当前性能监视器数据,并且计算事件的累积时间 (时间基准, PURR 时间和 SPURR 时间)。
性能监视器数据始终是 64 位值的集合 (在所使用的机器上每个硬件计数器一个)。
参数
| 项 | 描述 |
|---|---|
| * pmdata | 指向包含返回的系统范围性能监视器数据的结构的指针。 |
| * 时间 | 指向包含上次读取硬件性能监视计数器时的时间基准值的结构的指针。 这可以使用 time_base_to_time 子例程转换为时间。 |
| * 次 | 指向包含事件计数的累积时间 (时间基准, PURR 时间和 SPURR 时间) 的结构的指针。 每次计数器都可以使用 time_base_to_time 子例程转换为时间。 |
| cpuid | 范围内的连续处理器数0至_system_configuration.ncpus。此值并不总是指定相同的处理器,即使在执行 "动态重新配置" 操作之后也是如此。 |
| lcpuid | 逻辑处理器标识。 每个标识在重新引导之间保持链接到特定处理器,即使在动态重新配置操作之后也是如此。 此值必须在以下范围内:0至_system_configuartion.max_ncpus. |
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 操作成功完成。 |
| 正错误代码 | 请参阅 pm_error 子例程 以解码错误代码。 |
错误代码
请参阅 pm_error 子例程。
文件
| 项 | 描述 |
|---|---|
| /usr/include/pmapi.h | 定义标准宏,数据类型和子例程。 |