pm_get_data_thread_mx 或 pm_get_tdata_thread_mx 子例程
用途
以计数器多路复用方式返回目标线程的性能监视器数据。
库
性能监视器 API 库 (libpmapi.a)
语法
#include <pmapi.h>
int pm_get_data_thread_mx (pid, tid, *pmdata)
pid_t pid;
tid_t tid;
pm_data_mx_t *pmdata;
int pm_get_tdata_thread_mx (pid, tid, *pmdata, *time)
pid_t pid;
tid_t tid;
pm_data_mx_t *pmdata;
timebasestruct_t *time; 描述
这些子例程仅支持 1: 1 线程技术模型。 它们已被 pm_get_data_pthread_mx 和 pm_get_tdata_pthread_mx 子例程取代,它们支持 1: 1 和 M: N 线程模型。 对这些子例程的调用相当于对 pm_get_data_pthread_mx 和 pm_get_tdata_pthread_mx 子例程的调用,其中 ptid 参数等于 0。
pm_get_data_thread_mx 子例程以计数器多路复用方式检索目标内核线程的当前性能监视器数据。 该线程必须停止,并且必须是在调用进程控制下的调试进程的一部分。
pm_get_tdata_thread_mx 子例程以计数器多路复用方式检索目标线程的当前性能监视器数据,以及指示上次读取硬件计数器的时间的时间戳记。
性能监视器数据始终是一组 64 位值的集合 (在所使用的机器上每个硬件计数器一个)。
用户应用程序必须释放分配用于存储累积计数和时间的数组 ( pmdata 参数的 accu_set 字段)。
参数
| 项 | 描述 |
|---|---|
| pid | 目标线程的进程标识。 目标进程必须是调用者进程的调试器。 |
| tid | 目标线程的线程标识。 |
| * pmdata | 指向结构的指针,用于返回目标内核线程的性能监视器数据 (累积计数器数组,累积时间以及每个事件集计数的累积 PURR 和 SPURR 时间)。 |
| * 时间 | 指向包含上次读取硬件性能监视计数器时的时间基准值的结构的指针。 这可以使用 time_base_to_time 子例程转换为时间。 |
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 未发生错误。 |
| 正错误代码 | 请参阅 pm_error 子例程 以解码错误代码。 |
错误代码
请参阅 pm_error 子例程。
文件
| 项 | 描述 |
|---|---|
| /usr/include/pmapi.h | 定义标准宏,数据类型和子例程。 |