[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]
Technical Reference: Base Operating System and Extensions, Volume 1
pthread_getrusage_np Subroutine
Purpose
Enable or disable pthread library resource collection, and retrieve resource
information for any pthread in the current process.
Library
Threads Library (libpthreads.a)
Syntax
#include <pthread.h>
int pthread_getrusage_np (Ptid, RUsage, Mode)
pthread_t Ptid;
struct rusage *RUsage;
int Mode;
Description
The pthread_getrusage_np subroutine enables and disables
resource collection in the pthread library and collects resource information
for any pthread in the current process. When compiled in 64-bit mode, resource
usage (rusage) counters are 64-bits for the calling thread. When compiled
in 32-bit mode, rusage counters are 32-bits for the calling pthread.
The enable and disable rusage mechanism in the pthread library can also
be triggered by an environment variable named AIXTHREAD_ENRUSG. Setting this variable to ON enables the functionality, while setting
it to OFF disables it. The environment variable can be used along with the PTHRDSINFO_RUSAGE_START value passed to the pthread_getrusage_np subroutine Mode parameter.
If the environment variable is not to be used, it should be set to NULL.
Parameters
Ptid |
Specifies the target thread. Must be within the current process. |
RUsage |
Points to a buffer described in the /usr/include/sys/resource.h file. The fields are defined as follows:
- ru_utime
- The total amount of time running in user mode.
- ru_stime
- The total amount of time spent in the system executing on behalf of
the processes.
- ru_maxrss
- The maximum size, in kilobytes, of the used resident set size.
- ru_ixrss
- An integral value indicating the amount of memory used by the text
segment that was also shared among other processes. This value is expressed
in units of kilobytes X seconds-of-execution and is calculated by adding the number of shared memory pages in use
each time the internal system clock ticks, and then averaging over one-second
intervals.
- ru_idrss
- An integral value of the amount of unshared memory in the data segment
of a process, which is expressed in units of kilobytes X seconds-of-execution.
- ru_minflt
- The number of page faults serviced without any I/O activity. In this
case, I/O activity is avoided by reclaiming a page frame from the list of
pages awaiting reallocation.
- ru_majflt
- The number of page faults serviced that required I/O activity.
- ru_nswap
- The number of times that a process was swapped out of main memory.
- ru_inblock
- The number of times that the file system performed input.
- ru_oublock
- The number of times that the file system performed output.
Note
The numbers that the ru_inblock and ru_oublock fields display account for real I/O only; data supplied
by the caching mechanism is charged only to the first process that reads
or writes the data.
- ru_msgsnd
- The number of IPC messages sent.
- ru_msgrcv
- The number of IPC messages received.
- ru_nsignals
- The number of signals delivered.
- ru_nvcsw
- The number of times a context switch resulted because a process voluntarily
gave up the processor before its time slice was completed. This usually
occurs while the process waits for a resource to become available.
- ru_nivcsw
- The number of times a context switch resulted because a higher priority
process ran or because the current process exceeded its time slice.
|
Mode |
Indicates the task the subroutine should perform.
Acceptable values are as follows:
- PTHRDSINFO_RUSAGE_START
- Enables resource collection in pthread library for all pthreads.
- PTHRDSINFO_RUSAGE_STOP
- Disables resource collection in pthread library for all pthreads.
- PTHRDSINFO_RUSAGE_COLLECT
- Collects resource information for the target thread.
|
Return Values
Upon successful completion, the pthread_getrusage_np subroutine
returns a value of 0. Otherwise, an error number is returned to indicate the
error.
Error Codes
The pthread_getrusage_np subroutine fails if: |
ENOSYS |
The calling pthread has given PTHRDSINFO_RUSAGE_COLLECT for Mode but the subroutine was not previously
called with PTHRDSINFO_RUSAGE_START for Mode. |
EINVAL |
The address specified for RUsage is NULL, not
valid, or a null value for Ptid was given. |
ESRCH |
Either no thread could be found corresponding to the ID thread of the Ptid thread or the thread corresponding to the Ptid thread ID was not in the current process. |
Related Information
The pthreads.h subroutine.
[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]