HP-UX 11i December 2001 Release Notes

Process, Threads, Memory, and Kernel Parameters
System-V IPC SEMMSL Dynamic Kernel Tunable
Chapter 8
152
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 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 System
Administration Manager (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. Thus, the increase in the possible size of a
semaphore set means that 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
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.