Doorbell backpressure avoidance mechanism on a host channel adapter
AssigneeOracle International Corporation
InventorsBrian Edward Manula, Haakon Ording Bugge, Benny Sum
Life of this patent
Estimating the term…
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.
Claims17
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.
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.
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.
Dependencies are inferred from the claim text.