HP OpenVMS System Services Reference Manual


Previous Contents Index

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_LPZ_EXPCNT

Returns the accumulated number of expansions of the lock manager's pool zone.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_LPZ_HITS

Returns the number of hits for the lock manager's pool zone.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_LPZ_MAXPAG

Returns the maximum number of pages in the lock manager's pool zone.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_LPZ_MISSES

Returns the number of misses for the lock manager's pool zone.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_LPZ_PAGCNT

Returns the number of pages currently in the lock manager's pool zone.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_LPZ_PAKSIZ

Returns the packet size for the lock manager's pool zone.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_MBREADS

Returns the number of mailbox reads.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_MBWRITES

Returns the number of mailbox writes.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_MCHKERRS

Returns the accumulated count of machine checks since the system was booted.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_MEMERRS

Returns the accumulated count of memory errors since the system was booted.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_MODES

Allows you to monitor the modes of each CPU in a multiple-CPU system (not just the CPU usage of all the nodes together).

RMI$_MODES returns the amount of time, in 10-ms units, spent by all currently active CPUs in all processor modes since the system was booted. Each increment in the returned time for a mode represents an additional 10 ms spent by the CPU in that mode. An active CPU is one that is actively participating in the processor scheduling that the OpenVMS instance performs.

The buffer length field in the item descriptor is dependent on the number of CPUs attached to the system. The size of the buffer passed should be as follows:


     n * sizeof ( CPU_struct ) + 4 

where n is the available CPU count. Use $GETSYI item code SYI$_POTENTIALCPU_CNT to get n, the count of potentially available CPUs. (For details, see the description of the $GETSYI service.)

Data for an individual CPU is returned by means of a CPU_struct structure. Declare the CPU_struct with no member alignment, as in the following example:


#pragma member_alignment save 
#pragma _nomember_alignment 
typedef struct _CPU_struct 
{ 
    unsigned char   cpu_id;     // physical cpu id 
    unsigned int    interrupt;  // is actually the sum of interrupt and idle1
    unsigned int    mpsynch;    // multi-processor synchronization 
    unsigned int    kernel;     // kernel mode 
    unsigned int    exec;       // executive mode 
    unsigned int    super;      // supervisor mode 
    unsigned int    user;       // user mode 
    unsigned int    reserved;   // reserved, will be zero 
    unsigned int    idle;       // CPU idle 
}CPU_struct; 
#pragma member_alignment restore 

For a multiple-CPU system, the data for all active CPUs is returned as an array of type CPU_struct, with the number of elements in the array equal to the number of potentially available CPUs. If a CPU is inactive, the CPU_struct array element corresponding to that CPU contains 0 in all CPU_struct members.

Be sure to allocate a buffer large enough to hold the counters for all available CPUs.

The following code example shows one method for collecting CPU modes:


#include <starlet.h> 
#include <syidef.h> 
#include <rmidef.h> 
#include <efndef.h> 
#include <iledef.h> 
#include <iosbdef.h> 
 
CPU_struct   *cpu_counters = NULL; 
IOSB          myiosb = { 0 }; 
char         *buffer; 
unsigned long buffer_size; 
int           status; 
 
// Set up the $GETSYI item list: potential CPUs and active CPU bitmask 
// unsigned long 
CPU_Count = 0; 
unsigned long long ActiveCPUs = 0; 
 
ILE3 SYIitmlst[] = { {sizeof CPU_Count, SYI$_POTENTIALCPU_CNT, &CPU_Count, 0}, 
                     {sizeof ActiveCPUs, SYI$_ACTIVE_CPU_MASK, &ActiveCPUs, 0}, 
                     {0,0}}; 
 
// Get the available CPU count and a bitmask of active CPUs 
status = SYS$GETSYIW( EFN$C_ENF, NULL, NULL, SYIitmlst, &myiosb, NULL, 0 ); 
buffer_size = CPU_Count * sizeof( CPU_struct ) + 4; 
buffer = malloc( buffer_size ); 
 
// Set up the $GETRMI item list: CPU modes 
ILE3 RMIitmlst[] = {{buffer_size, RMI$_MODES, buffer, 0}, 
                    {0,0}}; 
 
