Virtual PCI Expander Device for Multi-Bus VM Resource Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtual machine configurations face challenges in efficiently managing and allocating resources, particularly in detecting and assigning devices to virtual root buses, which limits the number of devices that can be supported and complicates booting processes for guest operating systems.
Innovation Solution
A method and system for configuring devices in a virtual environment that involves probing root buses to detect devices, assigning address ranges, and using expander devices to create additional virtual root buses, allowing for the detection and assignment of more devices beyond the limitations of a single root bus, enabling efficient resource management and booting capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If a single root bus is used to connect devices in a virtual machine, then the configuration is simple, but the number of supported devices is limited
Solution Approach 1:
The patent divides the device configuration into multiple root buses (first root bus, second root bus, etc.) to overcome the limitation of a single root bus. Each root bus can support a limited number of devices, but by segmenting the total device set across multiple buses, the system can support a larger overall number of devices while maintaining manageable complexity for each individual bus configuration.
Solution Approach 2:
The patent introduces an expander device as an intermediary component that bridges multiple root buses. The expander receives device assignments from the hypervisor and distributes them across multiple root buses, enabling the system to support more devices than a single root bus could handle while keeping the configuration process automated and manageable through software control.
2Quantity of substance
If multiple root buses are created to support more devices, then device capacity increases, but the booting process becomes more complex
Solution Approach 1:
The patent implements self-service by having the virtual machine's firmware automatically probe and detect devices on multiple root buses during the boot process. The firmware autonomously identifies devices, determines their locations across different root buses, and configures them without requiring manual intervention or complex configuration procedures from the user, thereby maintaining ease of operation despite supporting multiple buses.
Solution Approach 2:
The patent applies preliminary action by having the hypervisor pre-configure the expander device and establish the relationships between devices and root buses before the virtual machine boots. This preliminary setup allows the firmware to perform a straightforward probe and detect process during booting, as the device-to-bus mappings are already established, simplifying the booting process while supporting multiple root buses.
3Adaptability or versatility
If devices are assigned to multiple virtual root buses, then resource allocation flexibility improves, but device detection and assignment complexity increases
Solution Approach 1:
The patent implements feedback through an automated probing mechanism where the firmware systematically queries each root bus and expander to detect device presence and status. This feedback loop allows the system to automatically identify which devices are present on which root buses, dynamically adapt to the actual device configuration, and resolve device-to-bus assignments without manual intervention, thereby maintaining resource allocation flexibility while managing detection complexity through automation.
Data Source
AI summary
Methods, systems, and computer program products for notifying a virtual machine of an expander coupled to a first virtual root bus, probing the expander to detect an additional root bus, probing the additional root bus to detect a second device, and assigning the second device to a second virtual root bus of the virtual machine.


