Host Channel Adapter Buffer Allocation for InfiniBand QoS
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Infiniband network systems face challenges in providing quality of service (QoS) levels within or between virtual machines for processing packets, as existing technologies lack efficient resource allocation mechanisms, leading to inconsistent and unpredictable packet transmission rates.
Innovation Solution
The implementation of a host channel adapter that allocates physical and virtual collect buffers (PCBs and VCBs) using control and status registers (CSRs) and a service processor resource manager to guarantee resource availability for virtual machines, allowing them to sub-allocate resources to different QoS levels, ensuring consistent packet transmission.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If existing resource allocation mechanisms are used in Infiniband network systems, then virtual machines can transmit packets, but the packet transmission rates are inconsistent and unpredictable
Solution Approach 1:
The patent segments the host channel adapter resources by introducing two distinct buffer types: physical collect buffers (PCBs) for storing command data and virtual collect buffers (VCBs) for buffering packets. This segmentation allows independent management and allocation of each buffer type to different virtual machines, enabling predictable resource allocation and consistent packet transmission rates without requiring complex centralized arbitration mechanisms.
Solution Approach 2:
The patent implements preliminary action by pre-allocating specific numbers of PCBs and VCBs to each virtual machine before packet transmission begins. The host channel adapter maintains registration information that records the allocated buffer quantities for each virtual machine in advance, ensuring that resources are guaranteed and transmission rates are predictable without needing complex real-time negotiation or arbitration during operation.
2Adaptability or versatility
If resources are allocated to multiple virtual machines without sub-allocation to QoS levels, then resource management is simple, but quality of service differentiation cannot be provided
Solution Approach 1:
The patent applies the nested doll principle by creating a hierarchical resource allocation structure where QoS levels are nested within virtual machines. Each virtual machine can be assigned to different QoS levels (e.g., QoS level 0, QoS level 1), and within each QoS level, specific numbers of PCBs and VCBs are allocated. This nested structure enables fine-grained QoS differentiation while maintaining a relatively simple allocation mechanism at each level, as the same buffer management logic applies recursively at both the virtual machine and QoS level boundaries.
3Productivity
If the host channel adapter uses a large number of physical collect buffers to handle commands from multiple virtual machines, then command processing capacity increases, but resource allocation becomes less efficient
Solution Approach 1:
The patent implements dynamics by making buffer allocation flexible and adaptive rather than static. The host channel adapter dynamically allocates PCBs and VCBs to virtual machines based on their specific needs and QoS level assignments. The registration information structure allows the system to track and adjust allocations for each virtual machine independently, enabling the same physical buffer pool to serve multiple virtual machines efficiently with varying allocations, thus increasing command processing capacity without proportionally increasing total buffer resources required.
Data Source
AI summary
A method for allocating resources of a host channel adapter includes the host channel adapter identifying an underlying function referenced in the first resource allocation request received from a virtual machine manager, determining that the first resource allocation request specifies a number of physical collect buffers (PCBs) allocated to the underlying function, allocating the number of PCBs to the underlying function, determining that the first resource allocation request specifies a number of virtual collect buffers (VCBs) allocated to the underlying function, and allocating the number of VCBs to the underlying function. The host channel adapter further receives command data for a command from the single virtual machine, determines that the underlying function has in use at least the number of PCBs when the command data is received, and drops the command data in the first command based on the underlying function having in use at least the number of PCBs.