// Call the service 
status = SYS$GETRMI( EFN$C_ENF, 0, 0, RMIitmlst, &myiosb, NULL, 0 ); 
   .
   .
   .
status = SYS$SYNCH 
   .
   .
   .
// THE DATA COUNTERS BEGIN 4 BYTES OFF THE START OF THE BUFFER; 
// The first 4 bytes of the buffer are reserved for internal use. 
cpu_counters = (CPU_struct *) ( buffer + 4 ); 
 
// Use the counters for all active CPUs 
for ( int i = 0; i < CPU_Count; i++) 
{ 
    if ( 1 == ( 1 & (ActiveCPUs >> i) ) ) 
    { 
       cpu_counters[i].interrupt 
       --- 
       --- 
       --- 
    } 
} 
 
free( buffer ); 

RMI$_MODLIST

Returns the number of pages on the modified page list.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes) on Alpha systems and 8 (bytes) on I64 systems.

RMI$_MSCP_EVERYTHING

Returns all the performance data items in the following order:
MSCP_BUFAVL Current number of free MSCP buffers
MSCP_BUFSMALL Smallest MSCP buffer size allowed
MSCP_BUFWAITCUR Number of requests currently queued waiting for MSCP buffer memory
MSCP_BUFWAITPEAK Maximum number of requests simultaneously queued waiting for MSCP buffer
MSCP_DSKSRV Number of MSCP served disks
MSCP_HSTSRV Number of MSCP served hosts
MSCP_LB_FAILCNT MSCP server's count of failed load-balancing requests
MSCP_LB_INITCNT MSCP server's count of load-balancing requests sent
MSCP_LB_LMLOAD1 MSCP server's previous interval's load 1 value
MSCP_LB_LMLOAD2 MSCP server's previous interval's load 2 value
MSCP_LB_LMLOAD3 MSCP server's previous interval's load 3 value
MSCP_LB_LMLOAD4 MSCP server's previous interval's load 4 value
MSCP_LB_LOAD MSCP server's target load for load-balancing requests
MSCP_LB_LOAD_AVAIL MSCP server's current load available value
MSCP_LB_LOAD_CAP MSCP server's load capacity value
MSCP_LB_MONINT MSCP server's load-monitoring interval size
MSCP_LB_MONTIME The time that the last load-balancing monitor pass was made
MSCP_LB_REQCNT MSCP server's count of load-balancing requests received from other servers
MSCP_LB_REQTIME The time that the last load-balancing request was sent
MSCP_LB_RESPCNT MSCP server's count of load-balancing requests to which it responded
MSCP_LB_RESP MSCP server's load available from another server
MSCP_OPCOUNT Count of I/O transfer requests by remote processors
MSCP_VCFAIL Count of virtual cache failures on MSCP-served requests
MSCP_READ Count of Read I/O transfer requests by remote processors
MSCP_WRITE Count of Write I/O transfer requests by remote processors
MSCP_FRAGMENT Count of extra fragments issued by the MSCP server
MSCP_SPLITXFER Count of fragmented requests issued by the MSCP server
MSCP_BUFWAIT Count of requests that had to wait for MSCP buffer memory
MSCP_SIZE1 Count of MSCP-served I/O requests with a length of 1 block
MSCP_SIZE2 Count of MSCP-served I/O requests with a length of 2-3 blocks
MSCP_SIZE3 Count of MSCP-served I/O requests with a length of 4-7 blocks
MSCP_SIZE4 Count of MSCP-served I/O requests with a length of 8-15 blocks
MSCP_SIZE5 Count of MSCP-served I/O requests with a length of 16-31 blocks
MSCP_SIZE6 Count of MSCP-served I/O requests with a length of 32-63 blocks
MSCP_SIZE7 Count of MSCP-served I/O requests with a length of 64 or more blocks

Because this an array of 35 longwords, the buffer length field in the item descriptor should specify 4 times 35 (bytes).

RMI$_MWAIT

Returns the number of processes in the miscellaneous resource wait state.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_NP_POOL_ALLOC

