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, wherein the hardware device interrupt manager is configured to update the log of events with a message indicating that the interrupt has been recorded in the second memory location responsive to recording the interrupt in the second memory location at a time when the virtual processor is not active; and schedule the virtual processor for execution on a hardware processor in the computer responsive to detecting the message in the log of events, wherein the virtual processor is scheduled in order to service the interrupt.