Shared Memory Pool for Virtualized DMA

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualization environments, enabling direct memory access (DMA) operations like RDMA while maintaining memory overcommitment is challenging, as existing methods often require pinning all guest memory to physical memory, disabling memory overcommitment.

Innovation Solution

A shared memory pool is introduced, where a hypervisor intercepts memory registration requests from virtual machines, creating virtual keys that allow DMA operations to be performed on a shared memory pool without actually pinning the entire memory region to physical memory, enabling RDMA operations without disabling memory overcommitment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all guest memory is pinned to physical memory to enable RDMA operations, then DMA operations can be performed, but memory overcommitment is disabled

Engineering Contradiction:
ImproveDMA operation capabilityVSAvoidmemory overcommitment
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the memory management approach by introducing a shared memory pool that is separately pinned from the guest memory regions. Instead of pinning all guest memory, only the shared memory pool is pinned, allowing guest memory to remain virtual and overcommitable while still enabling DMA operations on the shared pool.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The shared memory pool acts as an intermediary between the guest memory regions and the hardware device. Guest memory regions map to this shared pool, which is then pinned and made accessible to the hardware device for DMA operations. This intermediary layer allows virtual memory to be accessed by hardware without requiring the entire guest memory to be pinned.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If guest memory is pinned to physical memory for RDMA, then direct memory access is enabled, but processor overhead increases due to memory management complexity

Engineering Contradiction:
Improvedirect memory access capabilityVSAvoidmemory management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the memory pooling function with the pinning function into a single shared memory pool structure. This consolidation allows the hypervisor to manage memory more efficiently by combining multiple guest memory regions into a unified pinned structure, reducing the complexity of individual memory management operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared memory pool serves multiple functions: it acts as the pinned memory structure for DMA access, serves as the mapping target for multiple guest memory regions, and provides a unified interface for both local and remote DMA operations. This multi-functionality reduces overall system complexity compared to managing separate pinned structures for each guest memory region.

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

Data Source

PatentUS10157146B2Local access DMA with shared memory pool
Publication Date: 2018.12.18 RED HAT ISRAEL
  • US10157146B2 patent drawing
  • US10157146B2 patent drawing
  • US10157146B2 patent drawing

AI summary

A processing device receives a first request from a virtual machine to register a memory region to a hardware device. The processing device generates a first key for the memory region, wherein the memory region is not registered to the hardware device. The processing device generates a second key for a shared memory pool that is pinned and registered to the hardware device. The processing device generates a mapping of the first key to the second key. The processing device sends a response to the virtual machine that the memory region has been registered to the hardware device, the notification comprising the first key.