pm_get_data_generic 子例程
注: 不推荐使用 pm_get_data_generic 子例程,将从将来的发行版中除去 API。
用途
返回以下线程和组的性能监视器数据:
- 目标线程。
- 目标 POSIX 线程 (pthread)。
- 目标线程的计数组。
- 目标线程的计数器多路复用方式。
- 目标线程所属的计数组的计数器多路复用方式。
- 目标 pthread 的计数器多路复用方式。
库
性能监视器 API 库 (libpmapi.a)
语法
#include <pmapi.h>
int pm_get_data_generic (pid,tid,ptid, type,*pmdata)
pid_t pid;
tid_t tid;
ptid_t ptid;
profiler_type_t type;
pm_data_time_t *pmdata;
描述
pm_get_data_generic 子例程根据提供给子例程的参数检索当前性能监视器数据。 如果 pthread 以 1: 1 方式运行,那么必须仅指定 tid 参数。 如果 pthread 以 m: n 方式运行,那么必须仅指定 ptid 参数。
如果同时指定了 ptid 和 tid 参数,那么必须满足以下条件:
性能监视器数据始终是所使用系统上每个硬件计数器的一组 64 位值。- ptid 和 tid 参数都必须引用单个 pthread。
- 线程必须使用指定的 tid 参数在内核线程上下文上运行。
参数
- pid
- 目标线程的进程标识。 目标线程必须是调用者进程的调试进程。
- tid
- 目标线程的线程标识。 您可以指定值 0 以忽略此参数。
- ptid
- 目标 pthread 的 pthread 标识。 您可以指定值 0 以忽略此参数。
- 类型
- 目标的类型。 以下是两种类型的目标:
- 线程 (p_THREAD)
- 如果目标线程是 pthread ,那么设置此标志。
- 组中的
- 如果目标是组,那么将设置此标志。
- * pmdata
- 指向用于返回性能监视器数据的结构的指针。 此结构包含针对目标内核线程计数的每个事件集的累积计数器,累积时间,累积处理器利用率资源寄存器 (PURR) 和可扩展处理器利用率资源寄存器 (SPURR) 时间的数组。
返回值
如果在子例程执行期间未发生任何错误,那么 pm_get_data_generic 子例程返回 0 ,否则返回正错误代码。 使用 pm_error 子例程对错误代码进行解码。
| 项 | 描述 |
|---|---|
| /usr/include/pmapi.h | 定义标准宏,数据类型和子例程。 |