HP-UX Reference (11i v3 07/02) - 5 Miscellaneous Topics (vol 9)
v
vps_chatr_ceiling(5) vps_chatr_ceiling(5)
(Tunable Kernel Parameters)
NAME
vps_chatr_ceiling - maximum (in kilobytes) of user selectable page size
VALUES
Default
1048576 (KB)
Allowed values
Minimum: 4 (KB)
Maximum: 4194304 (KB)
DESCRIPTION
The Translation Look-aside Buffer (TLB) is a microprocessor feature for virtual memory, where the most
recent physical to virtual address translations are cached, in the expectation that these translations are
likely to be needed again soon. This is based on the principles of spatial and temporal locality of address
references in programs. Historically, the TLB was entirely managed within hardware to achieve speed
optimizations while sacrificing the flexibility of software implementations, for example, easily changed algo-
rithms or table implementations.
In recent years, the flexibility of a software implementation of the TLB has regained importance over pure
hardware speed. Specifically, the idea of logical grouping of physical frames (whose size is fixed in
hardware) into "superpages" or "large pages", which can be represented in software TLB algorithms using a
single base address translation for many physical frames, significantly reduces the lost cycles due to page
faults assuming reasonable spatial and temporal locality. For example, consider a scientific application
working on an array where each element requires 1K of memory. Using the usual 4K physical frame size,
and referencing the array sequentially causes a page fault that requires the page be read into memory from
disk or swap, and loads the TLB with the frame base address translation every fifth element.
The vps_chatr_ceiling
tunable parameter sets the upper bound for virtual page size on files that a
user specifies, through
chatr, or any programmatic interfaces or other mechanisms. (Programmatic
interface refers to an interface that can be called from a program.)
Originally, this tunable was created to set an upper bound for virtual page size set by the user through the
chatr command on the binary. Hence the parameter name vps_chatr_ceiling
(where "vps" refers
to variable page size).
Who is Expected to Change This Tunable?
Anyone.
Restrictions on Changing
Changes to this tunable take effect for any subsequent physical memory allocations. It does not affect any
physical memory that has already been allocated.
When Should the Value of This Tunable Be Raised?
This tunable should be raised when a user application, or in general, the system with known large memory
set usage (such as a database) is expected to need larger pages than the current value allows.
What Are the Side Effects of Raising the Value?
The side effects depend on the actual memory usage in the system and whether large page sizes are used
indiscriminately, that is, with no performance justification. In the first case, mistakenly indicating that an
application use a large page size (512 MB or more, for example) when the application accesses memory in a
sparse pattern, or has a much smaller working set, in general. For example, an application uses a shell
script which only needs 64 KB of memory total, or a scientific sparse array analysis program that works on
large data sets, but only on very small portions of the data, where the rest can be swapped out or not even
allocated. Setting this value for the application results in several frames of physical memory being wasted,
because if any of a virtual large page is in core memory, then all of it must be loaded. This could poten-
tially lead to unnecessary pageouts and pageins, that is, excessive disk activity, leading to performance
degradation.
In the second case, where several users request large page sizes for their application for no good reason,
keeping this tunable low minimizes the performance hit on the rest of the system.
Modern architectures support very large page sizes (up to 4 GB for IA and up to 1 GB for PA-RISC). Set-
ting vps_chatr_ceiling to very high values (anything above 64 KB) should be done with extreme caution. It
544 Hewlett-Packard Company − 1 − HP-UX 11i Version 3: February 2007