Patent ID: 8875162
Filing Date: 2014-10-28
Classification: G06F

Abstract:
1. A computer program product embodied in a non-transitory computer readable storage medium and including program code executable in a computer system that includes at least one virtual machine that runs as a guest on a host hardware platform, that has a guest operating system and at least one virtual processor, and that submits I/O requests to at least one virtual device that corresponds to an emulated physical device, the program code implementing a method for virtualizing I/O completions by the virtual device, the method comprising: backing the virtual device with a backing device; determining timing constraints of the emulated physical device, including a nominal I/O completion delay time; defining timing parameters for scheduling deliveries of completion interrupts during emulation of the physical device including at least partially basing the timing parameters on the timing constraints of the emulated physical device; detecting an actual I/O completion interrupt from the backing device; monitoring for a safepoint, that is, a point of execution of the virtual processor that indicates that the virtual processor is in a condition to receive the actual I/O completion interrupt; if a safepoint is detected that occurs before the nominal I/O completion delay time, dispatching the actual I/O completion interrupt upon detection of the safepoint, before the nominal I/O completion delay time; thereby enabling device emulation acceleration relative to limiting deliveries of said completion interrupt to a schedule that is based on said timing parameters alone.