Patent ID: 8489699

Claim:
In a system of computing machines that includes a source computing machine and a destination computing machine, wherein the source computing machine is configured to implement a source virtual machine (VM) and a virtualization intermediary, and wherein the source computing machine includes a physical storage adapter that is configured to implement a physical function (PF) and a virtual function (VF) to support IO operations between the source VM and physical storage accessible by the source VM, a method to migrate the source VM from the source machine to the destination machine comprising: inserting one or more requests into a request queue within a first memory region of the source computing machine that is associated with the source VM; providing within a memory region of the VF first state information that is indicative of locations of the requests inserted to the request queue; de-queuing one or more of the requests from one or more of the locations in the request queue indicated by the first state information to the VF; transmitting the one or more requests from the VF to the physical storage; receiving by the VF from the physical storage corresponding responses to the transmitted requests; suspending the de-queuing of requests from the request queue to the VF; while suspending the de-queuing of requests, determining when no more outstanding responses to previous requests remain to be received; in response to a determination that no more outstanding responses to previous requests remain to be received, transferring the first state information from the VF to the PF and from the PF to a second memory region associated with the virtualization intermediary within the source computing machine; after transferring the first state information to the second memory region, de-queuing one or more additional requests from one or more other locations in the request queue indicated by the first state information within the second memory region; transmitting the one or more additional requests from the PF to the physical storage; and utilizing the virtualization intermediary to transmit the first state information from the second memory region within the source computing machine to the destination machine.