ZCOM Tables and Data Structures

ZCOM Kernel Data

MEMPTR, MEMSIZE -Kernel memory size pointers

These are pointers to the size of kernel memory allocated by the LDM. The memory is used to hold ZCOM subsystem Memory Tables. In the current implementation, there is a fixed amount of memory defined in the kernel for use by the ZCOM subsystem, determined by the kernel zcom_mem_size tunable parameter defined at kernel build time. Hence, these fields are assigned to that part of memory.

SYSPTR, SYSSIZE - ZCOM system size (adjusted) and pointer.

These are the pointers to the size of the kernel memory to be used by the ZCOM subsystem. The ZCOM subsystem memory requires 64-byte alignment, and the system may not use up all allocated memory. These two fields indicate the actual location and size of the ZCOM memory.

NREQUEST - Number of active requests

This field contains the number of ZCOM application requests in progress. The LDM increments content in this field when it receives a new request, and decrements it when a request completes. During ZCOM subsystem shutdown, the LDM checks this value for pending application requests. If there is any pending requests, the LDM waits (for 5 seconds) to give the requests time to complete before forcing the ZCOM subsystem down.

This field is intended for the implementation of a smooth (i.e., graceful) ZCOM subsystem shutdown mechanism.

RTIMER - Reset request timer

This is the timer used by the LDM to wait during a ZCOM subsystem shutdown. The LDM will not shutdown the ZCOM subsystem immediately if there are pending application requests. Instead, it sets this timer to a non-zero value and goes dormant. When the LDM timer module is activated, it decrements this field and wakes up the waiting LDM when it reaches zero.

This field is used with NREQUEST to provide a waiting deferred shutdown mechanism.

NSLOW - Number of slowdown processes (* obsolete *)

This field is obsolete. Not used.

Chapter 3

131