A method, computer program product, and a data processing system for
supporting memory addresses with holes is provided. A first physical
address range allocated for system memory for an operating system run by
a processor configured to support logical partitioning is virtualized to
produce a first logical address range. A second physical address range
allocated for system memory for the operating system is virtualized to
produce a second logical address range. The first physical address range
and the second physical address range are non-contiguous. Virtualization
of the first and second physical address ranges is had such that the
first logical address range and the second logical address range are
contiguous. A memory mapped input/output physical address range that is
intermediate the first physical address range and the second physical
address range is virtualized to produce a third logical address range. A
lowermost logical address of the third logical address range exceeds a
respective upper most logical address of the first and second logical
address ranges.