A method and system for efficiently migrating in-use small pages to enable
promotion of contiguous small pages into large pages in a memory
environment that includes small pages pinned to real memory and/or and
small pages mapped to direct memory access (DMA) within real memory. The
operating system is designed with a two-phase page promotion
engine/utility that enables coalescing contiguous small virtual memory
pages to create large virtual memory pages by migrating in-use small
memory pages including those that are pinned and/or mapped to DMA.