Variable large page size support

The IBM® Power Systems processor-based servers support mixing of 4 KB, 64 KB, and 16 MB page sizes within a single segment.

The AIX® operating system supports the use of 16 MB pages to improve high-performance environments, however, the memory pages are not flexible or easy to manage. The 16 MB pages cannot be paged out and a new 16 MB page cannot be automatically created.

The IBM Power Systems processor-based servers support 16 MB mixed pages that give the operating system the flexibility of managing memory on a 4 KB or 64 KB granularity while providing applications the advantage of accessing the memory by using 16 MB hardware page translations. The use of this hardware feature on the AIX operating system is called Variable large page size support (VLPSS).

The VLPSS collocates a 16 MB sized and aligned region of user memory to a block of physically contiguous 4 KB or 64 KB pages. These memory pages are accessible through a single 16 MB translation. Because a single 16 MB page translation is used, the underlying 4 KB and 64 KB pages must have the same page attributes and must be resident in memory. The page attributes include read/write page protection, storage key protection, and no-execute protection.

The 16 MB VLPSS pages can be demoted from 16 MB translations to the original 4 KB or 64 KB page size translations by the operating system. The pages are demoted when the operating system needs to page out parts of the memory to a paging device or when the application changes the page attributes for a 16 MB region so that they are not uniform. True 16 MB pages do not have this flexibility.

Applications can take advantage of the VPLSS feature by using the vm_pattr system call, and by specifying the VM_PA_SET_PSIZE_EXTENDED command. The operating system can choose to accept the advice from the vm_pattr system call or reject the advice in case the system is affected.

The 16 MB page size is a larger amount of contiguous memory when compared to the 64 KB dynamic variable page size. Collocating and promoting memory to use VLPSS is an expensive operation that can have negative systemwide performance implications. Therefore, promoting memory to 16 MB page size has limitations that the Dynamic variable page size support does not have.

The VLPSS feature is restricted to users who have the CAP_BYPASS_RAC_VMM and CAP_PROPAGATE capabilities or who have the root authority.

The 16 MB user memory regions must be fully resident in memory to qualify for the VLPSS feature. The operating system needs a large amount of system memory to use the VLPSS feature. The minimum memory size required for this feature is 16 GB.