9069485

Doorbell backpressure avoidance mechanism on a host channel adapter

PublishedJune 30, 2015
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
17 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for processing commands in a host channel adapter (HCA), comprising: receiving, for a plurality of commands, a plurality of doorbells for writing to a send queue scheduler buffer on the HCA, wherein the send queue scheduler buffer is associated with a send queue scheduler; detecting a potential deadlock of the send queue scheduler from processing a portion of the plurality of doorbells; writing a subset of the plurality of doorbells to a doorbell overflow buffer on a host, operatively connected to the HCA, based on detecting the potential deadlock; discarding, from the HCA, the subset of the plurality of doorbells by the send queue scheduler, after writing the subset of the plurality of doorbells to the doorbell overflow buffer, without processing the subset of the plurality of doorbells before discarding; and processing, from the doorbell overflow buffer on the host, the subset of the plurality of doorbells, after discarding the subset of the plurality of doorbells from the HCA, as resources of the HCA become available.

2

2. The method of claim 1 , wherein the plurality of commands are written to a send queue on the host.

3

3. The method of claim 1 , further comprising: processing a remaining set of the plurality of doorbells after discarding the subset of the plurality of doorbells, wherein processing the remaining set comprises for each doorbell in the remaining set: obtaining, from the doorbell, an identifier of a location in the send queue storing the command, locking an available collect buffer on the HCA to obtain a locked collect buffer, writing a command from the location to the locked collect buffer, processing, from the locked collect buffer, the command to generate a packet, issuing the packet to a port to send on a network, writing a completion to host memory for the packet, and releasing the locked collect buffer after writing the completion.

4

4. The method of claim 3 , wherein the available collect buffer is dedicated to the send queue scheduler.

5

5. The method of claim 1 , wherein detecting the potential deadlock comprises: identifying a number of available collect buffers and a number of available entries in the send queue scheduler buffer; and detecting the potential deadlock when the number of available collect buffers is less than a first threshold and the number of available entries is less than a second threshold.

6

6. The method of claim 1 , wherein each doorbell of the plurality of doorbells comprises a queue pair identifier and a sequence number.

7

7. A host channel adapter (HCA) for processing commands, comprising: a send queue scheduler buffer configured to store at least a portion of a plurality of doorbells corresponding to a plurality of commands; and a send queue scheduler, operatively connected to the send queue scheduler buffer, and configured to: receive, for the plurality of commands, the plurality of doorbells for writing to the send queue scheduler buffer; detect a potential deadlock of the send queue scheduler from processing the portion of the plurality of doorbells; write, based on detecting the potential deadlock, a subset of the plurality of doorbells to a doorbell overflow buffer on a host operatively connected to the HCA; discard, from the HCA, the subset of the plurality of doorbells, after writing the subset of the plurality of doorbells to the doorbell overflow buffer, without processing the subset of the plurality of doorbells before discarding; issue a read request to the host to obtain a doorbell of the subset of the plurality of doorbells, from the doorbell overflow buffer on the host, as resources of the HCA become available; and process the doorbell, after discarding the subset of the plurality of doorbells from the HCA.

8

8. The HCA of claim 7 , wherein the send queue scheduler is further configured to: process a remaining set of the plurality of doorbells after discarding the subset of the plurality of doorbells, wherein processing the remaining set comprises for each doorbell in the remaining set: obtaining, from the doorbell, an identifier of a location in the send queue having the command, locking an available collect buffer on the HCA to obtain a locked collected buffer, writing a command from the location to the locked collect buffer, processing, from the locked collect buffer, the command to generate a packet, issuing the packet to a port to send on a network, writing a completion to host memory for the packet, and releasing the locked collect buffer after writing the completion.

9

9. The HCA of claim 8 , wherein the available collect buffer is dedicated to the send queue scheduler.

10

10. The HCA of claim 7 , wherein detecting the potential deadlock comprises: identifying a number of available collect buffers and an number of available entries in the send queue scheduler buffer; and detecting the potential deadlock when the number of available collect buffers is less than a first threshold and the number of available entries is less than a second threshold.

11

11. The HCA of claim 7 , wherein each doorbell of the plurality of doorbells comprises a queue pair identifier and a sequence number.

12

12. A system for processing commands, comprising: a host comprising a doorbell overflow buffer; and a host channel adapter (HCA) comprising: a send queue scheduler buffer configured to store at least a portion of a plurality of doorbells corresponding to a plurality of commands; and a send queue scheduler, connected to the send queue scheduler buffer, and configured to: receive, for the plurality of commands, the plurality of doorbells for writing to the send queue scheduler buffer; detect a potential deadlock of the send queue scheduler from processing the portion of the plurality of doorbells; write a subset of the plurality of doorbells to the doorbell overflow buffer on the host based on detecting the potential deadlock; discard the subset of the plurality of doorbells, after writing the subset of the plurality of doorbells to the doorbell overflow buffer, without processing the subset of the plurality of doorbells before discarding; issue a read request to the host to obtain a doorbell of the subset of the plurality of doorbells, from the doorbell overflow buffer on the host, as resources of the HCA become available; and process the doorbell, after discarding the subset of the plurality of doorbells from the HCA.

13

13. The system of claim 12 , wherein the send queue scheduler is further configured to: process a remaining set of the plurality of doorbells after discarding the subset of the plurality of doorbells, wherein processing the remaining set comprises for each doorbell in the remaining set: obtaining, from the doorbell, an identifier of a location in the send queue having the command, locking an available collect buffer on the HCA to obtain a locked collected buffer, writing a command from the location to the locked collect buffer, processing, from the locked collect buffer, the command to generate a packet, issuing the packet to a port to send on a network, writing a completion to host memory for the packet, and releasing the locked collect buffer after writing the completion.

14

14. The system of claim 13 , wherein the available collect buffer is dedicated to the send queue scheduler.

15

15. The system of claim 12 , wherein detecting the potential deadlock comprises: identifying a number of available collect buffers and an number of available entries in the send queue scheduler buffer; and detecting the potential deadlock when the number of available collect buffers is less than a first threshold and the number of available entries is less than a second threshold.

16

16. The system of claim 12 , wherein each doorbell of the plurality of doorbells comprises a queue pair identifier and a sequence number.

17

17. The system of claim 12 , wherein the host further comprises a send queue configured to store the plurality of commands.

Patent Metadata

Filing Date

Unknown

Publication Date

June 30, 2015

Inventors

Brian Edward Manula
Haakon Ording Bugge
Benny Sum

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Doorbell backpressure avoidance mechanism on a host channel adapter” (9069485). https://patentable.app/patents/9069485

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.