Virtual Function Driver Loading via Global and Local Identifiers

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

VSEngineering 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

Engineering Contradiction:
Improvedevice identification complexityVSAvoiddriver loading flexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

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

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

Engineering Contradiction:
Improvedriver matching processVSAvoidVF identification precision
Core Design Contradiction:
Ease of operationVSMeasurement precision

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If all VFs share the same driver, then driver management is simplified, but service deployment flexibility is reduced

Engineering Contradiction:
Improvedriver management complexityVSAvoidservice deployment flexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11188347B2Virtual function driver loading method and server using global and local identifiers corresponding to locations of the virtual functions
Publication Date: 2021.11.30 HUAWEI TECH CO LTD
  • US11188347B2 patent drawing
  • US11188347B2 patent drawing
  • US11188347B2 patent drawing

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.