pm_set_program_group_mx and pm_set_program_group_mm Subroutines

Purpose

Sets the Performance Monitor program in counter multiplexing mode and multi-mode for a target thread and creates a counting group.

Library

Performance Monitor APIs Library (libpmapi.a)

Syntax

#include <pmapi.h> 

int pm_set_program_group_mx ( pid,  tid,  *prog) 
pid_t pid; 
tid_t tid; 
pm_prog_mx_t *prog;

int pm_set_program_group_mm ( pid, tid, *prog_mm)
pid_t pid;
tid_t tid;
pm_prog_mm_t *prog_mm;

Description

The pm_set_program_group_mx and pm_set_program_group_mm subroutines support only the 1:1 threading model. They have been superseded respectively by the pm_set_program_pgroup_mx and pm_set_program_pgroup_mm subroutines, which support both the 1:1 and the M:N threading models. A call to the pm_set_program_pgroup_mx or pm_set_program_pgroup_mm subroutine is respectively equivalent to a call to the pm_set_program_pgroup_mx or pm_set_program_pgroup_mm subroutine with a ptid parameter equal to 0.

The pm_set_program_group_mx and pm_set_program_group_mm subroutines set the Performance Monitor program respectively in counter multiplexing mode or in multi-mode for a target kernel thread. The thread must be stopped and must be part of a debuggee process, which is under the control of the calling process.

The pm_set_program_group_mx subroutine setting includes the list of the event arrays to be counted and the mode in which to count. The mode is global to all of the event lists. The events to count are in an array of lists of event identifiers.

The pm_set_program_group_mm subroutine setting includes the list of the event arrays to be counted, and the associated mode in which to count each event array. A counting mode is defined for each event array.

The event identifiers must be selected from the lists returned by the pm_initialize subroutine.

Both subroutines create a counting group, which includes the target thread and any thread which it, or any of its descendants, will create in the future. The group can also be defined as containing all the existing and future threads belonging to the target process.

The counting mode for the subroutines includes the User Mode, the Kernel Mode, or both of them, and the Initial Counting State. The default is set to Off for the User Mode and the Kernel Mode. The initial default state is set to delay counting until the pm_start_group subroutine is called.

When you use the pm_set_program_group_mm subroutine for multi-mode counting, the Process Tree Mode and the Start Counting Mode are fixed by their values that are defined in the first programming set.

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

Parameters

Item Description
pid Specifies the process ID of target thread. The target process must be a debuggee of a calling process.
tid Specifies the thread ID of the target thread.
*prog

Specifies the events and modes to use in the Performance Monitor setup. The prog parameter supports the following modes:

PM_USER
Counts processes running in User Mode (default is set to Off).
PM_KERNEL
Counts processes running in Kernel Mode (default is set to Off).
PM_COUNT
Starts counting immediately (default is set to Not to start counting).
PM_PROCESS
Creates a process-level counting group.
* prog_mm Specifies the events and the modes to use in the Performance Monitor setup. The prog_mm parameter supports the following modes:
PM_USER
Counts processes running in User Mode (default is set to Off).
PM_KERNEL
Counts processes running in Kernel Mode (default is set to Off).
PM_COUNT
Starts counting immediately (default is set to Not to start counting).
PM_PROCTREE
Sets counting to On only for the calling process and its descendents (default is set to Off).

The PM_PROCTREE mode and the PM_COUNT mode defined in the first setting fix value for the counting.

Return Values

Item Description
0 Operation completed successfully.
Positive Error Code See the pm_error (pm_error Subroutine) subroutine to decode the error code.

Error Codes

See the pm_error Subroutine.

Files

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