RDMA Flow Control Mechanism for Buffer Overflow Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current flow control protocols in RDMA/iWARP technology require taking completions for every send operation, leading to suboptimal efficiency due to increased software processing and network interface controller cycles, which can cause performance degradation.

Innovation Solution

Implementing a flow control method that manages send buffers at the sending peer to prevent overflow of the receiving peer's receiver credits, allowing send operations to be performed without taking completions, by ensuring the number of send buffers is greater than or equal to the maximum receiver credits and using notifications for buffer re-use validation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If completions are taken for every send operation, then reliability of data transfer is ensured, but software processing overhead increases and efficiency deteriorates

Engineering Contradiction:
Improvedata transfer reliabilityVSAvoidsoftware processing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the completion processing requirement by introducing a threshold-based mechanism. Instead of requiring completions for every single send operation, the system accumulates send operations and processes completions only when the threshold is reached. This segmentation reduces the frequency of completion processing while maintaining data transfer reliability through controlled batches.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by pre-allocating buffer credits and establishing flow control parameters before data transfer begins. The receiver pre-announces available buffer credits, and the sender configures send buffers accordingly in advance. This preliminary setup enables the sender to proceed with multiple send operations without immediately requiring completions, thus improving efficiency while maintaining reliability through pre-established flow control.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the number of send buffers is increased to prevent overflow, then flow control reliability is improved, but memory usage increases

Engineering Contradiction:
Improveflow control reliabilityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies dynamics by making the send buffer allocation adaptive rather than static. The number of send buffers is dynamically adjusted based on the receiver's announced buffer credits and the threshold parameter. This dynamic allocation allows the system to maintain sufficient buffers for flow control reliability while avoiding excessive memory usage by scaling buffer count to actual transfer needs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of buffer credit announcement from a fixed value to a configurable threshold parameter. By allowing the threshold to be adjusted, the system can optimize the balance between flow control reliability and memory usage. The receiver can announce different credit values based on available memory, and the sender adjusts send buffer allocation accordingly, achieving parameter-based optimization.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7895329B2Protocol flow control
Publication Date: 2011.02.22 HEWLETT PACKARD ENTERPRISE DEV LP
  • US7895329B2 patent drawing
  • US7895329B2 patent drawing
  • US7895329B2 patent drawing

AI summary

In a flow control method, operation flow is controlled on a per connection basis. The method comprises managing a sending peer to prevent overflow of a receiving peer's receiver credits and allocating a number of send buffers at the sending peer greater than or equal to the maximum number of receiver credits that can be indicated by the receiving peer. The technique prevents the sending peer from overflowing its set of send buffers, arising due to re-use, without taking completions on operations queued to a Send Queue.