Tunable Kernel Parameters
NAME [Toc] [Back]
maxssiz, maxssiz_64bit - maximum size (in bytes) of the stack for any
VALUES [Toc] [Back]
32 bit default: 0x800000 (8MB)
64 bit default: 0x10000000 (256MB)
Allowed values [Toc] [Back]
32 bit minimum: 0x40000
32 bit maximum: 0x17F00000
64 bit minimum: 0x40000
64 bit maximum: 0x40000000
DESCRIPTION [Toc] [Back]
User programs on HP-UX systems are composed of five discrete segments
of virtual memory: text (or code), data, stack, shared, and I/O. Each
segment occupies an architecturally defined range of the virtual
address space which sets the upper limit to their size. However,
text, data and stack segments may have a smaller maximum enforced via
the maxtsiz, maxdsiz and maxssiz tunables.
maxssiz and maxssiz_64bit define the maximum size of the stack segment
for 32-bit and 64-bit processes. The stack segment contains the
actual program stack and the storage space for registers on a process
or thread context switch.
Who is Expected to Change This Tunable?
Restrictions on Changing [Toc] [Back]
Changes to this tunable take effect only for processes started after
the modification. In addition, a process which modifies it's rlimit
for the stack segment propagates the modified limit to all child
processes, thereby exempting them from any future modification of
When Should the Value of This Tunable Be Raised?
maxssiz should be raised if user processes are generating the console
Warning: maxssiz value too small.
Processes generating this error message will likely terminate with the
segmentation violation error [SIGSEGV] and dump core.
Hewlett-Packard Company - 1 - HP-UX 11i Version 2: August 2003
Tunable Kernel Parameters
What Are the Side Effects of Raising the Value?
Raising this tunable by definition allows larger stack segments for
every process. This means that maxdsiz and maxssiz function as
limitations on the amount of swap space which can be reserved or used
by each process. Therefore, using more virtual address space does not
translate directly to using more physical address space because
virtual pages can be swapped out.
If swap space on the machine is near capacity, raising this tunable
will increase the amount of swap that is reservable per process. This
would allow a process with a memory leak, or written to use a great
deal of memory, to reserve more swap, and possibly exhaust the swap
space on the system.
It is also important to realize that for 32 bit user processes, data
and stack are located contiguously. Raising the amount of virtual
address space reserved for the stack segment implies lowering the
amount of virtual address space for the data segment. In other words,
raising maxssiz may cause user processes which use all (or nearly all)
of the previously available data area to fail allocation with the
[ENOMEM] error, even with maxdsiz set above the current amount of
memory allocated for data by this process.
When Should the Value of This Tunable Be Lowered?
This tunable should be lowered if swap space is at a premium on the
system, and several poorly written programs, or malicious programs,
are using swap space to the detriment of more critical user processes.
For example, several students at a university might execute less than
production level code and leak memory all over the place.
What Are the Side Effects of Lowering the Value?
Lowering this tunable will limit the amount of memory available for
stack usage per process. This could cause processes with large stack
requirements to terminate with a [SIGSEGV] error.
What Other Tunable Values Should Be Changed at the Same Time?
maxdsiz should be considered because it performs a similar function of
limiting swap usage by process data segment.
WARNINGS [Toc] [Back]
All HP-UX kernel tunable parameters are release specific. This
parameter may be removed or have its meaning changed in future
releases of HP-UX.
AUTHOR [Toc] [Back]
maxssiz was developed by HP.
SEE ALSO [Toc] [Back]
Hewlett-Packard Company - 2 - HP-UX 11i Version 2: August 2003 [ Back ]