Smart IO Device Command Queues for Virtual Machine Acceleration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtualization systems require guest domains to go through a software Hypervisor for all IO access, leading to performance issues due to multiple kernel transitions and inefficiencies in control operations, which also restrict the use of the same OS distribution on virtualized and non-virtualized servers.

Innovation Solution

A smart IO device with unrestricted and restricted command queues allows guest domains to directly configure and control IO resources, offloading Hypervisor involvement and enabling direct hardware access for both datapath and control operations, using a command queue creation function and address translation to validate and translate addresses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all IO accesses go through the Hypervisor software layer, then resource isolation and control are maintained, but performance deteriorates due to multiple kernel transitions and increased CPU demands

Engineering Contradiction:
Improveresource isolationVSAvoidIO access performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The command queue is segmented into multiple types (unrestricted, restricted, and proxy) with different access permissions. Unrestricted CQs allow direct guest access for performance-critical operations, restricted CQs maintain Hypervisor control for security, and proxy CQs handle privileged operations. This segmentation enables simultaneous optimization of performance and security by routing different IO accesses through appropriate pathways.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The proxy command queue acts as an intermediary mechanism between guest domains and the Hypervisor. When a guest domain needs to perform privileged operations, it submits commands through the proxy CQ, which then handles the interaction with the Hypervisor. This intermediary approach reduces the frequency of direct Hypervisor involvement while maintaining proper control and isolation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple kernel transitions are used for IO access in virtualized environments, then resource control and isolation are ensured, but CPU load increases and execution efficiency decreases

Engineering Contradiction:
Improveresource controlVSAvoidkernel transition time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary configuration by creating and configuring multiple types of command queues before guest domain operation. The Hypervisor pre-establishes unrestricted CQs for direct access, restricted CQs for controlled access, and proxy CQs for privileged operations. This preliminary setup eliminates the need for frequent kernel transitions during runtime, as guests can directly use the pre-configured unrestricted CQs for common operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Guest domains are enabled to self-service by directly accessing unrestricted command queues and configuring their own IO resources without Hypervisor intervention. The gatekeeper module automatically handles access control and resource allocation based on pre-configured policies, allowing guest domains to manage their IO operations independently while maintaining system-wide resource control.

Inventive Principle:
Principle #25Self-service

3Productivity

If direct hardware access is enabled for guest domains, then IO performance improves, but system security and resource isolation may be compromised

Engineering Contradiction:
ImproveIO access speedVSAvoidsystem security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Different command queues are assigned different access qualities and permissions. Unrestricted CQs provide direct guest access with full functionality for specific IO operations, while restricted CQs maintain Hypervisor-controlled access for other operations. The gatekeeper module applies local quality control by determining which CQ type to use based on the specific IO request, enabling direct hardware access where safe while maintaining security where needed.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system changes the access parameters of command queues based on the operation type and guest domain permissions. By dynamically selecting between unrestricted, restricted, and proxy CQ modes, the system adjusts the level of direct hardware access granted to guests. This parameter-based control allows the system to optimize performance for appropriate operations while maintaining security boundaries through parameter-driven access control.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8645964B2System and method for accelerating input/output access operation on a virtual machine
Publication Date: 2014.02.04 MELLANOX TECHNOLOGIES LTD(IL)
  • US8645964B2 patent drawing
  • US8645964B2 patent drawing
  • US8645964B2 patent drawing

AI summary

A system and method for accelerating input/output (IO) access operation on a virtual machine, The method comprises providing a smart IO device that includes an unrestricted command queue (CQ) and a plurality of restricted CQs and allowing a guest domain to directly configure and control IO resources through a respective restricted CQ, the IO resources allocated to the guest domain. In preferred embodiments, the allocation of IO resources to each guest domain is performed by a privileged virtual switching element. In some embodiments, the smart IO device is a HCA and the privileged virtual switching element is a Hypervisor.