Returns the accumulated count of nonpaged pool allocation requests.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_NP_POOL_ALLOCF

Returns the accumulated count of unsuccessful nonpaged pool allocation requests.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_NP_POOL_EXP

Returns the accumulated count of successful expansions of nonpaged pool.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_NP_POOL_EXPF

Returns the accumulated count of unsuccessful attempts to expand nonpaged pool.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_NUMLOCKS

Returns the total number of locks.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_NUMRES

Returns the total number of resources.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_OPENS

Returns the systemwide count of files opened.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_OSWPCNT

Returns the accumulated systemwide count of process outswap operations.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_OSWPCNTPG

Returns the accumulated systemwide count of pages outswapped.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PFW

Returns the number of processes in the page fault wait state.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PG_POOL_ALLOC

Returns the accumulated count of paged pool allocation requests.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PG_POOL_ALLOCF

Returns the accumulated count of unsuccessful paged pool allocation requests.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PG_POOL_EXPF

Returns the accumulated count of paged pool failures.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PREADIO

Returns physical page read I/Os.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PREADS

Returns the number of pages read.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PROCBALSETCNT

Returns the number of processes in the balance set.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PROCBATCNT

Returns the number of batch processes known to the system.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PROCCNTMAX

Returns the maximum number of concurrent processes seen by the system.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PROCINTCNT

Returns the number of interactive processes known to the system.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PROCLOADCNT

Returns the accumulated systemwide count of process context load operations.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PROCNETCNT

Returns the number of network processes known to the system.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PROCS

Returns the number of processes currently known to the system.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PROCSWITCHCNT

Returns the number of switches from the currently-executing process.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PWRITES

Returns the number of pages written.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_PWRITIO

Returns physical page write I/Os.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_QUOHIT

Returns the systemwide count of quota cache hits.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_QUOMISS

Returns the systemwide count of quota cache misses.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RCVBUFFL

Returns the accumulated systemwide count of DECnet receiver buffer failures.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RDFAULTS

Returns the number of fault-on-read page faults.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_ACQUIRE

Returns the accumulated systemwide count of lock trees moved to this node.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_BETTER

Returns the accumulated systemwide count of lock trees moved from this node to a cluster node with a higher value for the system parameter LOCKDIRWT.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_MORE_ACT

Returns the accumulated systemwide count of lock trees moved from this node due to higher locking activity on another node in the cluster.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_MSGRCV

Returns the accumulated systemwide count of remaster messages received by this node.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_MSGSENT

Returns the accumulated systemwide count of remaster messages sent from this node.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_NOQUOTA

Returns the accumulated systemwide count of remaster operations that failed due to a lack of quota.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_NOTAKER

Returns the accumulated systemwide count of remaster operations that were proposed and declined.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_OPCNT

Returns the accumulated systemwide count of remaster operations that have been completed.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_RBLDMSGRCV

Returns the accumulated systemwide count of remaster rebuild messages received by this node.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_RBLDMSGSENT

Returns the accumulated systemwide count of remaster rebuild messages sent from this node.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_SINGLE

Returns the accumulated systemwide count of lock trees moved from this node to another cluster node because that node is the only one with locks remaining on the tree.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_RML_UNLOAD

Returns the accumulated systemwide count of lock trees moved from this node.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMP_CURMAP

(Alpha and I64) Returns the count of global pages currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMP_CURMAP_GRP

(Alpha and I64) Returns the count of group global pages currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMP_CURMAP_GRPWRT

(Alpha Only) Returns the count of writable group global pages currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMP_CURMAP_SYS

