pm_get_data_group_mx and pm_get_tdata_group_mx Subroutine

Purpose

Returns Performance Monitor data in counter multiplexing mode 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_mx (pid,  tid,  *pmdata)
pid_t pid;
tid_t tid;
pm_data_mx_t *pmdata;

int pm_get_tdata_group_mx (pid, tid, *pmdata, *time)
pm_data_mx_t *pmdata;
pid_t pid;
tid_t tid;
timebasestruct_t *time;

Description

These subroutines support only the 1:1 threading model. They have been superseded by the pm_get_data_pgroup_mx and pm_get_tdata_pgroup_mx 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_mx and pm_get_tdata_pgroup_mx subroutines with a ptid parameter equal to 0.

The pm_get_data_group_mx subroutine retrieves the current Performance Monitor data in counter multiplexing mode 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_mx subroutine retrieves the current Performance Monitor data in counter multiplexing mode for the counting group to which a target thread belongs, and a timestamp indicating the last time the hardware counters were read.

The Performance Monitor data is always an array of 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, whether it is a process level group, and whether its counters are consistent with the sum of the counters for all of the threads in the group.

The user application must free the array allocated to store accumulated counts and times (the accu_set field of the pmdata parameter).

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 (array of accumulated counters, accumulated time and accumulated PURR and SPURR time for each event set counted) 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.

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 thepm_error Subroutine.

Files

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