DMA Engine Exposure for Virtual Machine Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In conventional virtual machine systems, the DMA engine is not exposed to guests, leading to CPU overload during data transfer operations, which can slow down system performance.

Innovation Solution

A hypervisor detects DMA requests from guests and directs the DMA engine to perform data transfers within the guest's memory space, based on predefined policies, allowing the DMA engine to offload CPU-intensive data copying operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the CPU executes data transfer operations in a virtual machine system, then the guest operations can be performed, but the CPU becomes overloaded and system performance slows down

Engineering Contradiction:
Improvedata transfer operation speedVSAvoidCPU overload time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts the data transfer function from the CPU by introducing a separate DMA (Direct Memory Access) engine. The DMA engine handles data transfer operations independently, allowing the CPU to focus on other computational tasks. This is achieved by configuring the DMA engine with its own address space that can be mapped to guest memory, enabling direct data movement without CPU intervention.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a DMA engine as an intermediary component between the guest virtual machine and the physical memory system. The DMA engine acts as a mediator that performs data transfer operations on behalf of the guest, reducing the burden on the CPU. The hypervisor manages the DMA engine's address space and ensures proper mapping to guest memory regions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the DMA engine is not exposed to the guest, then the host system maintains control, but the guest cannot perform efficient data transfers

Engineering Contradiction:
Improveguest data transfer capabilityVSAvoidDMA engine exposure configuration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the address space management by creating a separate DMA address space that is distinct from the host and guest address spaces. The hypervisor configures this DMA address space to be accessible to the guest virtual machine while maintaining host control through the virtio driver interface. This segmentation allows the guest to perform DMA operations efficiently without compromising host system security or control.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The DMA engine is designed with multi-functionality to serve both host and guest operations. The same DMA engine can be dynamically allocated to different guests based on their data transfer needs, while the hypervisor maintains the ability to manage DMA operations for host system tasks. This universal design maximizes resource utilization without requiring separate DMA engines for each guest.

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

Data Source

PatentUS8892788B2Exposing a DMA engine to guests in a virtual machine system
Publication Date: 2014.11.18 RED HAT ISRAEL
  • US8892788B2 patent drawing
  • US8892788B2 patent drawing
  • US8892788B2 patent drawing

AI summary

A method and system for copying data within a guest using a direct memory access (DMA) engine. A computer system hosts a hypervisor and a guest. The hypervisor detects an inquiry of the guest about a DMA engine. In response to the inquiry, the hypervisor indicates to the guest that a DMA engine is available. The hypervisor then receives a DMA request from the guest, the DMA request indicating a source address and a target address for copying data. Both the source address and the target address are within an address space allocated to the guest. Based on one or more data transfer policies, the hypervisor determines whether to direct the DMA engine to copy the data for the guest.