PCIe Card Function Segmentation for Virtualization Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Virtualized computing systems face latency issues due to context switching in fully virtualized environments and reduced hardware sharing in non-fully virtualized systems, while PCIe IOV requires hardware support and has limited industry adoption.
Innovation Solution
The techniques allow individual functions of a PCI card to be assigned to guest operating systems, enabling partial bypass of the hypervisor and host OS, with pseudo device identifiers and vendor-specific capabilities for parameter passing and reset management, without requiring hardware or software modifications in the PCI card.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If all IO requests pass through the hypervisor in fully virtualized systems, then hardware sharing is improved, but latency increases due to context switching
Solution Approach 1:
The PCI card is segmented into multiple functions, where function 0 is retained for hypervisor-mediated access enabling hardware sharing, while function 1 is assigned directly to the guest OS for low-latency operations. This segmentation allows simultaneous achievement of both hardware sharing and reduced latency by directing different types of operations through different functions.
2Loss of time
If entire PCI card is assigned to single guest OS, then latency is reduced, but hardware sharing capability is lost
Solution Approach 1:
The PCI card is divided into multiple functions with function 0 reserved for hypervisor control and function 1 assigned to guest OS. This allows the system to maintain hardware sharing capability through function 0 while providing direct access paths through function 1 for latency-sensitive operations.
Solution Approach 2:
The solution adds a functional dimension to PCI card sharing, moving from binary (whole card assigned or not) to multi-dimensional (different functions assigned to different entities). This allows simultaneous partial assignment to multiple guests while maintaining overall sharing capability.
3Adaptability or versatility
If PCIe IOV is implemented, then function-level assignment is enabled, but hardware support requirement increases complexity
Solution Approach 1:
Instead of requiring complex hardware support for PCIe IOV, the invention creates a software-emulated copy of the PCI card configuration space. The hypervisor presents a virtual configuration space to the guest OS that mimics a dedicated PCI card, allowing function-level assignment without modifying the physical hardware architecture.
Data Source
AI summary
Techniques for loading device drivers are provided. A configuration space may contain a device identifier. The configuration space may be modified by replacing the device identifier with a pseudo device identifier. In one aspect the pseudo device identifier may be passed to a virtual machine. In another aspect, the pseudo device identifier may be used to load a driver.


