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) running inside a Virtual Machine (VM);
b. setting a VM timeout deadline to prevent the VM from failing if a response from the I/O device is not received;
c. in a hypervisor that manages the VM, setting a supervisory timeout deadline for the I/O device to respond, wherein the supervisory timeout 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 supervisory timeout deadline, using the hypervisor to pause the Guest OS by halting all processes running on a virtual CPU associated with the VM, in order to prevent the Guest OS from hanging;
e. freezing system time of the Guest OS;
f. activating a handler for the I/O device response in the hypervisor, to process the response from the I/O device;
g. upon receipt of the response by the handler after the supervisory timeout deadline, forwarding the response to the Guest OS, unpausing the Guest OS and unfreezing the system time of the Guest OS;
h. upon receipt of the response by the Guest OS after the supervisory timeout deadline, and after the Guest OS is unpaused by the hypervisor, the Guest OS is able to receive the response from the hardware device and delete the VM timeout deadline; and
i. if no response is received from the I/O device, the Guest OS is kept in a paused state with a frozen Guest system time.
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.
10 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) running inside a Virtual Machine (VM); b. setting a VM timeout deadline to prevent the VM from failing if a response from the I/O device is not received; c. in a hypervisor that manages the VM, setting a supervisory timeout deadline for the I/O device to respond, wherein the supervisory timeout 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 supervisory timeout deadline, using the hypervisor to pause the Guest OS by halting all processes running on a virtual CPU associated with the VM, in order to prevent the Guest OS from hanging; e. freezing system time of the Guest OS; f. activating a handler for the I/O device response in the hypervisor, to process the response from the I/O device; g. upon receipt of the response by the handler after the supervisory timeout deadline, forwarding the response to the Guest OS, unpausing the Guest OS and unfreezing the system time of the Guest OS; h. upon receipt of the response by the Guest OS after the supervisory timeout deadline, and after the Guest OS is unpaused by the hypervisor, the Guest OS is able to receive the response from the hardware device and delete the VM timeout deadline; and i. if no response is received from the I/O device, the Guest OS is kept in a paused state with a frozen Guest system time. - 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) running inside a Virtual Machine (VM); b. setting a VM timeout deadline to prevent the VM from failing if a response from the I/O device is not received; c. in a hypervisor that manages the VM, setting a supervisory timeout deadline for the I/O device to respond, wherein the supervisory timeout deadline is shorter than the VM timeout deadline; d. receiving additional requests to the I/O device prior to expiration of the supervisory timeout deadline; e. in the hypervisor, setting supervisory timeout deadlines for the additional requests, and writing all the supervisory timeout deadlines into a deadline structure including the supervisory timeout deadlines for the additional requests to the I/O device; f. if a response from the I/O device is received prior to expiration of the supervisory timeout deadline in c, forwarding the response to the Guest OS, and deleting the supervisory timeout 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 supervisory timeout deadline in c, pausing the Guest OS by halting all processes running on a virtual CPU associated with the VM; h. freezing system time of the Guest OS; i. activating a handler for the I/O device response in the hypervisor, to process the response from the I/O device; j. upon receipt, by the hander, of the response to the request to the I/O device after the supervisory timeout deadline, checking if other timeout deadlines are pending in the deadline structure; k. if any pending requests remain in the deadline structure, keeping the Guest OS paused; l. if no other timeout deadlines are pending in the deadline structure, unpausing the Guest OS and unfreezing system time of the Guest OS; and m. if no response is received from the I/O device, the Guest OS is kept in a the paused state with a frozen Guest system time. - View Dependent Claims (9, 10, 11)
-
Specification