Tunable Kernel Parameters

Table Of Contents
Process Management Subsystem
Overview of Process Management Parameters
Chapter 8
51
Memory Allocation Management
See also “Memory Space Parameter Summary” on page 48.
PA-RISC hardware supports the allocation of up to 2 GB of virtual memory to a single
process. This memory is divided between the text space where programs are stored, data
space (globals, statics, locals to main(), strings, etc.), dynamic storage (space allocated
by malloc(), stack, registers, etc.), and approximately 200 MB reserved for other
purposes. Most processes never need that much room, and furthermore, the 2 GB limit
exceeds the installed disk space on many systems.
These configurable kernel parameters place protective limits on allocation of process
space: maxtsiz, maxtsiz_64bit, maxdsiz, maxdsiz_64bit, maxssiz, and
maxssiz_64bit.
Different users on different systems have widely divergent process space needs, making
it impractical or frustrating to enforce a fixed limit on text or data storage, for example,
for every user on every system. For example, some users on a research or development
system may have very modest text segment needs yet require very large data segment
space (a small program operating on a very large array, for example), while other users
on the same system may need little data space yet have rather large text (program
storage) requirements.
On the other hand, a production system supporting hundreds of users may require
moderate data storage space per user, yet the aggregate total users on the system may
require massive swap space, making it appropriate to use relatively small space limits to
protect other users from malfunctioning or run-away iterative processes started by a
single user.
Selecting Limits
Selecting limits that meet the needs of all users on the system while also protecting all
users from run-away programs or abuses by others requires a thorough understanding of
individual users' program needs. When selecting values, be aware that the limits chosen
for maxtsiz, maxdsiz, and maxssiz are safety nets to prevent monopolization of virtual
memory resources to the detriment of other users. They are not intended to restrict
individual users' access to needed space.
maxtsiz, maxdsiz, and maxssiz are usually set to values whose combined totals can
exceed available swap space. This is appropriate because most user program
requirements are significantly less than the limit values imposed by these parameters,
and selecting values that protect users from occasional malfunctions rather than using
smaller values that tend to ration space among users improves overall system
performance for everyone on the system.