IP Library Granted Patent US 11,941,422
Granted Patent B2
US 11,941,422 · App. 17/376,070 · Granted Mar 26, 2024

Virtual non-uniform memory access (NUMA) locality table for NUMA systems

Inventors: Timothy Merrifield (Austin, TX); Petr Vandrovec (Cupertino, CA); Xunjia Lu (Los Altos, CA); James White (Seattle, WA)
Assignee: VMware LLC
G06F9/45554G06F9/45558
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,941,422
App. No.
17/376,070
Granted
Mar 26, 2024
Kind
B2
Abstract

Various approaches for exposing a virtual Non-Uniform Memory Access (NUMA) locality table to the guest OS of a VM running on NUMA system are provided. These approaches provide different tradeoffs between the accuracy of the virtual NUMA locality table and the ability of the system's hypervisor to migrate virtual NUMA nodes, with the general goal of enabling the guest OS to make more informed task placement/memory allocation decisions.

Claims (45)

1. A method comprising:

assigning, by a hypervisor running on a non-uniform memory access (NUMA) computer system, a virtual NUMA topology to a virtual machine (VM), the virtual NUMA topology including a plurality of virtual NUMA nodes;

determining, by the hypervisor, a virtual NUMA locality table for the VM in accordance with a physical NUMA locality table of the NUMA computer system, wherein the physical NUMA locality table comprises latency values for a plurality of physical NUMA nodes of the NUMA computer system, and wherein latency values in the virtual NUMA locality table are based on:

the latency values in the physical NUMA locality table; and

mappings between the plurality of virtual NUMA nodes and the plurality of physical NUMA nodes; and

exposing, by the hypervisor, the virtual NUMA locality table to a guest operating system (OS) of the VM.

2. The method of claim 1 wherein the mappings include, for each virtual NUMA node in the plurality of virtual NUMA nodes, a mapping between the virtual NUMA node and a single physical NUMA node in the plurality of physical NUMA nodes.

3. The method of claim 2 wherein the virtual NUMA node is pinned to the single physical NUMA node, such that the virtual NUMA node cannot be migrated to any other physical NUMA node throughout a runtime of the VM.

4. The method of claim 2 wherein the mappings are based on a user-provided configuration.

5. The method of claim 1 wherein the mappings include, for each virtual NUMA node in the plurality of virtual NUMA nodes, a mapping between the virtual NUMA node and a set of physical NUMA nodes in the plurality of NUMA nodes that the virtual NUMA node is affinitized to.

6. The method of claim 5 wherein the latency value for a virtual NUMA node pair (i, j) in the virtual NUMA locality table is an average of latency values for all physical NUMA node pairs (m, n) in the physical NUMA locality table, wherein m is a physical node in the set of physical NUMA nodes that virtual NUMA node i is affinitized to, and wherein n is a physical node in the set of physical NUMA nodes that virtual NUMA node j is affinitized to.

7. The method of claim 1 wherein the mappings include, for each virtual NUMA node in the plurality of virtual NUMA nodes, a mapping between the virtual NUMA node and a single physical NUMA node in the plurality of physical NUMA nodes,

wherein the virtual NUMA node is initially placed on the single physical NUMA node, and

wherein the virtual NUMA node is allowed to temporarily migrate to other physical NUMA nodes during runtime of the VM.

8. A non-transitory computer readable storage medium having stored thereon program code executable by a hypervisor of a non-uniform memory access (NUMA) computer system, the program code embodying a method comprising:

assigning a virtual NUMA topology to a virtual machine (VM), the virtual NUMA topology including a plurality of virtual NUMA nodes;

determining a virtual NUMA locality table for the VM in accordance with a physical NUMA locality table of the NUMA computer system, wherein the physical NUMA locality table comprises latency values for a plurality of physical NUMA nodes of the NUMA computer system, and wherein latency values in the virtual NUMA locality table are based on:

the latency values in the physical NUMA locality table; and

mappings between the plurality of virtual NUMA nodes and the plurality of physical NUMA nodes; and

exposing the virtual NUMA locality table to a guest operating system (OS) of the VM.

9. The non-transitory computer readable storage medium of claim 8 wherein the mappings include, for each virtual NUMA node in the plurality of virtual NUMA nodes, a mapping between the virtual NUMA node and a single physical NUMA node in the plurality of physical NUMA nodes.

