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.
Claims20
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;
- and
- discarding the subset of the plurality of doorbells by the send queue scheduler without processing the subset of the plurality of doorbells before discarding.
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;
- and
- discard the subset of the plurality of doorbells without processing the subset of the plurality of doorbells before discarding.
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;
- and
- discard the subset of the plurality of doorbells without processing the subset of the plurality of doorbells before discarding.
Dependencies are inferred from the claim text.