(Alpha Only Returns the count of system global pages currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMP_CURMAP_SYSWRT

(Alpha Only) Returns the count of writable system global pages currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMS_CURMAP

(Alpha Only) Returns the count of global sections currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMS_CURMAP_GRP

(Alpha Only) Returns the count of group global sections currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMS_CURMAP_GRPWRT

(Alpha Only) Returns the count of writable group global sections currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMS_CURMAP_SYS

(Alpha Only) Returns the count of system global sections currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMS_CURMAP_SYSWRT

(Alpha Only) Returns the count of writable system global sections currently mapped for Galaxy shared memory.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SMS_NOREF

(Alpha Only) Returns the current count of global sections for Galaxy shared memory that are not mapped to a process (reference count is 0).

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_STORAGMAP_HIT

Returns the systemwide count of storage bitmap cache hits.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_STORAGMAP_MISS

Returns the systemwide count of storage bitmap cache misses.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SUSP

Returns the number of processes in the suspended state.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SUSPO

Returns the number of outswapped processes in the suspended state.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SYNCHLCK

Returns the systemwide count of directory- or file-synch locks.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SYNCHWAIT

Returns the systemwide count of times the XQP waited for a directory- or file-synch lock.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_SYSFAULTS

Returns the number of system page faults.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_TMSCP_EVERYTHING

Returns all the performance data items in the following order:
TMSCP_BUFWAIT Count of requests that had to wait for TMSCP buffer memory
TMSCP_HSTSRV Number of TMSCP served hosts
TMSCP_TAPSRV Number of TMSCP served tapes
TMSCP_OPCOUNT Total operations count
TMSCP_ABORTCNT Total abort operations count
TMSCP_BUFAVAIL Free TMSCP pool bytes
TMSCP_ONLINCNT Count of online tapes
TMSCP_ACCESSCNT Total access count
TMSCP_FLUSHCNT Total flush count
TMSCP_RDCOUNT Count of read I/O requests by remote processors
TMSCP_WRCOUNT Count of write I/O requests by remote processors
TMSCP_VCFAIL Number of virtual cache failures on TMSCP served requests in location 23
TMSCP_FRAGMENT Extra fragments
TMSCP_SIZE1 Count of TMSCP served I/O requests with a length of 1 block
TMSCP_SIZE2 Count of TMSCP served I/O requests with a length of 2-3 blocks
TMSCP_SIZE3 Count of TMSCP served I/O requests with a length of 4-7 blocks
TMSCP_SIZE4 Count of TMSCP served I/O requests with a length of 8-15 blocks
TMSCP_SIZE5 Count of TMSCP served I/O requests with a length of 16-31 blocks
TMSCP_SIZE6 Count of TMSCP served I/O requests with a length of 32-63 blocks
TMSCP_SIZE7 Count of TMSCP served I/O requests with a length of 64 or more blocks

Because this is an array of 20 longwords, the buffer length field in the item descriptor should specify 4 times 20 (bytes).

RMI$_TQESYSUB

Returns the accumulated systemwide count of timer requests made by the OpenVMS operating system.

Because this number is a quadword, the buffer length field in the item descriptor should specify 8 (bytes).

RMI$_TQETOTAL

Returns the accumulated systemwide count of timer requests.

Because this number is a quadword, the buffer length field in the item descriptor should specify 8 (bytes).

RMI$_TQEUSRTIMR

Returns the accumulated systemwide count of timer requests made by application programs through the SYS$SETIMR system service.

Because this number is a quadword, the buffer length field in the item descriptor should specify 8 (bytes).

RMI$_TQEUSRWAKE

Returns the accumulated systemwide count of timer requests made by application programs through the SYS$SCHDWK system service.

Because this number is a quadword, the buffer length field in the item descriptor should specify 8 (bytes).

RMI$_TRANSFLTS

Returns the accumulated systemwide count of transition (release pending or read-in-progress) faults.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_TRCNGLOS

Returns the accumulated systemwide count of DECnet packets lost due to transit congestion.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_TTWRITES

Returns the accumulated systemwide count of writes to terminals.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes).

RMI$_USERPAGES

Returns the number of pages available for use by applications.

Because this number is a longword, the buffer length field in the item descriptor should specify 4 (bytes) on Alpha systems and 8 (bytes) on I64 systems.

RMI$_VCPUTICKS - VAX Only

Returns the accumulated systemwide count of virtual balance slot clock ticks (10-millisecond units).

Note

1 For compatibility with existing applications, the returned value for interrupt time is the sum of interrupt and idle times. Calculate the actual interrupt time by subtracting the returned value of idle time from the returned value of interrupt time.


Previous Next Contents Index