IP Library › Granted Patent US 10,282,226
Granted Patent B2
US 10,282,226 · App. 15/385,568 · Granted May 7, 2019

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/3423
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 10,282,226
App. No.
15/385,568
Granted
May 7, 2019
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 (46)

1. A method for optimizing central processing unit (CPU) usage in a host system based on virtual machine (VM) guest operating system (OS) power or performance management, the method comprising:

empowering, by a hypervisor of the host system, a guest OS of a VM running on the hypervisor to execute a power or performance management mechanism that is supported by the guest OS, wherein the empowering comprises making visible to the guest OS a virtual CPU topology that includes a cluster of higher performance virtual CPUs (vCPUs) and a cluster of lower performance vCPUs, and wherein the hypervisor makes the virtual CPU topology visible to the guest OS by passing, to the guest OS, a processor identifier for each of the higher performance vCPUs and lower performance vCPUs that indicates the vCPU's performance class;

capturing, by the hypervisor, information from the guest OS pertaining to a target power or performance state set by the guest OS with respect to at least one vCPU of the VM; and

performing, by the hypervisor, one or more actions based on the information that align usage of host CPU resources by the vCPU with the target power or performance state.

2. The method of claim 1 wherein the capturing comprises:

trapping, by the hypervisor, a CPU power off instruction issued by the guest OS with respect to the vCPU.

3. The method of claim 2 wherein the one or more actions include tearing down context information maintained by the hypervisor for the vCPU.

4. The method of claim 1 wherein the empowering further comprises:

emulating, by the hypervisor, one or more vCPU performance control registers as defined in the Advanced Configuration and Power Interface (ACPI) Collaborative Processor Performance Control (CPPC) standard; and

exposing, by the hypervisor, the emulated vCPU performance control registers to the guest OS.

5. The method of claim 1 wherein the one or more actions include:

modifying, by the hypervisor, a host CPU time slice allocated to the vCPU, or

scheduling, by the hypervisor, work for the vCPU on a different host CPU.

6. The method of claim 1 wherein each processor identifier is passed to the guest OS via a predefined vCPU register.

7. 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 for optimizing central processing unit (CPU) usage in the host system based on virtual machine (VM) guest operating system (OS) power or performance management, the method comprising:

empowering a guest OS of a VM running on the hypervisor to execute a power or performance management mechanism that is supported by the guest OS, wherein the empowering comprises making visible to the guest OS a virtual CPU topology that includes a cluster of higher performance virtual CPUs (vCPUs) and a cluster of lower performance vCPUs, and wherein the hypervisor makes the virtual CPU topology visible to the guest OS by passing, to the guest OS, a processor identifier for each of the higher performance vCPUs and lower performance vCPUs that indicates the vCPU's performance class;

capturing information from the guest OS pertaining to a target power or performance state set by the guest OS with respect to at least one vCPU of the VM; and

performing one or more actions based on the information that align usage of host CPU resources by the vCPU with the target power or performance state.

8. The non-transitory computer readable storage medium of claim 7 wherein the capturing comprises:

trapping a CPU power off instruction issued by the guest OS with respect to the vCPU.

9. The non-transitory computer readable storage medium of claim 8 wherein the one or more actions include tearing down context information maintained by the hypervisor for the vCPU.

10. The non-transitory computer readable storage medium of claim 7 wherein the empowering further comprises:

emulating one or more vCPU performance control registers as defined in the Advanced Configuration and Power Interface (ACPI) Collaborative Processor Performance Control (CPPC) standard; and

exposing the emulated vCPU performance control registers to the guest OS.

11. The non-transitory computer readable storage medium of claim 7 wherein the one or more actions include:

modifying, a host CPU time slice allocated to the vCPU, or

scheduling work for the vCPU on a different host CPU.

12. The non-transitory computer readable storage medium of claim 7 wherein each processor identifier is passed to the guest OS via a predefined vCPU register.

13. 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:

empower the guest OS to execute a power or performance management mechanism that is supported by the guest OS, wherein the empowering comprises making visible to the guest OS a virtual CPU topology that includes a cluster of higher performance virtual CPUs (vCPUs) and a cluster of lower performance vCPUs, and wherein the hypervisor makes the virtual CPU topology visible to the guest OS by passing, to the guest OS, a processor identifier for each of the higher performance vCPUs and lower performance vCPUs that indicates the vCPU's performance class;

capture information from the guest OS pertaining to a target power or performance state set by the guest OS with respect to at least one vCPU of the VM; and

perform, based on the information, one or more actions that align usage of the host CPUs by the vCPU with the target power or performance state.

14. The host system of claim 13 wherein the capturing comprises:

trapping a CPU power off instruction issued by the guest OS with respect to the vCPU.

15. The host system of claim 14 wherein the one or more actions include tearing down context information maintained by the hypervisor for the vCPU.

16. The host system of claim 13 wherein the empowering further comprises:

emulating one or more vCPU performance control registers as defined in the Advanced Configuration and Power Interface (ACPI) Collaborative Processor Performance Control (CPPC) standard; and

exposing the emulated vCPU performance control registers to the guest OS.

17. The host system of claim 13 wherein the one or more actions include:

modifying, a host CPU time slice allocated to the vCPU, or

scheduling work for the vCPU on a different host CPU.

18. The host system of claim 13 wherein each processor identifier is passed to the guest OS via a predefined vCPU register.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2017
From: WARKENTIN, ANDREI; LAPLACE, CYPRIEN; DUCHESNE, REGIS; LI, YE; FAINKICHEN, ALEXANDER
To: VMWARE, INC.
Reel/Frame 041162/0810 →
Continuity (1)
Related Publication 20180173553A1 · Jun 21, 2018
Cited By (1)
US 12,423,130