Shared Memory Pool for Virtualized DMA
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
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.


