Patent ID: 8291135

Claim:
In a system that includes a host computing machine and a storage adapter in which the host machine hosts a virtual machine having a guest operating system (guest) and a virtualization intermediary, a method to coalesce a virtual interrupt responsive to an IO completion, the method comprising: reading by the virtualization intermediary a first value from a shared memory space indicative of a most recent memory location of a circular IO completion queue from which the guest processed an IO completion; determining by the virtualization intermediary a second value indicative of a memory location of the circular IO completion queue to which an IO completion was most recently added; determining by the virtualization intermediary based upon the first value and the second value, a measure of a number of IO completions that are ready for processing in the IO completion queue; reading by the virtualization intermediary a third value from the shared memory space indicative of a number of outstanding IO requests made by the guest and not yet processed by the guest; determining by the virtualization intermediary based upon the third value and the measure of the number of IO completions that are ready for processing, a measure of the number of pending IO requests that are outstanding and have not yet resulted in completions landing in the IO completion queue; when the measure of pending IO requests exceeds a first threshold, determining by the virtualization intermediary whether latency in interrupt delivery exceeds a second threshold; when the latency of interrupt delivery does not exceed the second threshold, then not dispatching an interrupt.