Virtual NUMA Topology Expansion with CPU Memory Hot-Add
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing hypervisors do not allow virtual NUMA to be used in conjunction with CPU hot-add and memory hot-add, limiting the performance optimization for business-critical, compute-intensive virtual machines.
Innovation Solution
Implementing a 'virtual NUMA+hot-add logic' component within the hypervisor to dynamically add new virtual NUMA nodes during CPU and memory hot-add operations, enabling concurrent support for virtual NUMA and CPU/memory hot-add without requiring VM restarts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If virtual NUMA topology is built and exposed to a VM, then memory access performance is optimized through local memory access, but CPU hot-add and memory hot-add functionality is lost
Solution Approach 1:
The virtual NUMA topology is made dynamic rather than static. The hypervisor continuously monitors and updates the virtual NUMA topology as vCPUs and memory are hot-added or hot-removed, allowing the topology to adapt to changing resource configurations while maintaining performance optimizations
Solution Approach 2:
The hypervisor pre-establishes the virtual NUMA topology structure in advance, organizing vCPUs and memory into virtual NUMA nodes before hot-add operations occur. This preliminary structure enables quick identification of local memory regions when new resources are added, maintaining performance without requiring topology reconstruction
2Adaptability or versatility
If CPU hot-add is enabled for a VM, then dynamic resource allocation is achieved, but virtual NUMA topology cannot be used
Solution Approach 1:
The system implements feedback mechanisms where the hypervisor continuously monitors resource allocation changes and adjusts the virtual NUMA topology accordingly. When vCPUs or memory are hot-added, the hypervisor receives feedback about the change and automatically updates the topology to maintain optimal local memory access patterns
3Adaptability or versatility
If a single virtual NUMA node including all vCPUs and memory is created, then CPU hot-add is supported, but memory access performance is degraded
Solution Approach 1:
The system segments the virtual memory space into multiple virtual NUMA nodes, each associated with specific vCPUs. This segmentation allows the system to maintain multiple virtual NUMA nodes rather than consolidating all resources into a single node, enabling both hot-add functionality and performance optimization through localized memory access
Data Source
AI summary
Techniques for concurrently supporting virtual non-uniform memory access (virtual NUMA) and CPU/memory hot-add in a virtual machine (VM) are provided. In one set of embodiments, a hypervisor of a host system can compute a node size for a virtual NUMA topology of the VM, where the node size indicates a maximum number of virtual central processing units (vCPUs) and a maximum amount of memory to be included in each virtual NUMA node. The hypervisor can further build and expose the virtual NUMA topology to the VM. Then, at a time of receiving a request to hot-add a new vCPU or memory region to the VM, the hypervisor can check whether all existing nodes in the virtual NUMA topology have reached the maximum number of vCPUs or maximum amount of memory, per the computed node size. If so, the hypervisor can create a new node with the new vCPU or memory region and add the new node to the virtual NUMA topology.


