A method, system and computer program product for eliminating the latency
in searching for contiguous memory space by an IO DMA request of a device
driver. Three new application programming interfaces (APIs) are provided
within the operating system (OS) code that allows the device driver(s) to
(1) pre-request and pre-allocate the IO DMA address range from the OS
during the IPL and maintain control of the address, (2) map a system
(virtual/physical) address range to a specific pre-allocated IO DMA
address range, and (3) free the pre-allocated IO DMA address space back
to the kernel when the space is no longer required. Utilizing these APIs
enables advanced IO DMA address mapping techniques maintained by the
device drivers, and the assigned/allocated IO DMA address space is no
longer fragmented, and the latency of completing the IO DMA mapping is
substantially reduced/eliminated.