Patent ID: 7533197
Filing Date: 2009-05-12
Classification: G06F

Abstract:
1. In a multi-node computer system having a plurality of interconnected processing nodes, a method of using DMA engines without page locking by an operating system, the method comprising: a receiving node using an operating system to associate its physical memory locations with corresponding virtual memory addresses, wherein at least one portion of said physical memory is associated with corresponding virtual memory addresses without utilizing operating system page lock controls, thereby permitting the operating system to swap out the content of said at least one portion of said physical memory so that the operating system may re-allocate that physical memory for another use; performing a DMA data transfer operation between a first virtual address space on a sending node and a second virtual address space on the receiving node via a DMA engine; when performing the DMA operation, involving virtual addresses at the receiving node corresponding to the at least one portion of physical memory lacking page lock controls, for determining whether the DMA operation refers to a virtual address within the second virtual address space on the receiving node that is present in physical and that has not been swapped out of physical memory; if the DMA operation refers to a virtual address within the second virtual address space that is not in physical memory, causing the DMA operation to fail; if the DMA operation refers to a virtual address within the second virtual address space that is not in physical memory, causing the receiving node to map the referenced virtual address within the second virtual address space to a physical address; and causing the sending node to retry the DMA operation, wherein the retried DMA operation is performed without page locking on the receiving node.