Using completion queues for RDMA event detection

US9842083B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9842083-B2
Application numberUS-201514715155-A
CountryUS
Kind codeB2
Filing dateMay 18, 2015
Priority dateMay 18, 2015
Publication dateDec 12, 2017
Grant dateDec 12, 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.

Systems and methods for using completion queues for Remote Direct Memory Access (RDMA) event detection. An example method may comprise: receiving a request to create a queue pair for processing Remote Direct Memory Access (RDMA) requests using an RDMA-enabled network interface controller (RNIC), the queue pair comprising a send queue and a receive queue; associating the queue pair with a completion queue associated with the RNIC, the completion queue employed to store a plurality of completion queue elements associated with completed work requests; receiving a notification of an interrupt associated with the RNIC; and responsive to determining that at least one of a number of send queues associated with the completion queue or a number of receive queues associated with the completion queue exceeds zero, identifying at least one of: a first application registered to be notified of RDMA send events or a second application registered to be notified of RDMA receive events.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method, comprising: receiving, by a processing device, a request to create a queue pair for processing Remote Direct Memory Access (RDMA) requests using an RDMA-enabled network interface controller (RNIC), the queue pair comprising a send queue and a receive queue; associating the queue pair with a completion queue associated with the RNIC, the completion queue employed to store a plurality of completion queue elements associated with completed work requests; receiving a notification of an interrupt associated with the RNIC; responsive to determining that a number of send queues associated with the completion queue exceeds zero, identifying an application registered to be notified of RDMA send events; and awakening the application. 2. The method of claim 1 , wherein the send queue is provided by a data structure employed to store a plurality of work queue elements, each work queue element comprising a pointer to a memory buffer for storing incoming RDMA data. 3. The method of claim 1 , wherein the receive queue is provided by a data structure employed to store a plurality of work queue elements, each work queue element comprising a pointer to a memory buffer for storing outgoing RDMA data. 4. The method of claim 1 , wherein associating the queue pair with the completion queue comprises incrementing at least one of: a first counter reflecting the number of send queues associated with the completion queue or a second counter reflecting the number of receive queues associated with the completion queue. 5. The method of claim 4 , further comprising: responsive to receiving a request to destroy the queue pair, decrementing at least one of: the first counter or the second counter. 6. The method of claim 1 , further comprising: receiving a request for RDMA send event notifications initiated by the application. 7. A system, comprising: a memory; and a processing device operatively coupled to the memory, the processing device to: receive a request to create a queue pair for processing Remote Direct Memory Access (RDMA) requests using an RDMA-enabled network interface controller (RNIC), the queue pair comprising a send queue and a receive queue; associate the queue pair with a completion queue associated with the RNIC, the completion queue employed to store a plurality of completion queue elements associated with completed work requests; receive a notification of an interrupt associated with the RNIC; responsive to determining that at least one of a number of send queues associated with the completion queue or a number of receive queues associated with the completion queue exceeds zero, identify at least one of: a first application registered to be notified of RDMA send events or a second application registered to be notified of RDMA receive events; and awaken at least one of: the first application or the second application. 8. The system of claim 7 , wherein the send queue is provided by a data structure employed to store a plurality of work queue elements, each work queue element comprising a pointer to a memory buffer for storing incoming RDMA data. 9. The system of claim 7 , wherein the receive queue is provided by a data structure employed to store a plurality of work queue elements, each work queue element comprising a pointer to a memory buffer for storing outgoing RDMA data. 10. The system of claim 7 , wherein to associate the queue pair with the completion queue, the processing device is to increment at least one of: a first counter reflecting the number of send queues associated with the completion queue or a second counter reflecting the number of receive queues associated with the completion queue. 11. The system of claim 10 , wherein the processing device is further to: responsive to receiving a request to destroy the queue pair, decrement at least one of: the first counter or the second counter. 12. The system of claim 7 , wherein the processing device is further to: receive at least one of: a first application-initiated request for RDMA send event notifications or a second application-initiated request for RDMA receive event notifications. 13. A computer-readable non-transitory storage medium comprising executable instructions to cause a processing device to: receive, by the processing device, a request to create a queue pair for processing Remote Direct Memory Access (RDMA) requests using an RDMA-enabled network interface controller (RNIC), the queue pair comprising a send queue and a receive queue; associate the queue pair with a completion queue associated with the RNIC, the completion queue employed to store a plurality of completion queue elements associated with completed work requests; receive a notification of an interrupt associated with the RNIC; responsive to determining that a number of receive queues associated with the completion queue exceeds zero, identify an application registered to be notified of RDMA receive events; and awaken the application. 14. The computer-readable non-transitory storage medium of claim 13 , wherein the send queue is provided by a data structure employed to store a plurality of work queue elements, each work queue element comprising a pointer to a memory buffer for storing incoming RDMA data. 15. The computer-readable non-transitory storage medium of claim 13 , wherein the receive queue is provided by a data structure employed to store a plurality of work queue elements, each work queue element comprising a pointer to a memory buffer for storing outgoing RDMA data. 16. The computer-readable non-transitory storage medium of claim 13 , further comprising executable instructions causing the processing device, responsive to associating the queue pair with the completion queue, to increment at least one of: a first counter reflecting the number of send queues associated with the completion queue or a second counter reflecting the number of receive queues associated with the completion queue.

Assignees

Inventors

Classifications

  • Output queuing · CPC title

  • G06F15/167Primary

    using a common memory, e.g. mailbox · CPC title

  • Arrangements for connecting between networks having differing types of switching systems, e.g. gateways · CPC title

  • using storage descriptor, e.g. read or write pointers · CPC title

  • Answer-back mechanisms or circuits · 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 US9842083B2 cover?
Systems and methods for using completion queues for Remote Direct Memory Access (RDMA) event detection. An example method may comprise: receiving a request to create a queue pair for processing Remote Direct Memory Access (RDMA) requests using an RDMA-enabled network interface controller (RNIC), the queue pair comprising a send queue and a receive queue; associating the queue pair with a comple…
Who is the assignee on this patent?
Red Hat Israel Ltd
What technology area does this patent fall under?
Primary CPC classification G06F15/167. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 12 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).