10. The non-transitory computer readable storage medium of claim 9 wherein the virtual NUMA node is pinned to the single physical NUMA node, such that the virtual NUMA node cannot be migrated to any other physical NUMA node throughout runtime of the VM.

11. The non-transitory computer readable storage medium of claim 9 wherein the mappings are based on a user-provided configuration.

12. The non-transitory computer readable storage medium of claim 8 wherein the mappings include, for each virtual NUMA node in the plurality of virtual NUMA nodes, a mapping between the virtual NUMA node and a set of physical NUMA nodes in the plurality of NUMA nodes that the virtual NUMA node is affinitized to.

13. The non-transitory computer readable storage medium of claim 12 wherein the latency value for a virtual NUMA node pair (i, j) in the virtual NUMA locality table is an average of latency values for all physical NUMA node pairs (m, n) in the physical NUMA locality table, wherein m is a physical node in the set of physical NUMA nodes that virtual NUMA node i is affinitized to, and wherein n is a physical node in the set of physical NUMA nodes that virtual NUMA node j is affinitized to.

14. The non-transitory computer readable storage medium of claim 8 wherein the mappings include, for each virtual NUMA node in the plurality of virtual NUMA nodes, a mapping between the virtual NUMA node and a single physical NUMA node in the plurality of physical NUMA nodes,

wherein the virtual NUMA node is initially placed on the single physical NUMA node, and

wherein the virtual NUMA node is allowed to temporarily migrate to other physical NUMA nodes during runtime of the VM.

15. A non-uniform memory access (NUMA) computer system comprising:

a hypervisor;

a plurality of physical NUMA nodes; and

a non-transitory computer readable medium having stored thereon program code that causes the hypervisor to:

assign a virtual NUMA topology to a virtual machine (VM), the virtual NUMA topology including a plurality of virtual NUMA nodes;

determine a virtual NUMA locality table for the VM in accordance with a physical NUMA locality table of the NUMA computer system, wherein the physical NUMA locality table comprises latency values for the plurality of physical NUMA nodes, and wherein latency values in the virtual NUMA locality table are based on:

the latency values in the physical NUMA locality table; and

mappings between the plurality of virtual NUMA nodes and the plurality of physical NUMA nodes; and

expose the virtual NUMA locality table to a guest operating system (OS) of the VM.

16. The NUMA computer system of claim 15 wherein the mappings include, for each virtual NUMA node in the plurality of virtual NUMA nodes, a mapping between the virtual NUMA node and a single physical NUMA node in the plurality of physical NUMA nodes.

17. The NUMA computer system of claim 16 wherein the virtual NUMA node is pinned to the single physical NUMA node, such that the virtual NUMA node cannot be migrated to any other physical NUMA node throughout runtime of the VM.

18. The NUMA computer system of claim 16 wherein the mappings are based on a user-provided configuration.

19. The NUMA computer system of claim 15 wherein the mappings include, for each virtual NUMA node in the plurality of virtual NUMA nodes, a mapping between the virtual NUMA node and a set of physical NUMA nodes in the plurality of NUMA nodes that the virtual NUMA node is affinitized to.

20. The NUMA computer system of claim 19 wherein the latency value for a virtual NUMA node pair (i, j) in the virtual NUMA locality table is an average of latency values for all physical NUMA node pairs (m, n) in the physical NUMA locality table, wherein m is a physical node in the set of physical NUMA nodes that virtual NUMA node i is affinitized to, and wherein n is a physical node in the set of physical NUMA nodes that virtual NUMA node j is affinitized to.

21. The NUMA computer system of claim 15 wherein the mappings include, for each virtual NUMA node in the plurality of virtual NUMA nodes, a mapping between the virtual NUMA node and a single physical NUMA node in the plurality of physical NUMA nodes,

wherein the virtual NUMA node is initially placed on the single physical NUMA node, and

wherein the virtual NUMA node is allowed to temporarily migrate to other physical NUMA nodes during runtime of the VM.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2022
From: MERRIFIELD, TIMOTHY; VANDROVEC, PETR; LU, XUNJIA; WHITE, JAMES
To: VMWARE INC.
Reel/Frame 058763/0585 →
Continuity (1)
Related Publication 20230012606A1 · Jan 19, 2023