Variable Page Size

   

The HP-UX 11.00 release introduced variable page sizes (vps) also known as performance optimized page sizing (pops). This feature allowed the kernel to take advantage of new hardware features introduces in PA-RISC 2.0 processors. On the new wide processors the tlb has an additional field introduced to allow the mapping of a variety of virtual-to-physical page translation sizes. The basic page frame remains 4Kbytes but the vps parameter allows a single tlb entry to map from 4Kbytes to a potential maximum of 1048576 Kbytes of contiguous physical memory with a single entry. The page size is determined by a 5-bit field in the htbl/pdir entry. The current implemented sizes range from 1 to 256K page frames (each progressively larger size is 4X the previous small size). The kernel tracks a process's memory useage and may adjust the page size or a program or a programmer may use the chatr command to adjust the page size. There are several kernel tunable parameters used to control this feature:

vps_pagesize This parameter sets the base page size and defaults to 4Kbytes

vps_cieling This parameter sets the maximum page size the kernel may select and is currently limited to 65536KBytes

vps_chatr_cieling This is the maximum page size which may be requested by the chatr()and is limited to 1048576Kbytes

With respect to kernel memory management, the various sizes are referred to as a page group. As we see in Figure 6-17, a page_group structure helps the kernel identify and manage consecutive blocks of free pages.

Figure 6-17. Page Groups

graphics/06fig17.gif


The page_group structure contains information to help the kernel decide if this group may be combined, coalesced with its "buddies" to form a larger group. Let's examine the structure in Listing 6.14.

Listing 6.14. q4> fields struct page_group
 A linkage pointer connecting all groups in a pool  0 0 4 0 *     pg_next A pointer to the start of this group's pfdat array  4 0 4 0 *     pg_pfdat Number of page frames in this group  8 0 4 0 int   pg_npfns First page frame in this group 12 0 4 0 u_int pg_firstpfn Pointer to the pool this group belongs to 16 0 4 0 *     pg_pool 



HP-UX 11i Internals
HP-UX 11i Internals
ISBN: 0130328618
EAN: 2147483647
Year: 2006
Pages: 167

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net