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 参数。

如果同时指定了 ptidtid 参数,那么必须满足以下条件:
  • ptidtid 参数都必须引用单个 pthread。
  • 线程必须使用指定的 tid 参数在内核线程上下文上运行。
性能监视器数据始终是所使用系统上每个硬件计数器的一组 64 位值。

参数

pid
目标线程的进程标识。 目标线程必须是调用者进程的调试进程。
tid
目标线程的线程标识。 您可以指定值 0 以忽略此参数。
ptid
目标 pthread 的 pthread 标识。 您可以指定值 0 以忽略此参数。
类型
目标的类型。 以下是两种类型的目标:
线程 (p_THREAD)
如果目标线程是 pthread ,那么设置此标志。
组中的
如果目标是组,那么将设置此标志。
* pmdata
指向用于返回性能监视器数据的结构的指针。 此结构包含针对目标内核线程计数的每个事件集的累积计数器,累积时间,累积处理器利用率资源寄存器 (PURR) 和可扩展处理器利用率资源寄存器 (SPURR) 时间的数组。

返回值

如果在子例程执行期间未发生任何错误,那么 pm_get_data_generic 子例程返回 0 ,否则返回正错误代码。 使用 pm_error 子例程对错误代码进行解码。

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