Dynamic P2P PCI Address Mapping for Virtualization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized computing systems, peer-to-peer transactions between PCI devices often require address translations, which can lead to bottlenecks and reduced operational efficiency, especially when numerous transactions are executed, as they need to go through a host device for address translation, slowing down the system.
Innovation Solution
The system dynamically configures itself to enable peer-to-peer communications by using an emulator application to read physical addresses of PCI devices, write them into emulated registers, and configure page tables for physical-to-physical address mapping, allowing direct communication between devices without the need for address translations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If peer-to-peer transactions use virtual addresses for address translation through host device, then security and virtualization control are improved, but processing speed and operational efficiency deteriorate due to translation delays
Solution Approach 1:
The system dynamically switches between two address mapping modes: virtual-to-physical mapping for secure virtualized operations and physical-to-physical mapping for high-speed peer-to-peer communication. The mapping mode is changed based on the transaction type, allowing the system to adapt between security requirements and performance requirements dynamically
Solution Approach 2:
The patent changes the address mapping parameter from virtual address translation to physical address direct mapping for peer-to-peer transactions. This parameter change eliminates the translation step while maintaining security through IOMMU configuration, directly addressing the speed-performance issue
2Adaptability or versatility
If address translations are performed for all peer-to-peer transactions, then virtualization control is maintained, but system throughput and productivity deteriorate due to translation overhead
Solution Approach 1:
The system applies different address mapping qualities to different transactions: virtual address translation for transactions requiring virtualization control, and physical direct mapping for peer-to-peer transactions requiring high throughput. This local differentiation optimizes both security and productivity
Solution Approach 2:
The IOMMU acts as an intermediary that can be configured to either translate addresses or pass through physical addresses directly. For peer-to-peer transactions, the IOMMU is configured to pass through physical addresses, eliminating translation overhead while maintaining virtualization control for other operations
3Productivity
If physical addresses are used directly for peer-to-peer communication, then processing efficiency is improved by eliminating address translation, but device complexity increases due to configuration requirements
Solution Approach 1:
The emulator application automatically reads physical addresses from PCI devices and configures the page tables without manual intervention. This self-service configuration process handles the complexity automatically, improving productivity while managing device complexity through automation
Solution Approach 2:
The system performs preliminary configuration actions by having the emulator application read physical addresses and configure page tables before transactions occur. This preliminary setup eliminates the need for complex runtime configuration, improving operational efficiency while managing complexity through advance preparation
Data Source
AI summary
Provided are systems, methods, and computer-program products for enabling peer-to-peer communications between peripheral devices in a computing system. In various implementations, a host device in the computing system can read an address from a peripheral device included in the computing system. The host device can further configure an emulated peripheral device corresponding to the peripheral device, including writing the address to an emulated register of the emulated peripheral device. The host device can further initiate a virtual machine, including reading the address from the emulated register, initializing a page table for the virtual machine, and initiating a guest operating system. The guest operating system can be operable to use the address to access the physical device.


