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

US11579918B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11579918-B2
Application numberUS-202117476090-A
CountryUS
Kind codeB2
Filing dateSep 15, 2021
Priority dateDec 20, 2016
Publication dateFeb 14, 2023
Grant dateFeb 14, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: emulating, by a hypervisor of a host system, a set of performance control registers for a virtual central processing unit (CPU) of a virtual machine (VM) running on the host system, the set of performance control registers identifying one or more available performance states for the virtual CPU; exposing, by the hypervisor, the emulated set of performance control registers to a guest operating system (OS) of the VM; trapping, by the hypervisor, a write to a first performance control register in the emulated set by the guest OS; determining, by the hypervisor based on the trapping, a performance state that the guest OS has assigned to the virtual CPU; and modifying, by the hypervisor, scheduling of the virtual CPU on a physical CPU topology of the host system in accordance with the performance state assigned by the guest OS. 2. The method of claim 1 wherein the set of performance control registers conform to the Advanced Configuration and Power Interface (ACPI) Collaborative Processor Performance Control (CPPC) standard. 3. The method of claim 1 wherein the emulating comprises: defining a portion of a guest virtual memory of the VM as representing the set of performance control registers. 4. The method of claim 1 wherein the exposing comprises: making the emulated set of performance control registers available to the guest OS via a shared memory communication channel. 5. The method of claim 1 wherein the one or more available performance states are defined in an ACPI data structure that is stored in one or more firmware configuration files of the VM. 6. The method of claim 1 wherein modifying scheduling of the virtual CPU comprises: increasing or decreasing a physical CPU time slice allocated to the virtual CPU. 7. The method of claim 1 wherein modifying scheduling of the virtual CPU comprises: changing placement of the virtual CPU on the physical CPU topology. 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: emulating a set of performance control registers for a virtual central processing unit (CPU) of a virtual machine (VM) running on the host system, the set of performance control registers identifying one or more available performance states for the virtual CPU; exposing the emulated set of performance control registers to a guest operating system (OS) of the VM; trapping a write to a first performance control register in the emulated set by the guest OS; determining, based on the trapping, a performance state that the guest OS has assigned to the virtual CPU; and modifying scheduling of the virtual CPU on a physical CPU topology of the host system in accordance with the performance state assigned by the guest OS. 9. The non-transitory computer readable storage medium of claim 8 wherein the set of performance control registers conform to the Advanced Configuration and Power Interface (ACPI) Collaborative Processor Performance Control (CPPC) standard. 10. The non-transitory computer readable storage medium of claim 8 wherein the emulating comprises: defining a portion of a guest virtual memory of the VM as representing the set of performance control registers. 11. The non-transitory computer readable storage medium of claim 8 wherein the exposing comprises: making the emulated set of performance control registers available to the guest OS via a shared memory communication channel. 12. The non-transitory computer readable storage medium of claim 8 wherein the one or more available performance states are defined in an ACPI data structure that is stored in one or more firmware configuration files of the VM. 13. The non-transitory computer readable storage medium of claim 8 wherein modifying scheduling of the virtual CPU comprises: increasing or decreasing a physical CPU time slice allocated to the virtual CPU. 14. The non-transitory computer readable storage medium of claim 8 wherein modifying scheduling of the virtual CPU comprises: changing placement of the virtual CPU on the physical CPU topology. 15. A host system comprising: a physical central processing unit (CPU) topology; 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: emulate a set of performance control registers for a virtual CPU of the VM, the set of performance control registers identifying one or more available performance states for the virtual CPU; expose the emulated set of performance control registers to the guest OS; trap a write to a first performance control register in the emulated set by the guest OS; determine, based on the trapping, a performance state that the guest OS has assigned to the virtual CPU; and modify scheduling of the virtual CPU on the physical CPU topology in accordance with the performance state assigned by the guest OS. 16. The host system of claim 15 wherein the set of performance control registers conform to the Advanced Configuration and Power Interface (ACPI) Collaborative Processor Performance Control (CPPC) standard. 17. The host system of claim 15 wherein the program code that causes the hypervisor to emulate the set of performance control registers comprises program code that causes the hypervisor to: define a portion of a guest virtual memory of the VM as representing the set of performance control registers. 18. The host system of claim 15 wherein the program code that causes the hypervisor to expose the emulated set of performance control registers comprises program code that causes the hypervisor to: make the emulated set of performance control registers available to the guest OS via a shared memory communication channel. 19. The host system of claim 15 wherein the one or more available performance states are defined in an ACPI data structure that is stored in one or more firmware configuration files of the VM. 20. The host system of claim 15 wherein the program code that causes the hypervisor to modify scheduling of the virtual CPU comprises program code that causes the hypervisor to: increase or decrease a physical CPU time slice allocated to the virtual CPU. 21. The host system of claim 15 wherein the program code that causes the hypervisor to modify scheduling of the virtual CPU comprises program code that causes the hypervisor to: change placement of the virtual CPU on the physical CPU topology.

Assignees

Inventors

Classifications

  • I/O management, e.g. providing access to device drivers or storage · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Energy efficient computing, e.g. low power processors, power management or thermal management · CPC title

  • by switching off individual functional units in the computer system · CPC title

  • Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11579918B2 cover?
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…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 14 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).