NVMe Driver Queue Migration for Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The weighted round-robin arbitration mechanism in NVMe specifications can fail to ensure timely processing of high-priority I/O commands, leading to undue latency due to large or unaligned block I/O operations, where lower-priority commands may delay higher-priority ones.

Innovation Solution

An NVMe driver identifies and migrates submission queues causing excessive controller busy time to alternative controllers with different arbitration policies, using namespace sharing and multi-pathing to mitigate latency by creating urgent, low, and medium-priority queues, and throttling as necessary to reduce busy time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If weighted round-robin arbitration mechanism is used, then I/O commands are processed in a structured manner, but high-priority I/O commands experience undue latency due to lower-priority commands blocking them

Engineering Contradiction:
Improvetimely processing of high-priority I/O commandsVSAvoidlatency of high-priority I/O commands
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically switches arbitration mechanisms based on priority level. High-priority queues use strict priority arbitration where new high-priority commands can preempt currently executing low-priority commands, while low-priority queues use weighted round-robin arbitration for fair resource sharing. This dynamic adaptation resolves the contradiction by applying different arbitration strategies to different priority classes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The arbitration mechanism is segmented into multiple priority classes with distinct arbitration policies. High-priority queues are separated from low-priority queues and subjected to different arbitration rules. This segmentation allows high-priority commands to be processed independently without being blocked by low-priority commands, eliminating the latency issue while maintaining structured processing for other queues.

Inventive Principle:
Principle #1Segmentation

2Productivity

If controller processes large or unaligned block I/O operations, then throughput is maintained, but controller busy time increases causing delays to other commands

Engineering Contradiction:
ImproveI/O throughputVSAvoidcontroller busy time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system monitors controller busy time metrics and uses this feedback to dynamically adjust queue arbitration. When controller busy time exceeds thresholds, the system identifies and migrates problematic queues to alternative controllers or adjusts arbitration priorities. This feedback mechanism allows the system to maintain throughput by redistributing workload while preventing excessive busy time from blocking other commands.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The HBA driver acts as an intermediary that monitors controller busy time and mediates queue management decisions. When a controller becomes overloaded with large or unaligned block I/O operations, the driver intervenes to migrate submission queues to alternative controllers or adjust arbitration policies. This intermediary function balances throughput maintenance with preventing excessive busy time.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If submission queues are migrated to alternative controllers, then latency is reduced for high-priority commands, but system complexity increases

Engineering Contradiction:
Improvecommand processing latencyVSAvoidqueue management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system implements self-service through automated queue migration and arbitration adjustment mechanisms. The HBA driver automatically monitors controller busy time, identifies queues causing latency issues, and migrates them to alternative controllers without manual intervention. This self-service approach reduces latency while managing complexity through automation rather than manual configuration.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes operational parameters dynamically based on system state. Queue migration decisions are based on changing controller busy time parameters and latency metrics. By adjusting queue assignments and arbitration parameters in response to measured system conditions, the system reduces latency while managing complexity through data-driven decisions rather than fixed configurations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11093352B2Fault management in NVMe systems
Publication Date: 2021.08.17 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11093352B2 patent drawing
  • US11093352B2 patent drawing
  • US11093352B2 patent drawing

AI summary

Systems and methods disclosed herein host bus adapter (HBA) drivers to detect when execution of input/output (I/O) commands in urgent-priority queues is being delayed due to processing of I/O commands in lower-priority queues in NVMe subsystems, automatically identify which the lower-priority queue that is causing the delay, and mitigate the delay by throttling and migrating the lower-priority queue to the control of a controller that applies an arbitration mechanism other than weighted round robin.