Networking stack of virtualization software configured to support latency sensitive virtual machines

US9703589B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9703589-B2
Application numberUS-201414468181-A
CountryUS
Kind codeB2
Filing dateAug 25, 2014
Priority dateAug 26, 2013
Publication dateJul 11, 2017
Grant dateJul 11, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A host computer has a plurality of containers including a first container executing therein, where the host also includes a physical network interface controller (NIC). A packet handling interrupt is detected upon receipt of a first data packet associated with the first container If the first virtual machine is latency sensitive, then the packet handling interrupt is processed. If the first virtual machine is not latency sensitive, then the first data packet is queued and processing of the packet handling interrupt is delayed.

First claim

Opening claim text (preview).

We claim: 1. In a host computer having a plurality of containers including a first container executing therein, the host including a physical network interface controller (physical NIC), a method of transmitting and receiving data packets to and from the first container, the method performed by a virtual network interface controller (virtual NIC) operating on a hypervisor of the host computer comprising: detecting a packet handling interrupt upon receiving a first data packet that is associated with the first container; determining, by inspecting a memory-based data structure that contains latency sensitivity data for each of the plurality of containers, whether the first container is latency sensitive; if the first container is determined to be latency sensitive, then processing the packet handling interrupt by forwarding the first data packet to a virtual switch to which the virtual NIC is connected when the first data packet is received from the first container, or forwarding the first data packet to the first container when the first data packet is received from the virtual switch; if the first container is determined to be not latency sensitive, then: queuing the first data packet at the virtual NIC; and delaying processing of the packet handling interrupt by the virtual NIC. 2. The method of claim 1 wherein the first container is a first virtual machine. 3. The method of claim 2 , wherein determining whether the first virtual machine is latency sensitive comprises: reading from the memory-based data structure a latency sensitivity indicator for the first virtual machine; and determining whether the latency sensitivity indicator is a predetermined value. 4. The method of claim 3 , wherein queuing the first data packet comprises storing the first data packet in a data structure associated with the virtual NIC that is configured to store a plurality of data packets. 5. The method of claim 4 , further comprising: determining whether a packet rate for the virtual NIC is less than a predetermined threshold rate; if the packet rate for the virtual NIC is not less than the predetermined threshold rate, then queuing the first data packet and delaying processing of the packet handling interrupt; and if the packet rate for the virtual NIC is less than the predetermined threshold rate, then processing the packet handling interrupt. 6. The method of claim 4 , further comprising: determining whether a utilization value for one or more virtual processors of the first virtual machine is greater than a predetermined utilization value; if the utilization value for the one or more virtual processors of the first virtual machine is greater than the predetermined utilization value, then queuing the first data packet and delaying processing of the packet handling interrupt; and if the utilization value for the one or more virtual processors of the first virtual machine is not greater than the predetermined utilization value, then processing the packet handling interrupt. 7. The method of claim 4 , wherein the processing of the interrupt is delayed until the first data packet has been stored in the data structure greater than a predetermined amount of time. 8. The method of claim 4 , further comprising: wherein the processing of the packet handling interrupt is delayed until the data structure stores greater than a predetermined number of data packets. 9. The method of claim 2 , wherein the first data packet is a first transmission control protocol (TCP) data packet, and queuing the first data packet comprises combining said first TCP data packet with one or more TCP packets previously received at the virtual NIC into a second TCP data packet. 10. The method of claim 2 , wherein the physical NIC has a plurality of queues, each of which is associated with one or more of the plurality of virtual machines, and wherein the method further comprises: responsive to determining that the first virtual machine is latency sensitive, increasing an interrupt rate for the one or more queues of the physical NIC that are associated with the first virtual machine. 11. A non-transitory computer-readable medium comprising instructions executable by a host computer, the host computer having a plurality of containers including a first container executing therein, and the host including a physical network interface controller (physical NIC), where the instructions, when executed, cause the host computer to perform a method of transmitting and receiving data packets to and from the first container by a virtual network interface controller (virtual NIC) operating on a hypervisor of the host computer, the method comprising: detecting a packet handling interrupt upon receiving a first data packet that is associated with the first container; determining, by inspecting a memory-based data structure that contains latency sensitivity data for each of the plurality of containers, whether the first container is latency sensitive; if the first container is determined to be latency sensitive, then processing the packet handling interrupt by forwarding the first data packet to a virtual switch to which the virtual NIC is connected when the first data packet is received from the first container, or forwarding the first data packet to the first container when the first data packet is received from the virtual switch; if the first container is determined to be not latency sensitive, then: queuing the first data packet at the virtual NIC; and delaying processing of the packet handling interrupt by the virtual NIC. 12. The computer-readable medium of claim 11 , wherein the first container is a first virtual machine. 13. The computer-readable medium of claim 12 , wherein determining whether the first virtual machine is latency sensitive comprises: reading from the memory-based data structure a latency sensitivity indicator for the first virtual machine; and determining whether the latency sensitivity indicator is a predetermined value. 14. The computer-readable medium of claim 13 , wherein queuing the first data packet comprises storing the first data packet n a data structure associated with the virtual NIC that is configured to store a plurality of data packets. 15. The computer-readable medium of claim 14 , further comprising: determining whether a utilization value for one or more virtual processors of the first virtual machine is greater than a predetermined utilization value; if the utilization value for the one or more virtual processors of the first virtual machine is greater than the predetermined utilization value, then queuing the first data packet and delaying processing of the packet handling interrupt; and if the utilization value for the one or more virtual processors of the first virtual machine is not greater than the predetermined utilization value, then processing the packet handling interrupt. 16. A computing system, comprising a host computer, the host computer having a plurality of containers including a first container executing therein; and a physical network interface controller (physical NIC), wherein the system is configured to perform a method of transmitting and receiving data, packets to and from the first container by a virtual network interface controller (virtual NIC) operating on a hypervisor of the host computer, the method comprising: detecting a packet handling interrupt upon receiving a first data packet that is associated with the first container; determining, by inspecting a memory-based data structure that contains latency sensitivity data for each of the plurality

Assignees

Inventors

Classifications

  • implementing delay-aware scheduling · CPC title

  • Starting, stopping, suspending or resuming virtual machine instances · CPC title

  • Hypervisors; Virtual machine monitors · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Packet rate · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9703589B2 cover?
A host computer has a plurality of containers including a first container executing therein, where the host also includes a physical network interface controller (NIC). A packet handling interrupt is detected upon receipt of a first data packet associated with the first container If the first virtual machine is latency sensitive, then the packet handling interrupt is processed. If the first vir…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 11 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).