System and method for handling I/O timeout deadlines in virtualized systems
First Claim
1. A method for avoiding Guest I/O timeout, comprising:
- a. generating a request to an I/O device in a Guest Operating System (OS);
b. setting a Virtual Machine (VM) timeout deadline to prevent a VM from failing if a response from the I/O device is not received;
c. in a component that manages the VM, setting an I/O deadline for the I/O device to respond, wherein the I/O deadline is shorter than the VM timeout deadline;
d. if a response from the I/O device is not received prior to expiration of the I/O deadline, pausing the Guest OS by halting all processes running on a virtual CPU associated with the VM;
e. freezing a system time of the Guest OS;
f. upon receipt of the response after the I/O deadline, forwarding the response to the Guest OS, unpausing the Guest OS and unfreezing the system time;
g. upon receipt of the response by the Guest OS after the I/O deadline, and after the Guest OS is unpaused, the Guest OS is able to receive the response from the I/O device and delete the VM timeout deadline; and
h. if no response is received from the I/O device, the Guest OS is kept in a paused state with the system time frozen.
6 Assignments
0 Petitions
Accused Products
Abstract
Method for avoiding Guest I/O timeout, including generating a request to an I/O device in a Guest Operating System (GOS) running inside a VM; setting a VM timeout deadline; in a hypervisor, setting a supervisory timeout deadline for the I/O device to respond that is shorter than the VM timeout deadline; if no response is received before expiration of the supervisory timeout deadline, pausing the GOS; freezing system time of the GOS; activating a handler for the I/O device response in the hypervisor; upon receipt of the response prior to the supervisory timeout deadline, forwarding the response to the GOS, unpausing the GOS, unfreezing the system time of the GOS; upon receipt of the response after the supervisory timeout deadline, and after the GOS is unpaused by the hypervisor, the Guest OS receives the response from the hardware device; and if no response is received, the GOS is kept paused.
9 Citations
11 Claims
-
1. A method for avoiding Guest I/O timeout, comprising:
-
a. generating a request to an I/O device in a Guest Operating System (OS); b. setting a Virtual Machine (VM) timeout deadline to prevent a VM from failing if a response from the I/O device is not received; c. in a component that manages the VM, setting an I/O deadline for the I/O device to respond, wherein the I/O deadline is shorter than the VM timeout deadline; d. if a response from the I/O device is not received prior to expiration of the I/O deadline, pausing the Guest OS by halting all processes running on a virtual CPU associated with the VM; e. freezing a system time of the Guest OS; f. upon receipt of the response after the I/O deadline, forwarding the response to the Guest OS, unpausing the Guest OS and unfreezing the system time; g. upon receipt of the response by the Guest OS after the I/O deadline, and after the Guest OS is unpaused, the Guest OS is able to receive the response from the I/O device and delete the VM timeout deadline; and h. if no response is received from the I/O device, the Guest OS is kept in a paused state with the system time frozen. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for avoiding multiple Guest I/O timeouts, comprising:
-
a. generating a request to an I/O device in a Guest Operating System (OS); b. setting a VM timeout deadline to prevent a Virtual Machine (VM) from failing if a response from the I/O device is not received; c. in a component that has a higher privilege level than the VM, setting an I/O deadline for the I/O device to respond, wherein the I/O deadline is shorter than the VM timeout deadline; d. receiving additional requests to the I/O device prior to expiration of the I/O deadline; e. setting I/O deadlines for the additional requests, and writing all the I/O deadlines into a deadline structure; f. if a response from the I/O device is received prior to expiration of the I/O deadline in c, forwarding the response to the Guest OS, and deleting the I/O deadline for the request to the I/O device corresponding to the received response, from the deadline structure; g. if a response from the I/O device is not received prior to expiration of the I/O deadline in c, pausing the Guest OS by halting all processes running on a virtual CPU associated with the VM; h. freezing a system time of the Guest OS; i. upon receipt of the response to the request after the I/O deadline, checking if other requests from the VM are pending in the deadline structure; j. if any pending requests remain in the deadline structure, keeping the Guest OS paused; k. if no other requests from the VM are pending in the deadline structure, unpausing the Guest OS and unfreezing the system time; and l. if no response is received from the I/O device, the Guest OS remains paused with the system time frozen. - View Dependent Claims (9, 10, 11)
-
Specification