Dynamic Queue Assignment for Virtual Functions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems face inefficiencies in assigning device queues to virtual functions, leading to congestion on some virtual machines while others remain underutilized, due to static queue allocation and hash collisions, which result in suboptimal bandwidth utilization and load imbalance.

Innovation Solution

A dynamic allocation scheme that adjusts the number of queues and switching between queue assignment schemes based on demand, using a pool of free queues, a monitor function to allocate/deallocate queues, and multiple hash functions for load balancing, ensuring that virtual functions with higher demand receive more queues and that traffic is redistributed to alleviate congestion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If queues are assigned to virtual functions in a static manner, then the device complexity is reduced and ease of operation is improved, but bandwidth utilization deteriorates and load balance worsens due to congestion on some virtual machines while others remain underutilized

Engineering Contradiction:
Improveease of queue assignmentVSAvoidbandwidth utilization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements dynamic queue assignment where the number of queues assigned to each virtual function is adjusted based on real-time utilization metrics. The system monitors queue utilization and dynamically reassigns queues from underutilized virtual functions to overutilized ones, transforming the static assignment model into a dynamic one that adapts to changing workload conditions, thereby improving bandwidth utilization while maintaining operational simplicity through automated management

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the number of virtual functions is increased to serve more virtual machines, then multi-tenancy capability is improved, but the number of queues per virtual function decreases leading to bandwidth limitations

Engineering Contradiction:
Improvemulti-tenancy capabilityVSAvoidbandwidth per virtual function
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent changes the parameter of queue allocation from a fixed per-virtual-function basis to a dynamic basis determined by utilization metrics. This allows the system to support a high number of virtual functions for multi-tenancy while ensuring that each virtual function receives an appropriate number of queues based on its actual workload demands, thereby maintaining both high adaptability and adequate bandwidth per virtual function

Inventive Principle:
Principle #35Parameter changes

3Productivity

If multiple virtual network adaptors are used to achieve higher bandwidth, then bandwidth capability is improved, but device complexity and configuration difficulty increase

Engineering Contradiction:
Improvebandwidth capabilityVSAvoidnumber of virtual network adaptors
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent makes the network adaptor universally capable of serving multiple virtual machines with varying bandwidth requirements through dynamic queue assignment. Instead of requiring multiple separate virtual network adaptors to achieve high bandwidth, a single physical network adaptor can dynamically allocate its queues to different virtual functions based on demand, providing the same bandwidth capability while reducing device complexity and configuration overhead

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20240403134A1Dynamic assignment of device queues to virtual functions to provide to virtual machines
Publication Date: 2024.12.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20240403134A1 patent drawing
  • US20240403134A1 patent drawing
  • US20240403134A1 patent drawing

AI summary

Provided are a computer product, system, and method for dynamic assignment of device queues to virtual functions to provide to virtual machines. Queues are assigned to a virtual function to access the physical functions of the device. The virtual function is provided to a virtual machine to use to access the physical functions of the device. A determination is made of a utilization of the queues assigned to the virtual function accessed by the virtual machine. A number of the queues assigned to the virtual functions for requests submitted by the virtual machine is changed in response to the determined utilization.