Common Misconfigured HP-UX Resources (April 2006)

The semmni tunable sizes the semaphore ID table that maintains the system-wide semaphore
identifiers. Each entry in the array is 96 bytes, so each increment to semmni will increase the boot
time kernel size by 96 bytes.
The semmsl tunable defines the maximum number of semaphores per semaphore identifier. It does
not size a specific static table. Each semaphore is 8 bytes.
The semmns tunable keeps track of the system-wide semaphores. Semaphores are allocated
dynamically based on requested number of semaphores through semget(2) call and up to the limit
of semmns tunable value across the system.
The semaphore undo table is slightly more complex. When a process terminates because of abort or
signal, the effects of a semaphore operation may need to be undone to prevent potential applications
hangs. The system needs to maintain a list of pending undo operations on a per-process basis.
The semume tunable specifies the number of semaphore undo operations pending for each process.
Each semaphore undo structure is 8 bytes in size, and there are 24 bytes of overhead for each
process. As a result increasing semume increases the semaphore undo table by 8 bytes per process.
The semmnu tunable specifies the number of processes that can have semaphore undo operations
pending. Increasing semmnu increases the size of the semaphore undo table based on the value of
semume.
33