PCIe Card Function Segmentation for Virtualization Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvehardware sharingVSAvoidlatency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If entire PCI card is assigned to single guest OS, then latency is reduced, but hardware sharing capability is lost

Engineering Contradiction:
ImprovelatencyVSAvoidhardware sharing
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Adaptability or versatility

If PCIe IOV is implemented, then function-level assignment is enabled, but hardware support requirement increases complexity

Engineering Contradiction:
Improvefunction assignment granularityVSAvoidhardware support requirement
Core Design Contradiction:
Adaptability or versatilityVSDevice 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.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9195495B2Configuration space with pseudo device identifier
Publication Date: 2015.11.24 VALTRUS INNOVATIONS LTD
  • US9195495B2 patent drawing
  • US9195495B2 patent drawing
  • US9195495B2 patent drawing

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.