IP Library › Granted Patent US 9,304,886
Granted Patent B2
US 9,304,886 · App. 13/772,673 · Granted Apr 5, 2016

Associating energy consumption with a virtual machine

Inventors: Malcolm S. Allen-Ware (Austin, TX); Bishop Brock (Austin, TX); Tilman Gloekler (Gaertringen, DE); Charles R. Lefurgy (Austin, TX); Karthick Rajamani (Austin, TX); Gregory S. Still (Raleigh, NC)
Assignee: International Business Machines Corporation
G06F11/3062G06F1/3206G06F9/45558G06F11/3013G06F11/3051G06F11/3476G06F1/26G06F2009/45591G06F2201/815G06F2201/86
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 9,304,886
App. No.
13/772,673
Granted
Apr 5, 2016
Kind
B2
Abstract

Associating processor and processor core energy consumption with a task such as a virtual machine is disclosed. Various events cause a trace record to be written to a trace buffer for a processor. An identifier associated with a task using a processor core of the processor is read. In addition, one or more values associated with an energy consumption of the processor core are read. In response to the event, the one or more values associated with the energy consumption of the processor core and the identifier are written to the trace buffer memory.

Claims (20)

1. A method comprising:

causing each of a plurality of processor cores to record, into a register associated with the processor core, a task identifier associated with a task to be executed on the processor core, wherein a processor comprises the plurality of processor cores;

in response to detection of a first event, causing those of the plurality of processor cores that correspond to the first event or that are executing a task corresponding to the first event to write energy consumption data of the processor core in association with the task identifier in the register associated with the processor core to a first memory shared by the plurality of processor cores,

wherein each of the plurality of processor cores has energy consumption data that indicates energy consumption by components associated with the processor core, and wherein the processor further comprises the first memory;

periodically, reading the energy consumption data and associated task identifier from the first memory;

aggregating the energy consumption data by task identifier;

for each task identifier read from the first memory, writing the aggregated energy consumption data to a second memory, wherein the second memory is external to the processor;

detecting a signal from a hypervisor at a power state change register; and

causing each of the plurality of processor cores to write additional energy consumption data of the processor core in association with the task identifier in the register associated with the processor core to the first memory shared by the plurality of processor cores.

2. The method of claim 1 , wherein each task identifier identifies a virtual machine, wherein the second memory is accessible by the hypervisor.

3. The method of claim 1 , wherein the first event is selected from a group consisting of: one or more of an expiration of a timer, a change in internal or external voltage for at least one of the plurality of processor cores, a change in frequency for at least one of the plurality of processor cores, a change in a voltage regulator module, a change in a power state for at least one of the plurality of processor cores, or a change in the task identifier indicated in the register associated with at least one of the plurality of processor cores.

4. The method of claim 1 , further comprising:

determining an estimated energy consumption value for one of the plurality processor cores based at least in part on the aggregated energy consumption data from the second memory;

determining a scaling factor based on the estimated energy consumption value and an actual energy consumption value for the processor core; and

scaling the energy consumption data for a task executing or executed on the processor core based, at least in part, on the scaling factor.

5. The method of claim 1 , wherein the energy consumption data for one of the plurality of processor cores comprises energy consumption data for different voltage domains of the processor core.

6. The method of claim 1 , wherein the energy consumption data aggregated by task identifier indicates energy consumption by each of a plurality of virtual machines.

7. The method of claim 1 , wherein a second event is selected from a group consisting of: at least one of load and store operations, instruction dispatch, fixed point operations, floating point operations, cache reads, and cache writes.

8. The method of claim 7 , wherein detection of the second event comprises:

detecting, by an activity sense point, the second event, wherein each of the plurality of processor cores comprises one or more activity sense points.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2013
From: ALLEN-WARE, MALCOLM S.; BROCK, BISHOP; GLOEKLER, TILMAN; LEFURGY, CHARLES R.; RAJAMANI, KARTHICK; STILL, GREGORY S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029849/0135 →
Continuity (2)
Continuation 13686415 · Nov 27, 2012
Related Publication 20140149779A1 · May 29, 2014