Virtual Function Driver Loading via Global and Local Identifiers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In SR-IOV scenarios, multiple virtual functions (VFs) virtualized by a single physical PCIe device share the same device ID, preventing different PCIe drivers from being loaded for each VF.
Innovation Solution
A driver loading method that utilizes a server to determine a global index and global VF identifier for each VF, allowing for the allocation of a local index on a VM and creating a correspondence to load a specific driver for each VF, enabling different drivers to be loaded for VFs with distinct functions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single device ID is used for all VFs virtualized by a PCIe device, then device identification is simplified, but different drivers cannot be loaded for different VFs
Solution Approach 1:
The patent segments the device identification system into two levels: a shared device ID at the PCIe device level and unique VF identifiers at the virtual function level. This segmentation allows the system to maintain simple device identification while enabling differentiated driver loading for each VF through the additional identifier layer.
Solution Approach 2:
The patent adds another dimension to device identification by introducing VF-specific identifiers alongside the existing device ID. This dimensional expansion transforms the identification system from a single-dimension (device ID only) to a multi-dimension system (device ID + VF identifier), enabling both simplicity and flexibility simultaneously.
2Ease of operation
If device ID is used to match PCIe devices with drivers, then matching process is straightforward, but multiple VFs with same device ID cannot be differentiated
Solution Approach 1:
The matching process is segmented into two stages: first matching the PCIe device using the device ID, then matching the specific VF using the VF identifier. This segmentation maintains the straightforward nature of device matching while adding precise VF differentiation in the second stage.
Solution Approach 2:
The VF identifier acts as an intermediary between the device ID and the driver loading process. It bridges the gap by providing additional discrimination capability while working in conjunction with the existing device ID matching mechanism, enabling both ease of operation and precision.
3Device complexity
If all VFs share the same driver, then driver management is simplified, but service deployment flexibility is reduced
Solution Approach 1:
The system maintains universal driver management at the PCIe device level while enabling multi-functionality at the VF level. Each VF can be assigned a specific driver based on its function, allowing the system to handle both simplified management and diverse service requirements through the dual-identifier approach.
Data Source
AI summary
A driver loading method and a server, where when receiving a service request, the server determines a first global index and a first global virtual function (VF) identifier corresponding to a first function description of a designated function included in the service request, determines a virtual machine (VM) corresponding to the service request, associates the first global VF identifier with the VM, allocates a first local index on the VM to the designated function, creates a correspondence between the first local index and the first function description, and sends the correspondence to the VM. The VM loads, according to the correspondence, a driver of the designated function for a first VF corresponding to the first global VF identifier. According to the foregoing method, different drivers can be loaded for VFs that have different functions and that are virtualized by a Peripheral Component Interconnect Express (PCIe) device.


