UMA-aware root bus selection for virtual machines
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtual computing systems with Non-Uniform Memory Access (NUMA) architecture, attaching a pass-through device to a virtual machine can lead to performance degradation due to incorrect association with a virtual NUMA node, resulting in increased processing overhead from data transfer between NUMA nodes.
Innovation Solution
A management system determines the appropriate host NUMA node for a pass-through device, creates a virtual NUMA node mapped to that host node, adds a virtual PCI expander bridge, and associates it with the virtual NUMA node, allowing the pass-through device to be attached to the virtual root bus, thereby optimizing performance by reducing inter-NUMA node data transfer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a pass-through device is attached to a virtual machine without NUMA-aware root bus selection, then device attachment is simplified, but performance degrades due to increased processing overhead from data transfer between NUMA nodes
Solution Approach 1:
The patent introduces a management system as an intermediary that automatically determines the appropriate host NUMA node for a pass-through device and configures the virtual machine's root bus accordingly. This intermediary resolves the contradiction by handling the complex NUMA-aware configuration automatically, maintaining ease of operation while optimizing performance through proper NUMA node association.
Solution Approach 2:
The patent performs preliminary action by determining the appropriate host NUMA node and configuring the virtual root bus association before the pass-through device is attached to the virtual machine. This advance configuration ensures optimal performance from the outset while keeping the attachment process simple for the user.
2Loss of energy
If NUMA-aware root bus selection is implemented, then processing overhead is reduced by keeping data within the correct NUMA node, but system complexity increases due to additional configuration steps
Solution Approach 1:
The management system acts as an intermediary that automatically handles the complex NUMA-aware configuration, including determining the appropriate host NUMA node and configuring the virtual root bus association. This automation reduces processing overhead while minimizing the perceived complexity for users, as the system manages the configuration steps transparently.
Solution Approach 2:
The system performs self-service by automatically determining NUMA node associations and configuring virtual root buses without requiring manual intervention. This self-configuration capability reduces processing overhead through proper NUMA alignment while keeping the system appear simple to users who don't need to understand the underlying complexity.
3Ease of operation
If data transfer between NUMA nodes is allowed for simplicity, then device attachment is easier, but energy consumption increases due to additional data transfer operations
Solution Approach 1:
The management system serves as an intermediary that automatically configures the virtual root bus to associate with the correct host NUMA node, preventing unnecessary data transfers between NUMA nodes. This maintains ease of operation by automating the configuration while reducing energy consumption through optimized data locality.
Solution Approach 2:
The system performs preliminary configuration of the virtual root bus association with the appropriate NUMA node before device attachment, ensuring data remains within the correct NUMA node. This advance setup reduces energy consumption by preventing cross-NUMA data transfers while keeping the attachment process simple for users.
Data Source
AI summary
A method includes determining a first host Non-Uniform Memory Access (NUMA) node of a plurality of host NUMA nodes on a host machine that provides a virtual machine to a guest, the first host NUMA node being associated with a pass-through device, creating a virtual NUMA node on the virtual machine, mapping the virtual NUMA node to the first host NUMA node, adding a virtual expander to a virtual root bus of the virtual machine, and associating the virtual expander with the virtual NUMA node.


