Patent ID: 8886862
Filing Date: 2014-11-11
Classification: G06F

Abstract:
1. A method for computing, comprising: running software including a plurality of virtual machines on a computer having one or more cores and a memory, such that different ones of the virtual machines are swapped out of operation on the cores at different times; assigning to the virtual machines, by operation of the software, respective interrupt addresses in the memory; upon occurrence on an input/output (I/O) device connected by a bus to the computer of an event that would cause the I/O device to direct an interrupt to a given virtual machine, identifying at the I/O device whether the given virtual machine is active or swapped out, and deciding, when the given virtual machine is swapped out of operation, not to send an interrupt directly to the CPU but to write an interrupt message from the I/O device to a respective interrupt address that is assigned to the given virtual machine in the memory, or to raise the hardware interrupt immediately when the given virtual machine is active; and upon activating the given virtual machine on a given core after writing of the interrupt message, copying, by operation of the software, a context of the given virtual machine from the memory to the given core and automatically raising a hardware interrupt on the given core responsively to the interrupt message in the memory.