Kernel Page Relocation via IOMMU Bus Suspension
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
Data Source
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.


