Patent ID: 8462632

Claim:
A computer-implemented method for monitoring packet transmission for virtual machines in a multi-tenant environment, comprising: under control of one or more computer systems configured with executable instructions, adding a hook to a free buffer call interface utilized by a network interface card (NIC) driver, the hook causing information regarding a state of a buffer associated with the NIC driver to be transmitted to a network traffic control component of a network stack; receiving, to the network stack, a packet from a virtual machine; storing information for the packet accessible to the network stack; at a time after a queue of the NIC driver is available to store the packet, forwarding the buffer storing the packet to the NIC driver; in response to the NIC driver being able to send the packet from the queue associated with the NIC driver to the NIC, causing a free buffer interface call to be sent to the memory manager or a component of the network stack, the hook causing information for the packet to be sent to the network traffic control component in response to the free buffer interface call; at the network traffic control component, analyzing the information from the hook and the stored information for the packet to infer transmission of the packet; and utilizing the information about the inferred transmission of the packet, and any other outstanding packets for the virtual machine, to determine whether to throttle the virtual machine.