Reclaiming Pre-Allocated DMA Memory via Hot-Add RAM Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in efficiently reallocating pre-allocated direct memory access (DMA) memory due to RAM fragmentation, leading to performance issues and inability to reuse reserved memory for general-purpose use, especially in high-availability servers that require flexible memory management.

Innovation Solution

The method involves emulating hot-add random access memory (RAM) to reclaim pre-allocated DMA memory by notifying a non-kernel device user of a smaller window, stopping and remapping, and signaling the kernel that new memory has been added, effectively splitting the hot-add RAM into continuous parts for general-purpose use.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If pre-allocated DMA memory is reserved at boot time, then DMA operations can proceed independently of the CPU with improved performance, but the memory cannot be reused for general-purpose use leading to RAM fragmentation

Engineering Contradiction:
ImproveDMA operation performanceVSAvoidMemory reusability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic memory management by allowing the DMA memory window to be adjusted at runtime. The system can shrink the DMA window when memory is needed for general-purpose use, and expand it when DMA operations require more memory. This dynamic adjustment resolves the contradiction by making the memory allocation flexible rather than static, allowing both DMA performance and memory reusability to be optimized based on current system needs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent performs preliminary actions by pre-allocating DMA memory at boot time as intended, but also prepares the system for future reallocation by implementing hot-add RAM emulation capabilities. This allows the system to proactively manage memory before fragmentation becomes problematic, enabling seamless transitions between DMA-optimized and general-purpose memory usage without system downtime.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If memory is pre-allocated for DMA use, then memory availability for DMA operations is guaranteed, but server downtime increases when memory reallocation is needed

Engineering Contradiction:
ImproveDMA memory availabilityVSAvoidServer downtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent prepares the system in advance by implementing hot-add RAM emulation functionality during normal operation. When memory reallocation is needed, the system has already prepared the necessary data structures and mappings, allowing the transition to occur without stopping DMA operations. This preliminary preparation eliminates server downtime during memory reallocation while maintaining guaranteed memory availability for DMA.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent ensures continuous DMA operations during memory reallocation by maintaining active DMA mappings and using emulation techniques that keep the DMA engine running. The system performs memory management tasks in the background without interrupting the useful action of data transfer, thus maintaining both reliability and minimizing downtime.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If traditional memory reallocation methods are used, then memory can be freed for general-purpose use, but changing preallocation schemes or rebooting the OS kernel is required

Engineering Contradiction:
ImproveMemory flexibilityVSAvoidSystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces hot-add RAM emulation as an intermediary layer between the physical memory and the DMA subsystem. This emulation layer handles the complexity of memory reallocation, window adjustment, and mapping updates, shielding the rest of the system from these complexities. The intermediary absorbs the system complexity while providing simple interfaces for memory management, resolving the contradiction between flexibility and complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10289563B2Efficient reclamation of pre-allocated direct memory access (DMA) memory
Publication Date: 2019.05.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10289563B2 patent drawing
  • US10289563B2 patent drawing
  • US10289563B2 patent drawing

AI summary

For efficient reclamation of pre-allocated direct memory access (DMA) memory in a computing environment, hot-add random access memory (RAM) is emulated for a general purpose use by reclamation of pre-allocated DMA memory reserved at boot time by notifying a non-kernel use device user that the non-kernel use device has a smaller window, stopping and remapping to the smaller window, and notifying a kernel that new memory has been added, wherein the new memory is a region left after the remap. The hot-add RAM is split into at least two continuous parts.