Doorbell backpressure avoidance mechanism on a host channel adapter
First Claim
Patent Images
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.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for processing commands includes receiving, for multiple commands, doorbells for writing to a send queue scheduler buffer on a host channel adapter (HCA). The send queue scheduler buffer is associated with a send queue scheduler. The method further includes detecting a potential deadlock of the send queue scheduler from processing a portion of the doorbells, writing a subset of the doorbells to a doorbell overflow buffer on a host, operatively connected to the HCA, based on detecting the potential deadlock, and discarding the subset by the send queue scheduler without processing the subset of the plurality of doorbells before discarding.
-
Citations
17 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
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. - View Dependent Claims (8, 9, 10, 11)
-
-
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. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification