1. A computer readable storage medium storing a plurality of instructions which, when executed on a computer: read a first memory location in a memory system, wherein the first memory location stores a log of events detected in the computer, wherein the log of events is updated by a hardware device interrupt manager in the computer responsive to the hardware device interrupt manager recording an interrupt in a second memory location in the memory system, wherein the second memory location is assigned to store interrupt data corresponding to a virtual processor in a virtual machine executing on the computer, wherein the hardware device interrupt manager is configured to receive the interrupt and to determine that the interrupt is targeted at the virtual processor, and wherein the interrupt is sourced by a device that is assigned to the virtual machine; and schedule the virtual processor for execution on a hardware processor in the computer responsive to detecting that the interrupt has been recorded for the virtual processor as indicated in the log of events, wherein the virtual processor is scheduled in order to service the interrupt.