IP Library Granted Patent US 11,150,933
Granted Patent B2
US 11,150,933 · App. 16/355,497 · Granted Oct 19, 2021

Optimizing host CPU usage based on virtual machine guest OS power and performance management

Inventors: Andrei Warkentin (North Reading, MA); Cyprien Laplace (Cambridge, MA); Regis Duchesne (Monts-de-Corsier, CH); Ye Li (Newton, MA); Alexander Fainkichen (Southborough, MA)
Assignee: VMware, Inc.
G06F9/45558G06F1/3234G06F1/3287G06F9/5077G06F11/301G06F11/3409G06F11/3423G06F1/329G06F9/45533G06F9/4856G06F11/3055G06F11/3466G06F2009/4557G06F2201/815
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,150,933
App. No.
16/355,497
Granted
Oct 19, 2021
Kind
B2
Abstract

Techniques for optimizing CPU usage in a host system based on VM guest OS power and performance management are provided. In one embodiment, a hypervisor of the host system can capture information from a VM guest OS that pertains to a target power or performance state set by the guest OS for a vCPU of the VM. The hypervisor can then perform, based on the captured information, one or more actions that align usage of host CPU resources by the vCPU with the target power or performance state.

Claims (45)

1. A method comprising:

making visible, by a hypervisor of a host system to a guest operating system (OS) of a virtual machine (VM) running on the hypervisor, a virtual CPU topology that includes a cluster of one or more higher performance virtual CPUs (vCPUs) and a cluster of one or more lower performance virtual CPUs (vCPUs),

wherein the making visible comprises reporting, by the hypervisor to the guest OS, a first performance class for the one or more higher performance vCPUs and a second performance class different from the first performance class for the one or more lower performance vCPUs, and

wherein in response to the virtual CPU topology being made visible to the guest OS, the guest OS executes one or more scheduling optimizations for optimizing scheduling of the one or more higher performance vCPUs and the one or more lower performance vCPUs.

2. The method of claim 1 wherein the one or more scheduling optimizations including switching a VM workload from running on the cluster of one or more higher performance vCPUs to running on the cluster of one or more lower performance vCPUs.

3. The method of claim 1 wherein the cluster of one or more higher performance vCPUs map to a cluster of one or more higher performance physical CPUs in the host system, and wherein the cluster of one or more lower performance vCPUs map to a cluster of one or more lower performance physical CPUs in the host system.

4. The method of claim 1 wherein the cluster of one or more higher performance vCPUs and the cluster of one or more lower performance vCPUs map to a single cluster of homogenous performance physical CPUs in the host system.

5. The method of claim 1 further comprising:

capturing, by the hypervisor, information from the guest OS pertaining to the one or more scheduling optimizations; and

performing, by the hypervisor, one or more actions based on the captured information that modifies usage of host CPU resources in accordance with the one or more scheduling optimizations.

6. The method of claim 1 wherein the hypervisor makes the virtual CPU topology visible to the guest OS by including one or more device tree definitions identifying the virtual CPU topology in a firmware configuration file for the VM.

7. The method of claim 1 wherein the cluster of one or more lower performance vCPUs is assigned:

a first CPU time slice value that applies to each lower performance vCPU when the cluster of one or more lower performance vCPUs maps to a cluster of one or more lower performance physical CPUs in the host system; and

a second CPU time slice value that applies to each lower performance vCPU when the cluster of one or more higher performance vCPUs and the cluster of one or more lower performance vCPUs map to a single cluster of homogenous performance physical CPUs in the host system.

8. A non-transitory computer readable storage medium having stored thereon program code executable by a hypervisor of a host system, the program code embodying a method comprising:

making visible to a guest operating system (OS) of a virtual machine (VM) running on the hypervisor a virtual CPU topology that includes a cluster of one or more higher performance virtual CPUs (vCPUs) and a cluster of one or more lower performance virtual CPUs (vCPUs),

wherein the making visible comprises reporting, by the hypervisor to the guest OS, a first performance class for the one or more higher performance vCPUs and a second performance class different from the first performance class for the one or more lower performance vCPUs, and

wherein in response to the virtual CPU topology being made visible to the guest OS, the guest OS executes one or more scheduling optimizations for optimizing scheduling of the one or more higher performance vCPUs and the one or more lower performance vCPUs.

