Patent ID: 7334076

Claim:
A method of sharing pages between virtual machines, the virtual machines operating using resources from a host computer, the method comprising: allocating a temporary guest physical address range of a first virtual machine for sharing pages between virtual machines; receiving a request from a second virtual machine to access pages available to the first virtual machine, the request received by virtualization software on the host computer; incrementing a reference counter of pending accesses to indicate a pending DMA transfer and verifying that a guest physical address to a host physical address mapping for the pages is valid and a DMA (direct memory access) exclusion vector allows access to the pages; mapping the pages into a portion of the temporary guest physical address range of the first virtual machine; allowing the pages available to the first virtual machine to be accessed by the second virtual machine by setting up a DMA controller to transfer information between the second virtual machine and a range of host physical addresses; completing access of the pages by the second virtual machine and notifying the virtualization software of access completion; decrementing the reference counter of pending accesses to the pages by setting a DMA exclusion vector to exclude the DMA controller from operating on the pages if the reference counter is decremented to zero; and removing the mapping of the pages from the temporary guest physical address range if the reference counter is zero.