Dynamic RDMA Memory Relocation Across NUMA Nodes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

RDMA memory is typically pinned, preventing it from being moved from one node to another, which limits flexibility and efficiency in memory management, especially in NUMA systems where load balancing and performance optimization are desired.

Innovation Solution

A method and system for moving RDMA memory pages from one node to another by protecting the memory region from write operations, allocating a new memory page on the target node, copying data, updating the memory page list, and registering the new page, allowing RDMA memory to be dynamically relocated.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If RDMA memory is pinned at the source memory location, then memory stability and reliability are improved, but memory mobility and adaptability deteriorate

Engineering Contradiction:
Improvememory stabilityVSAvoidmemory mobility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic memory management by allowing RDMA memory pages to be moved between different physical memory locations and NUMA nodes. The system transitions from static pinned memory to dynamic relocatable memory through copy-page operations, enabling the memory allocation to adapt to changing system conditions while maintaining RDMA functionality.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the memory management parameters by modifying the pinned state of memory pages. Through the copy-page operation, the system changes the physical location parameter of RDMA memory pages while maintaining their logical identity and RDMA registration, enabling movement from one NUMA node to another.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If RDMA memory is pinned and cannot be moved, then memory allocation simplicity is improved, but load balancing capability and system performance deteriorate

Engineering Contradiction:
Improvememory allocation simplicityVSAvoidsystem performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent introduces dynamic memory relocation capabilities that allow the system to balance memory load across NUMA nodes. The copy-page operation enables memory pages to be moved to optimize performance while maintaining relatively simple allocation procedures through the memory handler interface.

Inventive Principle:
Principle #15Dynamics

3Stability of the object's composition

If RDMA memory is pinned at source location, then memory access consistency is improved, but memory flexibility and relocation capability deteriorate

Engineering Contradiction:
Improvememory access consistencyVSAvoidrelocation capability
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent uses the copy-page operation to create a copy of the RDMA memory page at the target location while maintaining the original page. This copying mechanism allows the memory to be relocated from one NUMA node to another while preserving data integrity and enabling the system to choose the optimal location for each memory page.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10019276B2Dynamic non-uniform memory architecture (NUMA) locality for remote direct memory access (RDMA) applications
Publication Date: 2018.07.10 RED HAT ISRAEL
  • US10019276B2 patent drawing
  • US10019276B2 patent drawing
  • US10019276B2 patent drawing

AI summary

An example method of moving RDMA memory from a first node to a second node includes protecting a memory region from write operations. The memory region resides on a first node and includes a set of RDMA memory pages. A list specifies the set of RDMA memory pages and is associated with a memory handler. The set of RDMA memory pages includes a first memory page. The method also includes allocating a second memory page that resides on a second node and copying data stored in the first memory page to the second memory page. The method also includes updating the list by replacing the first memory page specified in the list with the second memory page. The method further includes registering the updated list as RDMA memory. The updated list is associated with the memory handler after the registering.