9. The non-transitory computer readable storage medium of claim 8 wherein the one or more scheduling optimizations including switching a VM workload from running on the cluster of one or more higher performance vCPUs to running on the cluster of one or more lower performance vCPUs.

10. The non-transitory computer readable storage medium of claim 8 wherein the cluster of one or more higher performance vCPUs map to a cluster of one or more higher performance physical CPUs in the host system, and wherein the cluster of one or more lower performance vCPUs map to a cluster of one or more lower performance physical CPUs in the host system.

11. The non-transitory computer readable storage medium of claim 8 wherein the cluster of one or more higher performance vCPUs and the cluster of one or more lower performance vCPUs map to a single cluster of homogenous performance physical CPUs in the host system.

12. The non-transitory computer readable storage medium of claim 8 wherein the method further comprises:

capturing information from the guest OS pertaining to the one or more scheduling optimizations; and

performing one or more actions based on the captured information that modifies usage of host CPU resources in accordance with the one or more scheduling optimizations.

13. The non-transitory computer readable storage medium of claim 8 wherein the hypervisor makes the virtual CPU topology visible to the guest OS by including one or more device tree definitions identifying the virtual CPU topology in a firmware configuration file for the VM.

14. The non-transitory computer readable storage medium of claim 8 wherein the cluster of one or more lower performance vCPUs is assigned:

a first CPU time slice value that applies to each lower performance vCPU when the cluster of one or more lower performance vCPUs maps to a cluster of one or more lower performance physical CPUs in the host system; and

a second CPU time slice value that applies to each lower performance vCPU when the cluster of one or more higher performance vCPUs and the cluster of one or more lower performance vCPUs map to a single cluster of homogenous performance physical CPUs in the host system.

15. A host system comprising:

a plurality of host central processing units (CPUs);

a hypervisor;

a virtual machine (VM) running on top of the hypervisor, the VM including a guest operating system (OS); and

a non-transitory computer readable medium having stored thereon program code that, when executed by the hypervisor, causes the hypervisor to make visible to the guest OS of the VM a virtual CPU topology that includes a cluster of one or more higher performance virtual CPUs (vCPUs) and a cluster of one or more lower performance virtual CPUs (vCPUs),

wherein the making visible comprises reporting, by the hypervisor to the guest OS, a first performance class for the one or more higher performance vCPUs and a second performance class different from the first performance class for the one or more lower performance vCPUs, and

wherein in response to the virtual CPU topology being made visible to the guest OS, the guest OS executes one or more scheduling optimizations for optimizing scheduling of the one or more higher performance vCPUs and the one or more lower performance vCPUs.

16. The host system of claim 15 wherein the one or more scheduling optimizations including switching a VM workload from running on the cluster of one or more higher performance vCPUs to running on the cluster of one or more lower performance vCPUs.

17. The host system of claim 15 wherein the cluster of one or more higher performance vCPUs map to a cluster of one or more higher performance physical CPUs in the host system, and wherein the cluster of one or more lower performance vCPUs map to a cluster of one or more lower performance physical CPUs in the host system.

18. The host system of claim 15 wherein the cluster of one or more higher performance vCPUs and the cluster of one or more lower performance vCPUs map to a single cluster of homogenous performance physical CPUs in the host system.

19. The host system of claim 15 wherein the program code further causes the hypervisor to:

capture information from the guest OS pertaining to the one or more scheduling optimizations; and

perform one or more actions based on the captured information that modifies usage of host CPU resources in accordance with the one or more scheduling optimizations.

20. The host system of claim 15 wherein the hypervisor makes the virtual CPU topology visible to the guest OS by including one or more device tree definitions identifying the virtual CPU topology in a firmware configuration file for the VM.

21. The host system of claim 15 wherein the cluster of one or more lower performance vCPUs is assigned:

a first CPU time slice value that applies to each lower performance vCPU when the cluster of one or more lower performance vCPUs maps to a cluster of one or more lower performance physical CPUs in the host system; and

a second CPU time slice value that applies to each lower performance vCPU when the cluster of one or more higher performance vCPUs and the cluster of one or more lower performance vCPUs map to a single cluster of homogenous performance physical CPUs in the host system.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2019
From: WARKENTIN, ANDREI; LAPLACE, CYPRIEN; DUCHESNE, REGIS; LI, YE; FAINKICHEN, ALEXANDER
To: VMWARE, INC.
Reel/Frame 048616/0755 →