1. A method to share memory resources between first and second virtual machines, the method comprising: enabling a sharing of a memory page of a source domain executing on a first virtual machine with a destination domain executing on a second virtual machine; mapping the memory page to an address space of the destination domain; adding an address translation entry for the memory page in a table; and sharing the memory page with a hardware device for direct memory access of the memory page by the hardware device.