Guest OS DMA Access State for Virtual Memory Swapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional DMA systems fail to recover from errors when a device assigned to a guest operating system attempts direct memory access to an address not currently resident in memory, leading to performance degradation due to significant overhead in error handling.

Innovation Solution

Implement a method where a guest operating system detects DMA requests, sets a DMA access state for pages, and coordinates with the hypervisor to swap out pages not in host memory, allowing DMA access even for non-resident pages by invalidating mappings in the IOMMU and CPU page tables.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional DMA systems are used with virtual memory swapping, then memory allocation flexibility is improved, but system reliability deteriorates due to unrecoverable DMA errors

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoidDMA operation reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary actions by setting the DMA access state for pages before DMA operations occur. The guest OS identifies pages that will be accessed by DMA devices and marks them with a DMA access state, ensuring these pages are not swapped out. This preliminary marking prevents the error condition before it can occur.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms through page fault handling. When a page fault occurs during DMA, the hypervisor detects it and checks the DMA access state of the requested page. Based on this feedback, the system either swaps in the page or selects a different candidate page, continuously adapting to maintain DMA reliability.

Inventive Principle:
Principle #23Feedback

2Manufacturing precision

If frequent updates to IOMMU and CPU page tables are performed to maintain DMA accuracy, then DMA address translation accuracy is improved, but system performance deteriorates due to update overhead

Engineering Contradiction:
ImproveDMA address translation accuracyVSAvoidsystem performance
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The system performs preliminary action by pre-setting the DMA access state for pages before they are accessed. This allows the IOMMU to be configured in advance with the correct mappings, eliminating the need for frequent updates during DMA operations. The guest OS identifies and marks DMA-accessible pages beforehand, reducing runtime overhead.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses dynamic page state management where pages can transition between different access states (normal vs. DMA access state). This dynamic approach allows the system to adapt page mappings based on actual access patterns rather than maintaining static, frequently-updated mappings for all pages.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If DMA access is restricted only to resident pages, then DMA error recovery is simplified, but memory utilization deteriorates due to inability to access swapped-out pages

Engineering Contradiction:
Improveerror handling simplicityVSAvoidmemory utilization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system performs preliminary action by proactively identifying and marking pages that need to remain in memory for DMA operations. The guest OS sets the DMA access state for pages before DMA transfers, preventing the need for complex error recovery while still allowing access to swapped-out pages when needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The DMA access state acts as an intermediary mechanism between the guest OS and the page swapping system. It provides a layer of abstraction that allows the system to distinguish between pages that can be swapped and pages that must remain accessible, enabling both efficient memory management and reliable DMA operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9720846B2Memory swap for direct memory access by a device assigned to a guest operating system
Publication Date: 2017.08.01 RED HAT ISRAEL
  • US9720846B2 patent drawing
  • US9720846B2 patent drawing
  • US9720846B2 patent drawing

AI summary

A hypervisor detects a page fault associated with the request for a device assigned to a guest operating system to perform direct memory access (DMA) of a requested page of memory, invalidates a mapping in a central processing unit (CPU) page table of a guest physical address to a host physical address for a candidate page for being swapped out of host memory, checks a DMA access state of the candidate page to determine whether or not the candidate page can be swapped out from the host memory, and removes the candidate page from the host memory in response to determining that the DMA access state indicates that the candidate page can be swapped out.