pm_get_data_group, pm_get_tdata_group and pm_get_Tdata_group Subroutine

Purpose

Returns Performance Monitor data for the counting group to which a target thread belongs.

Library

Performance Monitor APIs Library (libpmapi.a)

Syntax

#include <pmapi.h>

int pm_get_data_group (pid,  tid,  *pmdata)
pid_t pid;
tid_t tid;
pm_data_t *pmdata;

int pm_get_tdata_group (pid, tid, *pmdata, *time)
pm_data_t *pmdata;
pid_t pid;
tid_t tid;
timebasestruct_t *time;

int pm_get_Tdata_group (pid, tid, *pmdata, *times)
pm_data_t *pmdata;
pid_t pid;
tid_t tid;
pm_accu_time_t *times;

Description

These subroutines support only the 1:1 threading model. They have been superseded by the pm_get_data_pgroup and pm_get_tdata_pgroup subroutines, which support both the 1:1 and the M:N threading models. Calls to these subroutines are equivalent to calls to the pm_get_data_pgroup and pm_get_tdata_pgroup subroutines with a ptid parameter equal to 0.

The pm_get_data_group subroutine retrieves the current Performance Monitor data for the counting group to which a target kernel thread belongs. The thread must be stopped and must be part of a debuggee process under the control of the calling process.

The pm_get_tdata_group subroutine retrieves the current Performance Monitor data for the counting group to which a target thread belongs, and a timestamp indicating the last time the hardware counters were read.

The pm_get_Tdata_group subroutine retrieves the current Performance Monitor data for the counting group to which a target thread belongs, and the accumulated time (timebase, PURR time and SPURR time) the events were counted.

The Performance Monitor data is always a set (one per hardware counter on the machine used) of 64-bit values. The information returned also includes the characteristics of the group, such as the number of its members, if it is a process level group, and if its counters are consistent with the sum of the counters for all of the threads in the group.

Parameters

Item Description
pid Process identifier of a target thread. The target process must be an argument of a debug process.
tid Thread identifier of a target thread.
*pmdata Pointer to a structure to return the Performance Monitor data for the group to which the target thread belongs.
*time Pointer to a structure containing the timebase value the last time the hardware Performance Monitoring counters were read. This can be converted to time using the time_base_to_time subroutine.
*times Pointer to a structure containing the accumulated time (timebase, PURR time and SPURR time) the events were counted. Each time counter can be converted to time using the time_base_to_time subroutine.

Return Values

Item Description
0 No errors occurred.
Positive error code Refer to the pm_error Subroutine to decode the error code.

Error Codes

Refer to the pm_error Subroutine.

Files

Item Description
/usr/include/pmapi.h Defines standard macros, data types, and subroutines.