Moderated completion signaling

US9298652B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9298652-B2
Application numberUS-201313841728-A
CountryUS
Kind codeB2
Filing dateMar 15, 2013
Priority dateMar 15, 2013
Publication dateMar 29, 2016
Grant dateMar 29, 2016

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.

The moderation of event notifications from a network interface card. The network interface card has multiple completion queues that queue of completed work. The moderation batches up this completed work such that potentially multiple work requests are aggregated into a single event notification. This moderation reduces processing overhead since it spreads the overhead associated with a single interrupt to multiple event notifications The decision on moderation may be performed per connection, or even per constituent queue of the connection. The principles herein allow moderation to reduce overhead without slowing network throughput.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: one or more processors; a network interface card comprising a plurality of work queues and a plurality of completion queues; and one or more computer-readable media having stored thereon computer-executable instructions that are executable by the one or more processors, and that configure the system to moderate aggregation of work completions on a per-network connection channel basis, including computer-executable instructions that configure the system to perform at least the following: identify a first network connection channel having a first work queue of the plurality of work queues at its beginning and a first completion queue of the plurality of completion queues at its end; identify a second network connection channel having a second work queue of the plurality of work queues at its beginning and a second completion queue of the plurality of completion queues at its end; based on activity of the first network connection channel, determine a first moderation to perform on the first completion queue, including calculating a first ratio between a number of active work requests in the first work queue and a rate at which work completions are added to the first completion queue; adjust aggregation of a set of first work completions in the first completion queue based on the first moderation, so that the set of first work completions are processed in a single interrupt; based on activity of the second network connection channel, determine a second moderation to perform on the second completion queue, including calculating a second ratio of a number of active work requests in the second work queue and a rate at which work completions are added to the second completion queue, the second moderation being different from the first moderation based on the first ratio being different from the second ratio; and adjust aggregation of a set of second work completions in the second completion queue based on the second moderation, so that the set of second work completions are processed in a single interrupt, a number of the set of second work completions being different from a number of the set of first work completions based on the first moderation being different from the second moderation. 2. The system in accordance with claim 1 , wherein at least one of the plurality of completion queues comprises a send completion queue, and at least one of the plurality of completion queues comprises a receive completion queue. 3. The system in accordance with claim 1 , wherein determining one or more of the first moderation or the second moderation comprises determining a maximum time limit for aggregating work completions in a corresponding completion queue. 4. The system in accordance with claim 1 , wherein determining one or more of the first moderation or the second moderation comprises determining a maximum number of work completions in a corresponding completion queue. 5. The system in accordance with claim 1 , wherein determining one or more of the first moderation or the second moderation comprises determining a maximum time limit over which to aggregate work completions in a completion queue. 6. A method, implemented at a computer system that includes one or more processors, for moderating aggregation of work completions on a per-network connection channel basis in a network interface card that has a plurality of work queues and a plurality of completion queues, the method comprising: identifying a first network connection channel having a first work queue of the plurality of work queues at its beginning and a first completion queue of the plurality of completion queues at its end; identifying a second network connection channel having a second work queue of the plurality of work queues at its beginning and a second completion queue of the plurality of completion queues at its end; based on activity of the first network connection channel, determining a first moderation to perform on the first completion queue, including calculating a first ratio between a number of active work requests in the first work queue and a rate at which work completions are added to the first completion queue; adjusting aggregation of a set of first work completions in the first completion queue based on the first moderation, so that the set of first work completions are processed in a single interrupt; based on activity of the second network connection channel, determining a second moderation to perform on the second completion queue, including calculating a second ratio of a number of active work requests in the second work queue and a rate at which work completions are added to the second completion queue, the second moderation being different from the first moderation based on the first ratio being different from the second ratio; and adjusting aggregation of a set of second work completions in the second completion queue based on the second moderation, so that the set of second work completions are processed in a single interrupt, a number of the set of second work completions being different from a number of the set of first work completions based on the first moderation being different from the second moderation. 7. The method in accordance with claim 6 , wherein determining one or more of the first moderation or the second moderation comprises calculating average amount of work outstanding for the corresponding network connection channel. 8. The method in accordance with claim 6 , wherein determining one or more of the first moderation or the second moderation comprises determining a maximum time limit for aggregating work completions in a corresponding completion queue. 9. The method in accordance with claim 8 , wherein the maximum time limit is an increasing function of an amount of work outstanding for the network connection channel for the corresponding completion queue. 10. The method in accordance with claim 8 , wherein the maximum time limit is a decreasing function of an amount of work requested completed per time period. 11. The method in accordance with claim 8 , wherein the maximum time limit is a function of a moderation strength factor. 12. The method in accordance with claim 6 , wherein determining one or more of the first moderation or the second moderation comprises determining a maximum number of work completions in a corresponding completion queue. 13. The method in accordance with claim 12 , wherein the maximum number limit is an increasing function of an amount of work outstanding for the network connection channel for the corresponding completion queue. 14. The method in accordance with claim 12 , wherein the maximum number limit is a function of a moderation strength factor. 15. A computer program product comprising one or more hardware storage devices having stored thereon one or more computer-executable instructions that are executable by one or more processors of a computing system, and that configure the computing system moderate aggregation of work completions on a per-network connection channel basis in a network interface card that has a plurality of work queues and a plurality of completion queues, including computer-executable instructions that configure the system to perform at least the following: identify a first network connection channel having a first work queue of the plurality of work queues at its beginning and a first completion queue of the plurality of completion queues at its end; identify a second network connection channel having a second work queue of the plurality of work queues at its beginning and a second completion queue of the plurality of com

Assignees

Inventors

Classifications

  • G06F13/24Primary

    using interrupt (G06F13/32 takes precedence) · CPC title

  • for adaptation of a particular data processing system to different peripheral devices · 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 US9298652B2 cover?
The moderation of event notifications from a network interface card. The network interface card has multiple completion queues that queue of completed work. The moderation batches up this completed work such that potentially multiple work requests are aggregated into a single event notification. This moderation reduces processing overhead since it spreads the overhead associated with a single i…
Who is the assignee on this patent?
Microsoft Corp, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F13/24. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 29 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).