Technique for protecting guest processes using a layered virtualization architecture
US-10447728-B1 · Oct 15, 2019 · US
US11579918B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11579918-B2 |
| Application number | US-202117476090-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 15, 2021 |
| Priority date | Dec 20, 2016 |
| Publication date | Feb 14, 2023 |
| Grant date | Feb 14, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.