Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > M

maxssiz(5)

Tunable Kernel Parameters
HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

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 process 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 SIGSEGV 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 space.

One method to minimize impact is to use a script which launches the applications needing maximum stack size. Within the script, raise the value of maxssiz_64bit, launch the application, and then lower maxssiz_64bit to its previous value. This will allow the specific application to benefit from the increased stack size but will not cause additional stack growth for applications which do not need it.

When Should the Value of This Tunable Be Lowered?

This tunable should be lowered if swap space is at a premium on the machine and programs that are using too much swap space are affecting the execution of other critical user processes.

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?

The maxdsiz tunable should be considered because it also limits swap usage by process data segment.

WARNINGS

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.

Installation of optional kernel software, from HP or other vendors, may cause changes to tunable parameter values. After installation, some tunable parameters may no longer be at the default or recommended values. For information about the effects of installation on tunable values, consult the documentation for the kernel software being installed. For information about optional kernel software that was factory installed on your system, see HP-UX Release Notes at http://docs.hp.com.

AUTHOR

maxssiz was developed by HP.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.