Networking stack of virtualization software configured to support latency sensitive virtual machines
US-9703589-B2 · Jul 11, 2017 · US
US10545786B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10545786-B2 |
| Application number | US-201715712194-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 22, 2017 |
| Priority date | Sep 22, 2017 |
| Publication date | Jan 28, 2020 |
| Grant date | Jan 28, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Utilizing a computing device to determine and enforce limits on cloud computing containers transmitting data over a network. A determination is made of total container time remaining available for a first container to execute in a computing environment, the first container utilizing one or more processor threads executing on a computing device. Processor packet transmission time is determined for processing and transmission of a packet or a batch of packets via a network stack associated with the computing device by the one or more processor threads utilized by the first container. An updated total container time remaining for the first container is calculated, accounting for the processor packet transmission time. The updated total container time remaining is enforced by descheduling all processor threads utilized by the first container if the updated total container time remaining is insufficient.
Opening claim text (preview).
What is claimed is: 1. A method of utilizing a computing device to determine and enforce limits on cloud computing containers transmitting data over a network, the method comprising: determining a total container time remaining available for a first container to execute in a computing environment, the first container utilizing one or more processor threads executing on a computing device; determining a processor packet transmission time for processing and transmission of a packet or a batch of packets via a network stack associated with the computing device by the one or more processor threads utilized by the first container, wherein the processor packet transmission time is based on a per-packet estimated transmission time; calculating an updated total container time remaining for the first container accounting for the processor packet transmission time after transmission of the packet or batch of packets on behalf of the first container; and enforcing the updated total container time remaining by descheduling all processor threads utilized by the first container if the updated total container time remaining is insufficient causing transmission of the packet or the batch of packets to be throttled. 2. The method of claim 1 , further comprising receiving an interrupt on behalf of the first container when a process residing within a second container is executing, the interrupt requesting transmission of the packet or the batch of packets on behalf of the first container. 3. The method of claim 2 , wherein the interrupt causes execution of the second container to pause and switch execution to process the interrupt to transmit the packet or batch of packets on behalf of the first container. 4. The method of claim 1 , wherein the packet or batch of packets from the first container are processed by a kernel thread of the computing environment responsible for processing interrupts on behalf of the first container, and when calculating the updated container time remaining for the first container the packet or batch of packets processed by the kernel thread are correctly accounted for. 5. The method of claim 1 , wherein the processor packet transmission time is determined according to selectively one of the following: a per-packet basis, a sampling per-queue basis, a per-flow basis, a per-core basis, a per-container basis, and a per-tenant basis. 6. The method of claim 1 , wherein calculating the updated container time remaining occurs after transmission of the packet or batch of packets on behalf of the first container, and enforcing the updated total container time remaining causes transmission of a proximate packet or proximate batch of packets to be throttled by descheduling the one or more processor threads utilized by the first container. 7. The method of claim 1 , wherein calculating the updated container time remaining occurs before the transmission of the packet or batch of packets on behalf of the first container, and enforcing the updated total container time remaining causes transmission of the packet or batch of packets to be throttled by descheduling the one or more processor threads utilized by the first container. 8. The method of claim 1 , wherein when determining the processor packet transmission time for processing and transmission of a packet or a batch of packets, the computing device utilizes recorded time for a transmission of a previously transmitted batch of packets, divides the recorded time for the transmission by a number of the previously transmitted packet or batch of packets, and generates a per-packet estimated transmission time to determine the processor packet transmission time. 9. A computer program product utilizing a computing device to determine and enforce limits on cloud computing containers transmitting data over a network, the computer program product comprising: one or more non-transitory computer-readable storage media and program instructions stored on the one or more non-transitory storage media, the program instructions, when executed by the computing device, cause the computing device to perform a method comprising: determining a total container time remaining available for a first container to execute in a computing environment, the first container utilizing one or more processor threads executing on a computing device; determining a processor packet transmission time for processing and transmission of a packet or a batch of packets via a network stack associated with the computing device by the one or more processor threads utilized by the first container, wherein the processor packet transmission time is based on a per-packet estimated transmission time; calculating an updated total container time remaining for the first container accounting for the processor packet transmission time after transmission of the packet or batch of packets on behalf of the first container; and enforcing the updated total container time remaining by descheduling all processor threads utilized by the first container if the updated total container time remaining is insufficient causing transmission of the packet or the batch of packets to be throttled. 10. The computer program product of claim 9 , further comprising receiving an interrupt on behalf of the first container when a process residing within a second container is executing, the interrupt requesting transmission of the packet or the batch of packets on behalf of the first container. 11. The computer program product of claim 10 , wherein the interrupt causes execution of the second container to pause and switch execution to process the interrupt to transmit the packet or batch of packets on behalf of the first container. 12. The computer program product of claim 9 , wherein the packet or batch of packets from the first container are processed by a kernel thread of the computing environment responsible for processing interrupts on behalf of the first container, and when calculating the updated container time remaining for the first container the packet or batch of packets processed by the kernel thread are correctly accounted for. 13. The computer program product of claim 9 , wherein the processor packet transmission time is determined according to selectively one of the following: a per-packet basis, a sampling per-queue basis, a per-flow basis, a per-core basis, a per-container basis, and a per-tenant basis. 14. The computer program product of claim 9 , wherein calculating the updated container time remaining occurs after transmission of the packet or batch of packets on behalf of the first container, and enforcing the updated total container time remaining causes transmission of a proximate packet or proximate batch of packets to be throttled by descheduling the one or more processor threads utilized by the first container. 15. A computer system utilizing a computing device to determine and enforce limits on cloud computing containers transmitting data over a network, the computer system comprising: one or more computer processors; one or more computer-readable storage media; program instructions stored on the computer-readable storage media for execution by at least one of the one or more processors, the program instructions comprising: program instructions to determine a total container time remaining available for a first container to execute in a computing environment, the first container utilizing one or more processor threads executing on a computing device; program instructions to determine a processor packet transmission time for processing and transmission of a packet or a batch of packets via a network stack associated with the com
in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title
Multiprogramming arrangements · CPC title
Priority circuits therefor · CPC title
Establishing a time schedule for servicing the requests · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.