Dynamic Queue Assignment for Virtual Functions
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
3Productivity
If multiple virtual network adaptors are used to achieve higher bandwidth, then bandwidth capability is improved, but device complexity and configuration difficulty increase
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
Data Source
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.


