pm_get_program_pthread_mx and pm_get_program_pthread_mm Subroutines

Purpose

Retrieves the Performance Monitor settings in counter multiplexing mode and multi-mode for a target pthread.

Library

Performance Monitor APIs Library (libpmapi.a)

Syntax

#include <pmapi.h>  

int pm_get_program_pthread_mx ( pid,  tid,  ptid,  *prog) 
pid_t pid; 
tid_t tid;
ptid_t ptid; 
pm_prog_mx_t *prog; 

int pm_get_program_pthread_mm ( pid, tid, ptid, prog_mm)
pid_t pid;
tid_t tid;
ptid_t ptid;
pm_prog_mm_t *prog_mm;

Description

The pm_get_program_pthread_mx and the pm_set_program_pthread_mm subroutines retrieve the Performance Monitor settings for a target pthread. The pthread must be stopped and must be part of a debuggee process, that is under the control of the calling process. This includes mode information and the events being counted, which are in an array of lists of event identifiers. The event identifiers must be selected from the lists returned by the pm_inititialize subroutine.

If the pthread is running in 1:1 mode, only the tid parameter must be specified. If the pthread is running in m:n mode, only the ptid parameter must be specified. If both the ptid and tid parameters are specified, they must be referring to a single pthread with the ptid parameter specified and currently running on a kernel thread with specified tid parameter.

When counting in multiplexing mode, the mode is global to all of the events lists. When counting in the multi-mode, a mode is associated with each event list.

Counting mode includes the user mode, the kernel mode, and the current counting state.

If the list includes an event that can be used with a threshold (as indicated by the pm_initialize subroutine), a threshold value is also returned.

The user application must free the allocated array to store the event lists (the events_set field in the prog parameter).

Parameters

Item Description
pid Process ID of target pthread. Target process must be an argument of a debug process.
tid Thread ID of target pthread. To ignore this parameter, set it to 0.
ptid Pthread ID of the target pthread. To ignore this parameter, set it to 0.
*prog Returns which Performance Monitor events and modes are set. It supports the following modes:
PM_USER
Counts processes running in User Mode.
PM_KERNEL
Counts processes running in Kernel Mode.
PM_COUNT
Counting is On.
*prog_mm Returns which Performance Monitor events and associated modes are set. It supports the following modes:
PM_USER
Counting processes running in User Mode.
PM_KERNEL
Counting processes running in Kernel Mode.
PM_COUNT
Counting is On.
PM_PROCTREE
Counting that applies only to the calling processes and its descendants.

The PM_PROCTREE mode and the PM_COUNT mode are common to all modes set.

Return Values

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

Error Codes

See the pm_error (pm_error Subroutine) subroutine.

Files

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