HP-UX Reference (11i v3 07/02) - 5 Miscellaneous Topics (vol 9)

a
Aries(5)
Itanium(R)-based Systems Only
Aries(5)
/usr/bin/X11/xterm -ssz 24576 -heap_ssz 32768 -ap_heap_ssz 10240
/usr/local/bin/vim -osinc 256 -issz 3072
An example of a system wide global Aries resource configuration file located in the root (
/) directory fol-
lows.
/usr/bin/app1 -osinc 256 -issz 1024 -ts 10
/usr/local/bin/app2 -core_format v1 -corepid
/opt/App/bin/app3 -order
/usr/local/lib/app/bin/x -ssz 24576 -heap_ssz 32768 -ap_heap_ssz 5120
/home/user2/app5 -pa_os_cpu
/home/user4/bin/app6 -ts 8 -ssz 16536 -corefile_v1 -heap_ssz 24576 -osinc 1024
ARIES MEMORY MANAGEMENT
Aries Managed Area (AMA)
Aries consumes a small amount of memory towards the end of a PA-RISC application’s private data seg-
ment. This area is called Aries Managed Area (AMA). When an Itanium-based HP-UX operating system
launches Aries to emulate PA-RISC application, it reserves AMA exclusively for Aries use. The size of the
AMA is decided by following kernel tunable parameters:
pa_maxssiz_32bit
for 32-bit Aries
pa_maxssiz_64bit
for 64-bit Aries
See pa_maxssiz(5) for more details.
The Itanium-based HP-UX operating system passes a pointer
load_info to a structure of type
load_info_t defined in /usr/include/crt0.h
, to Aries. The start of AMA is marked by
load_info->li_priv_mmf_start
and the end of AMA is marked by load_info-
>li_bstore_start
. Aries uses AMA to store following data:
1. Aries’s initialized data, uninitialized data (BSS) and thread local storage (TLS)
2. Aries heap for
malloc() calls used by Aries code and for creating Aries threads for emulation of PA-
RISC application’s threads
3. PA-RISC application’s stack
4. Translation code buffer (code cache region)
5. Aries’s private data structures
6. Memory area used by Aries dynamic translator as heap
The whole of AMA space is not allocated at once. Aries allocates memory from AMA dynamically. Due to
AMA, a PA-RISC application running under Aries will have larger memory footprint (also called resident
memory) compared to PA-RISC native system. The increase in resident memory size is not equal to the
size of AMA. Instead, the amount of increase in resident memory size is decided by how much memory
actually gets allocated from AMA.
Relation between pa_maxssiz_32|64bit, and Aries Parameters
32-bit Aries
At process startup time, Aries reserves space for PA-RISC application stack in AMA. The maximum size of
PA-RISC application stack is computed as follows:
max_pa_stack_size = least of following two factors:
1. ti_current value in structure of type tuneinfo2_t defined in /usr/include/sys/dyntune.h
by making system call tuneinfo2 with parameter maxssiz.
2. A value xed by Aries based on current value of kernel tunable parameter
pa_maxssiz_32bit as follows:
if (pa_maxssiz_32bit < 128 MB)
max_pa_stack_size = pa_maxssiz_32bit - 48 MB
else
max_pa_stack_size = pa_maxssiz_32bit - 64 MB
AMA is divided into different memory regions as follows:
HP-UX 11i Version 3: February 2007 8 Hewlett-Packard Company 71