Virtual Root Bus Address Allocation for Hot-Plug

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized systems, hot-plugging of hardware devices into multiple virtual root buses is challenging due to uncertainty in address range requirements and limitations in non-uniform memory access (NUMA) systems, where devices attached to non-root PCI buses cannot perform certain functions like system boot.

Innovation Solution

A hypervisor obtains resource quantity values for each virtual bus, determines and allocates non-overlapping address ranges, and notifies the guest component to enable hot-plugging of virtual devices across multiple virtual root buses, leveraging proximity to NUMA nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If devices are hot-plugged into multiple virtual root buses in virtualized systems, then device functionality and system versatility are improved, but address range allocation complexity and system complexity increase due to uncertainty in address range requirements and NUMA system limitations

Engineering Contradiction:
Improvedevice hot-plugging capabilityVSAvoidaddress range allocation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the address space into distinct ranges for different virtual root buses. The hypervisor allocates specific address ranges to each virtual bus, allowing independent device hot-plugging on each bus without conflicts. This segmentation resolves the complexity by dividing the overall address allocation problem into manageable per-bus allocations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary address range allocation before device hot-plugging occurs. The hypervisor pre-allocates address ranges to virtual root buses and updates system tables (ACPI, PCI) in advance, ensuring that when devices are hot-plugged, the address space is already prepared and configured, eliminating allocation complexity during the hot-plug operation.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If address ranges are allocated for virtual devices on multiple virtual root buses, then hot-plugging functionality is enabled, but system resource allocation complexity increases

Engineering Contradiction:
Improvehot-plugging functionalityVSAvoidsystem resource allocation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The hypervisor performs preliminary allocation of system resources (address ranges) to virtual root buses before devices are hot-plugged. System tables are updated in advance with the allocated ranges, so when hot-plugging occurs, resources are already prepared and assigned, simplifying the hot-plug operation itself.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces system tables (ACPI, PCI) as intermediaries between the hypervisor and virtual devices. These tables store and manage address range allocations, acting as a mediator that automatically handles resource tracking and assignment, reducing the complexity of direct resource management by the hypervisor.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If non-overlapping address ranges are assigned to multiple virtual root buses, then device attachment capability is improved, but processing time and notification overhead increase

Engineering Contradiction:
Improvedevice attachment capabilityVSAvoidnotification time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The hypervisor performs preliminary assignment of non-overlapping address ranges to virtual root buses and pre-updates system tables before devices are attached. This preliminary configuration ensures that when devices are hot-plugged, the address space is already prepared, eliminating the need for time-consuming allocation calculations during the attachment process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10534742B2Hot-plug of devices in virtualized computer systems
Publication Date: 2020.01.14 RED HAT ISRAEL
  • US10534742B2 patent drawing
  • US10534742B2 patent drawing
  • US10534742B2 patent drawing

AI summary

A system and method for enabling hot-plugging of devices in virtualized systems. A hypervisor obtains respective values representing respective quantities of a resource for a plurality of virtual root buses of a virtual machine (VM). The hypervisor determines a first set of address ranges of the resource that are allocated for one or more virtual devices attached to at least one of the plurality of virtual root buses. The hypervisor determines, in view of the first set of allocated address ranges, a second set of address ranges of the resource available for attaching one or more additional virtual devices to at least one of the plurality of virtual root buses. The hypervisor assigns to the plurality of virtual root buses non-overlapping respective address ranges of the resource within the second set.