Mechanism for resource utilization metering in a computer system

US10223162B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10223162-B2
Application numberUS-201615097859-A
CountryUS
Kind codeB2
Filing dateApr 13, 2016
Priority dateJul 27, 2015
Publication dateMar 5, 2019
Grant dateMar 5, 2019

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.

Systems, apparatuses, and methods for tracking system resource utilization of guest virtual machines (VMs). Counters may be maintained to track resource utilization of different system resources by different guest VMs executing on the system. When a guest VM initiates execution, stored values may be loaded into the resource utilization counters. While the guest VM executes, the counters may track the resource utilization of the guest VM. When the guest VM terminates execution, the counter values may be written to a virtual machine control block (VMCB) corresponding to the guest VM. Scaling factors may be applied to the counter values to normalize the values prior to writing the values to the VMCB. A cloud computing environment may utilize the tracking mechanisms to guarantee resource utilization levels in accordance with users' service level agreements.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: one or more execution cores; and one or more counters; wherein the processor is configured to: maintain a first counter to track utilization of a first resource while a first guest virtual machine (VM) is executing on the processor; normalize a current value of the first counter, wherein normalizing the current value comprises modifying the current value to reflect an operating frequency of a physical processor executing the guest virtual machine; store the current value of the first counter as normalized to a first memory location that corresponds to a first virtual machine control block of the first guest VM when the first guest VM terminates execution; initialize the first counter to the current value stored in the first memory location, in response to re-scheduling the first guest VM for execution; and maintain a virtual machine control block for each guest virtual machine, wherein the virtual machine control block for a given virtual machine includes one or more performance counter values including the first counter value. 2. The processor as recited in claim 1 , wherein: the processor is further configured to track utilization of a plurality of resources while the first guest VM is executing on the processor, and the plurality of resources comprise at least two or more of cache occupancy, input/output (I/O) fabric bandwidth utilization, memory fabric bandwidth utilization, and core execution time. 3. The processor as recited in claim 1 , wherein: the processor further comprises a first cache; and the first counter is configured to track a number of cache lines requested into the first cache while the first guest VM is executing. 4. The processor as recited in claim 3 , wherein: the first cache comprises a tag memory and a data memory; and each tag in the tag memory comprises a guest VM identification (ID) field. 5. The processor as recited in claim 1 , wherein: the first guest VM has a first service level agreement (SLA) with a guarantee of a first resource utilization level; and the processor is configured to determine if a value of the first counter meets the first resource utilization level guaranteed by the first SLA. 6. The processor as recited in claim 5 , wherein the processor is further configured to restrict resource utilization by a second guest VM responsive to determining the value of the first counter does not meet the first resource utilization level guaranteed by the first SLA. 7. A method comprising: maintaining a first counter to track utilization of a first resource while a first guest virtual machine (VM) is executing on the processor; normalize a current value of the first counter, wherein normalizing the current value comprises modifying the current value to reflect an operating frequency of a physical processor executing the guest virtual machine; storing the current value of the first counter as normalized to a first memory location that corresponds to a first virtual machine control block of the first guest VM when the first guest VM terminates execution; initializing the first counter to the current value stored in the first memory location, in response to re-scheduling the first guest VM for execution; and maintaining a virtual machine control block for each guest virtual machine, wherein the virtual machine control block for a given virtual machine includes one or more performance counter values including the first counter value. 8. The method as recited in claim 7 , further comprising: tracking utilization of a plurality of resources while the first guest VM is executing on the processor; wherein the plurality of resources comprise at least two or more of cache occupancy, input/output (I/O) fabric bandwidth utilization, memory fabric bandwidth utilization on a per-VM basis, and core execution time. 9. The method as recited in claim 7 , wherein the processor further comprises a first cache, and the method further comprises tracking a number of cache lines requested into the first cache while the first guest VM is executing. 10. The method as recited in claim 9 , wherein: the first cache comprises a tag memory and a data memory; and each tag in the tag memory comprises a first guest VM identification (ID) field. 11. The method as recited in claim 7 , wherein: the first guest VM has a first service level agreement (SLA) with a guarantee of a first resource utilization level; and the method further comprises determining if a value of the first counter meets the first resource utilization level guaranteed by the first SLA. 12. The method as recited in claim 11 , further comprising restricting resource utilization by a second guest VM responsive to determining the value of the first counter does not meet the first resource utilization level guaranteed by the first SLA. 13. A system comprising: a memory; and a processor comprising: one or more execution cores; and one or more counters; wherein the processor is configured to: maintain a first counter to track utilization of a first resource while a first guest virtual machine (VM) is executing on the processor; normalize a current value of the first counter, wherein normalizing the current value comprises modifying the current value to reflect an operating frequency of a physical processor executing the guest virtual machine; store the current value of the first counter as normalized to a first memory location that corresponds to a first virtual machine control block of the first guest VM when the first guest VM terminates execution; initialize the first counter to the current value stored in the first memory location, in response to re-scheduling the first guest VM for execution; and maintain a virtual machine control block for each guest virtual machine, wherein the virtual machine control block for a given virtual machine includes one or more performance counter values including the first counter value. 14. The system as recited in claim 13 , wherein: the processor is further configured to track utilization of a plurality of resources while the first guest VM is executing on the processor; and the plurality of resources comprise at least two or more of cache occupancy, input/output (I/O) fabric bandwidth utilization, memory fabric bandwidth utilization on a per-VM basis, and core execution time. 15. The system as recited in claim 13 , wherein: the processor further comprises a first cache; and the first counter is configured to track a number of cache lines requested into the first cache while the first guest VM is executing. 16. The system as recited in claim 15 , wherein: the first cache comprises a tag memory and a data memory; and each tag in the tag memory comprises a guest VM identification (ID) field. 17. The system as recited in claim 13 , wherein: the first guest VM has a first service level agreement (SLA) with a guarantee of a first resource utilization level; and the processor is configured to determine if a value of the first counter meets the first resource utilization level guaranteed by the first SLA.

Assignees

Inventors

Classifications

  • with dedicated cache, e.g. instruction or stack · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Memory management, e.g. access or allocation · CPC title

  • with multilevel cache hierarchies · CPC title

  • G06F9/5016Primary

    the resource being the memory · 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 US10223162B2 cover?
Systems, apparatuses, and methods for tracking system resource utilization of guest virtual machines (VMs). Counters may be maintained to track resource utilization of different system resources by different guest VMs executing on the system. When a guest VM initiates execution, stored values may be loaded into the resource utilization counters. While the guest VM executes, the counters may tra…
Who is the assignee on this patent?
Advanced Micro Devices Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0811. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 05 2019 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).