Kernel Page Relocation via IOMMU Bus Suspension

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in relocating kernel pages without causing system failures, especially when kernel pages are accessed via Direct Virtual Memory Access (DVMA), leading to performance degradation due to contention on limited system boards and the inability to distribute kernel pages across all system boards.

Innovation Solution

A technique that allows kernel page relocation even when accessed by I/O devices using DVMA, by temporarily suspending I/O operations, updating IOMMU mappings, and ensuring seamless continuation without modifying existing device drivers, enabling kernel pages to be distributed across any system board.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If kernel pages are distributed across all system boards, then system performance is improved by reducing contention, but system reliability deteriorates due to potential failures during DVMA operations

Engineering Contradiction:
Improvesystem performanceVSAvoidsystem reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by quiescing I/O devices and suspending DVMA operations before relocating kernel pages. This ensures that no DVMA transactions are in progress during relocation, preventing system failures while enabling safe distribution of kernel pages across system boards

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts the state of I/O devices during page relocation by temporarily quiescing them and then resuming operations after relocation completes. This dynamic state change allows the system to safely redistribute kernel pages while maintaining operational continuity

Inventive Principle:
Principle #15Dynamics

2Productivity

If I/O devices access kernel pages via DVMA during relocation, then system availability is maintained, but system stability deteriorates due to potential failures

Engineering Contradiction:
Improvesystem availabilityVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The system applies preliminary anti-action by quiescing I/O devices before kernel page relocation begins. This prevents DVMA transactions from occurring during relocation, eliminating the instability caused by concurrent access while maintaining system availability through controlled suspension and resumption of I/O operations

Inventive Principle:
Principle #9Preliminary anti-action

3Reliability

If kernel pages are concentrated on limited system boards, then system reliability is maintained through controlled access, but system performance deteriorates due to contention

Engineering Contradiction:
Improvesystem reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary quiescing of I/O devices before initiating kernel page relocation. This preliminary action enables the safe distribution of kernel pages across multiple system boards by ensuring no DVMA transactions are in progress, thereby improving performance through reduced contention while maintaining reliability

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7721068B2Relocation of active DMA pages
Publication Date: 2010.05.18 ORACLE AMERICAN INC
  • US7721068B2 patent drawing
  • US7721068B2 patent drawing
  • US7721068B2 patent drawing

AI summary

According to one embodiment of the invention, a technique is provided for facilitating the relocation of data from a source page to a destination page in a computing system in which I/O devices may conduct DVMA transactions via an IOMMU. Before the relocation, it is determined whether any devices potentially are accessing the source page. If it is determined that a device potentially is accessing the source page, then the IOMMU's device driver (“bus nexus”) “suspends” the bus. The bus nexus allows any pending memory transactions to finish. While the bus is suspended, the kernel moves the contents of the source page to the destination page. After the kernel has moved the contents, the IOMMU's TLB is updated so that the virtual address that was mapped to the source page's physical address is mapped to the destination page's physical address. The bus nexus “unsuspends” the bus.