IP Library Granted Patent US 9,122,505
Granted Patent B1
US 9,122,505 · App. 13/756,181 · Granted Sep 1, 2015

System and method for handling I/O timeout deadlines in virtualized systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,122,505
App. No.
13/756,181
Granted
Sep 1, 2015
Kind
B1
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.

Claims (40)

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.

2. The method of claim 1 , wherein the I/O device is a hard disk drive.

3. The method of claim 1 , wherein the I/O device is a network storage device.

4. The method of claim 1 , wherein the I/O device is any of:

a flash drive;

a magnetic tape;

a CD ROM drive; and

a DVD drive.

5. The method of claim 1 , wherein the I/O device is any hardware device for which the Guest OS has a driver.

6. The method of claim 1 , further comprising compensating for time lags in a time frame of the Guest OS relative to a time frame of a host OS.

7. The method of claim 6 , wherein the time frame of the Guest OS is nonlinearly related to the time frame of the host OS.

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.

9. The method of claim 8 , wherein the deadline structure is any of:

a simple list;

an ordered list; and

a hierarchical tree and other structure for recording, storage and quick retrieval.

10. The method of claim 8 , wherein the hypervisor handles I/O responses during the Guest OS pause with longer in duration Guest OS deadlines if the response has been received while the Guest OS is paused, and deletes those deadlines from the deadline structure.

11. A computer program product comprising a non-transitory computer-readable storage medium storing code for performing the steps of claim 8 .

Assignments (7)
SECURITY INTEREST Recorded Sep 25, 2025
From: CLOUDBLUE LLC
To: BANK OF MONTREAL
Reel/Frame 072935/0233 →
NUNC PRO TUNC ASSIGNMENT Recorded Nov 9, 2021
From: INGRAM MICRO INC.
To: CLOUDBLUE LLC
Reel/Frame 058081/0507 →
NOTES SECURITY AGREEMENT Recorded Jul 2, 2021
From: INGRAM MICRO INC.; ACTIFY LLC; SHIPWIRE, INC.; BRIGHTPOINT, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 056756/0834 →
TERM LOAN SECURITY AGREEMENT Recorded Jul 2, 2021
From: INGRAM MICRO INC.; ACTIFY LLC; SHIPWIRE, INC.; BRIGHTPOINT, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 056756/0806 →
ABL SECURITY AGREEMENT Recorded Jul 2, 2021
From: INGRAM MICRO INC.; ACTIFY LLC; SHIPWIRE, INC.; BRIGHTPOINT, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 056756/0820 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2016
From: PARALLELS IP HOLDINGS GMBH
To: INGRAM MICRO INC.
Reel/Frame 037729/0979 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2013
From: LUNEV, DENIS
To: PARALLELS IP HOLDINGS GMBH
Reel/Frame 029735/0500 →