pm_set_program_mx and pm_set_program_mm Subroutines

Purpose

Sets system wide Performance Monitor programmation in counter multiplexing mode and in multi-mode.

Library

Performance Monitor APIs Library (libpmapi.a)

Syntax


#include <pmapi.h>

int pm_set_program_mx (*prog)
pm_prog_mx_t *prog;

int pm_set_program_mm (*prog_mm)
pm_prog_mm_t *prog_mm;

Description

The pm_set_program_mx and pm_set_program_mm subroutines set system wide Performance Monitor programmation in counter multiplexing mode.

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

The pm_set_program_mm 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 identifiers must be selected from the lists returned by the pm_initialize subroutine.

The counting mode includes the User Mode and the Kernel Mode, or either of them; the Initial Counting State; and the Process Tree Mode. The Process Tree Mode sets counting to On only for the calling process and its descendants. The defaults are set to Off for the User Mode and the Kernel Mode. The initial default state is set to delay counting until the pm_start subroutine is called, and to count the activity of all the processes running in the system.

When you use the pm_set_program_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.

On some platforms, event groups can be specified instead of individual events. This is done by setting the is_group bitfield in the mode, and placing the group ID into the first element of each events array. (The group ID was obtained by pm_init subroutine.)

Parameters

Item Description
*prog Specifies the events and modes to use in Performance Monitor setup. It supports the following modes:
PM_USER
Counts processes that run in the User Mode (default is set to Off).
PM_KERNEL
Counts processes that run in the 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 descendants (default is set to Off).
*prog_mm Specifies the events and the associated modes to use in the Performance Monitor setup. It supports the following modes:
PM_USER
Counts processes that run in the User Mode (default is set to Off).
PM_KERNEL
Counts processes that run in the 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 descendants (default is set to Off).

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

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.