HP-UX 11i September 2001 Release Notes
Process, Threads, Memory, and Kernel Parameters
System-V IPC SEMMSL Dynamic Kernel Tunable (new at 11i original release)
Chapter 8
140
System-V IPC SEMMSL Dynamic Kernel Tunable (new
at 11i original release)
The System-V IPC kernel tunable configuration parameter SEMMSL, which sets the
maximum number of semaphores per ID which can be grouped within a single System-V
IPC semaphore set, has changed from from a hard-coded value of 2048 in kernel code to
a dynamic kernel tunable. Its minimum and default value is 2048 while its upper limit is
10240. For 11i, dynamic tune adjustments to SEMMSL may only be done using SAM.
With the increase in system sizes, applications have the ability to handle greater
numbers of cooperating processes. Some applications synchronize operations of these
processes by semaphores within a single set. By increasing the limitations on semaphore
sets, these applications may increase the number of processes they use.
This enhancement is available on all systems.
Impact
Increasing the SEMMSL kernel tunable to allow larger System-V IPC semaphore sets
does not itself consume any additional kernel resources such as memory. However, in
conjuction with increasing this tunable, you may need to increase the total number of
semaphores in the system by increasing the SEMMNS kernel tunable. This will
consume additional system memory.
Compatibility Issues
The change from a hard-coded SEMMSL to a dynamic tunable is transparent to
applications.
In releases prior to 11i, a “SEMMSL” symbol was hardcoded to 2048 in sys/sem.h. This
symbol will no longer always be an accurate representation of the maximum number of
semaphores in a set. Uses of the symbol in programs should be removed. The pstat(2)
interface can return an accurate value for this kernel tunable.
Performance Issues
Some applications will be able to scale to utilize larger systems, where scaling depends
upon the size of a semaphore set.