Retrieves global processor usage statistics.
Perfstat library (libperfstat.a)
#include <libperfstat.h>
int perfstat_cpu_total (name, userbuff, sizeof_struct, desired_number)
perfstat_id_t *name;
perfstat_cpu_total_t *userbuff;
size_t sizeof_struct;
int desired_number;
The perfstat_cpu_total subroutine returns global processor usage statistics in a perfstat_cpu_total_t structure.
To get statistics that are global to the whole system, the name parameter must be set to NULL, the userbuff parameter must be allocated, and the desired_number parameter must be set to 1.
The perfstat_cpu_total subroutine retrieves information from the ODM database. This information is automatically cached into a dictionary which is assumed to be frozen once loaded. The perfstat_reset subroutine must be called to flush the dictionary whenever the machine configuration has changed.
In AIX® 5.3 and later, SPLPAR environments virtualize physical processors. To help accurately measure the resource used in a virtualized environment, the POWER5 family of processors implements a register PURR (Processor Utilization Resource Register) for each core. The PURR is a 64-bit counter with the same units as the timebase register and tracks the real physical processor resource used on a per-thread or per-partition level. The PURR registers are not compatible with previous global counters (user, system, idle and wait fields) returned by the perfstat_cpu and the perfstat_cpu_total subroutines. All data consumers requiring processor use must be modified to support PURR-based computations as shown in the example for the perfstat_partition_total interface under Perfstat API programming.
This subroutine returns only global processor statistics inside a workload partition (WPAR).
Item | Description |
---|---|
name | Must set to NULL. |
userbuff | Points to the memory area that is to be filled with the perfstat_cpu_total_t structure. |
sizeof_struct | Specifies the size of the perfstat_cpu_total_t structure: sizeof(perfstat_cpu_total_t). |
desired_number | Must set to 1. |
Upon successful completion, the number of structures filled is returned. If unsuccessful, a value of -1 is returned and the errno global variable is set.
The perfstat_cpu_total subroutine is unsuccessful if one of the following is true:
Item | Description |
---|---|
EINVAL | One of the parameters is not valid. |
EFAULT | Insufficient memory. |
ENOMEM | The string default length is too short. |
The libperfstat.h file defines standard macros, data types, and subroutines.