Dynamic Queue Depth Allocation for Virtual Functions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In information handling systems with converged infrastructure, the static allocation of queue depth for virtual functions can lead to uneven resource utilization, causing one server blade to be starved of resources while others underutilize theirs, resulting in command delays due to a lack of fine-tuned resource allocation and static queue depth settings.

Innovation Solution

A method and system that dynamically modify queue depth values based on changing workload demands by using a queue depth profiler to determine relative demand across virtual functions, calculating desired queue depth values, and updating these values through an OS device driver to optimize resource allocation and command processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If static queue depth allocation is used for virtual functions, then system simplicity and ease of operation are maintained, but resource utilization becomes uneven causing some server blades to be starved while others underutilize their allocated resources

Engineering Contradiction:
Improvequeue depth allocation simplicityVSAvoidresource utilization efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements dynamic queue depth allocation that automatically adjusts queue depth values for virtual functions based on real-time workload demands. The system monitors I/O operations and redistributes queue depth resources dynamically, ensuring that server blades receive appropriate queue depth allocations according to their actual needs rather than static equal distribution, thereby resolving the contradiction between operational simplicity and resource utilization efficiency.

Inventive Principle:
Principle #15Dynamics

2Productivity

If queue depth is increased to meet peak demands of high-I/O blades, then those blades can process more commands, but low-I/O blades experience command delays due to first-come-first-served processing

Engineering Contradiction:
Improvecommand processing capacity for high-I/O bladesVSAvoidcommand execution delay for low-I/O blades
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies local quality by allocating different queue depth values to different virtual functions based on their specific workload characteristics. High-I/O blades receive larger queue depth allocations while low-I/O blades receive smaller allocations, allowing each blade to process commands at its optimal rate without causing delays for others, thus resolving the time loss issue while maintaining high productivity for demanding blades.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically changes the queue depth parameter for each virtual function based on monitored workload demands. By adjusting this key parameter in real-time, the system optimizes command processing capacity for high-I/O blades while preventing command execution delays for low-I/O blades, eliminating the need for increased overall queue depth that would cause universal delays.

Inventive Principle:
Principle #35Parameter changes

3Stability of the object's composition

If operating systems learn HBA capabilities during initialization, then system stability is maintained, but queue depth parameters cannot be adjusted during runtime to match changing workload demands

Engineering Contradiction:
Improvesystem configuration stabilityVSAvoidruntime parameter adjustment capability
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent implements a feedback mechanism that continuously monitors I/O workload characteristics and uses this information to dynamically adjust queue depth allocations. The system profiles workload patterns, determines relative demand for each virtual function, and automatically updates queue depth parameters during runtime without requiring system reinitialization, thereby maintaining both system stability and adaptability to changing demands.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs self-service by automatically profiling workload characteristics and adjusting its own queue depth parameters without external intervention. The controller monitors I/O operations, calculates relative demand for each virtual function, and autonomously updates queue depth values during runtime, enabling the system to adapt to changing workload demands while maintaining operational stability.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10282220B2Dynamic allocation of queue depths for virtual functions in a converged infrastructure
Publication Date: 2019.05.07 DELL PROD LP
  • US10282220B2 patent drawing
  • US10282220B2 patent drawing
  • US10282220B2 patent drawing

AI summary

A method and an information handling system (IHS) dynamically modifies queue depth values based on changing relative workload demands of virtual functions. A controller, executing code of a queue depth profiler, determines, for each virtual function, an average number of total unfulfilled, outstanding requests. The controller compares values for an average number of total outstanding requests across the plurality of virtual functions. The controller determines a relative demand for request queue depth corresponding to each respective virtual function based on the compared values. The controller calculates desired queue depth values for each virtual function, based on the relative demand. The controller triggers completion of pending requests for a first processing state. In response to successful completion of the first processing state, the controller enables initiation of a second processing state in which request processing continues using the desired queue depth values.