Kernel Memory Allocation
How kernel memory is allocated and may be
controlled in a vPar PA-RISC environment
1
Version 3.0 4/16/08
I. Introduction
This white paper provides an explanation on how HP-UX Virtual Partitions (vPars) running on PA-RISC
architecture reserve/allocate memory. Specifically, it attempts to explain the allocation of the lower 2GB of
memory address space and the rules for its use. This is not intended to replace the existing customer
viewable document titled “Installing and Managing HP-UX Virtual Partitions” on the
http://docs.hp.com
website. This is intended to explain how you can explicitly specify memory
addresses/ranges in order to overcome the problems of running out of kernel space.
II. The “Rule” or Limitation
The PA-RISC HP-UX kernel is required to be loaded into memory below 2GB and be contiguous because
some heavily accessed low-level machine code kernel routines were written with 32-bit displacements in
order to preserve performance relative to the 32-bit version of HP-UX. There are currently no plans to
change this on PA-RISC. On the Itanium version of HP-UX there is no such optimization so kernels can be
loaded anywhere in memory. Therefore, Itanium servers with the Integrity HP-UX kernel are not required to
be loaded into memory below 2GB.
This PA-RISC HP-UX Kernel requirement also applies in a Virtual Partitions environment with the addition that
ALL vPars kernels’ text and data (added together) must fit under the 2GB lower address space and each
kernel must reside in contiguous memory. This restriction usually isn't a problem unless you significantly
increase some of the tunable parameters that affect the data segment. As the vPar monitor is loading
kernels (booting vPars), if one or more of the kernels won’t fit, the load will fail with a message like this in
the monitor log:
INFO:CPU2:MON:No error free contiguous memory in the system to load the kernel below 2GB
So, in summary, all PA-RISC HP-UX vPar kernels added together must not only fit within the lower 2GB
address space but each kernel must reside in contiguous memory as well. This requirement does not apply
to Integrity HP-UX vPar kernels and for the rest of this document any reference to “kernel” only apples to the
PA-RISC (not Integrity) kernel.
Also note that vPars A.03 has a fixed 64MB memory “granularity”. vPars A.04 and A.05 have a user
defineable memory granularity. All references in this document to 64MB chuncks are refering to the fixed
vPars A.03 memory granularity but may be adjusted for a vPars A.04/A.05 user defined granularity.
1
Alan Hymes, Solution Architect, America’s Presales
Page 1 of 5