Patent ID: 8544010

Claim:
A method performed in a first process associated with a hypervisor running on a first CPU of a multiprocessor computer system for speculatively waking a second process associated with a user virtual machine to run on a second CPU of the multiprocessor computer system, the method comprising the steps of: receiving a notification from an I/O device indicating availability of data from the I/O device, the notification having an associated vector; identifying that the second process correlates to the vector by checking a data structure that maintains correlations between vectors for received interrupts and a plurality of processes supported by the multiprocessor computer system that includes the second process; receiving an inter-virtual machine notification request from a third process associated with a driver virtual machine to wake up the user virtual machine after the driver virtual machine copies the data into a shared memory; incrementing an entry in the data structure corresponding to the user virtual machine and an interrupt vector for the interrupt; transmitting a wake-up message to the second process to wake up the second process to poll the shared memory for the data made available by the third process; and forwarding the notification to the third process comprising a handler running on the first CPU, wherein the handler is configured to handle the notification for the second process running on the second CPU, and wherein the handler is a device driver corresponding to the I/O device.