maxssiz.5 (2010 09)

m
maxssiz(5) maxssiz(5)
(Tunable Kernel Parameters)
NAME
maxssiz, maxssiz_64bit - maximum size (in bytes) of the stack for any user process
VALUES
Default
32 bit:
0x800000 (8MB)
64 bit:
0x10000000 (256MB)
Allowed values
32 bit minimum:
0x40000
32 bit maximum: 0x17F00000
64 bit minimum: 0x40000
64 bit maximum: 0x80000000
DESCRIPTION
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?
Anyone.
Restrictions on Changing
Changes to this tunable take effect only for processes started after the modification. In addition, a pro-
cess which modifies its
rlimit for the stack segment propagates the modified limit to all child processes,
thereby exempting them from any future modification of maxssiz. The value specified is expected to be
a multiple of the base page size. See the description of _SC_PAGE_SIZE
in getconf (1) for more details. If
the value specified is not a multiple of the base page size, it will be rounded down to the nearest multiple
of the base page size.
When Should the Value of This Tunable Be Raised?
maxssiz should be raised if user processes are generating the console error message:
Warning: maxssiz value too small
Processes generating this error message will likely terminate with the segmentation violation error [SIG-
SEGV] and dump core.
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 that 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 increases the amount of reservable
swap per process. This could exhaust the swap space on the system by allowing a process with a memory
leak or a malicious program that uses huge amounts of memory to reserve too much swap space.
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.
On Itanium-based systems, raising the value of
maxssiz_64bit will cause an increase in the kernel
data structures used to represent the larger stack space. This may use enough additional swap space
that the user may see performance degradation or application failure due to lack of reservable swap
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)