pm_set_program_pgroup Subroutine

Purpose

Sets Performance Monitor programmation for a target pthread and creates a counting group.

Library

Performance Monitor APIs Library (libpmapi.a)

Syntax

#include <pmapi.h>  

int pm_set_program_pgroup ( pid,  tid,  ptid,  *prog)
pid_t pid;
tid_t tid;
ptid_t ptid;
pm_prog_t *prog;

Description

The pm_set_program_pgroup subroutine sets the Performance Monitor programmation for a target pthread. The pthread must be stopped and must be part of a debuggee process, under the control of the calling process. The setting includes the events to be counted and a mode in which to count. The events to count are in a list of event identifiers. The identifiers must be selected from the lists returned by the pm_inititialize subroutine.

This call also creates a counting group, which includes the target pthread and any pthread that it, or any of its descendants, will create in the future. Optionally, the group can be defined as also containing all the existing and future pthreads belonging to the target process.

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.

The counting mode includes User Mode and/or Kernel Mode, and the Initial Counting State. The defaults are set to Off for User Mode and Kernel Mode, and the initial default state is set to delay counting until the pm_start_pgroup subroutine is called.

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

Parameters

Item Description
pid Process ID of target pthread. Target process must be a debuggee of the caller 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 Specifies the event modes to use in Performance Monitor setup. The following modes are supported:
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

Return Values

Item Description
0 Operation completed successfully.
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.