diff mbox

[3/3] show energy consumption info in perf tool

Message ID 1306398855.2207.156.camel@rui (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Zhang, Rui May 26, 2011, 8:34 a.m. UTC
Introduce four new perf software events
PERF_COUNT_SW_PKG_ENERGY
PERF_COUNT_SW_CORE_ENERGY
PERF_COUNT_SW_UNCORE_ENERGY
and
PERF_COUNT_SW_DRAM_ENERGY

To use it, users can run
perf stat -e pkg-energy foo
to get the package energy consumption when running foo.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
---
 tools/perf/design.txt          |    4 ++++
 tools/perf/util/parse-events.c |    8 ++++++++
 2 files changed, 12 insertions(+)

Comments

Ingo Molnar May 26, 2011, 10:49 a.m. UTC | #1
* Zhang Rui <rui.zhang@intel.com> wrote:

> Introduce four new perf software events
>
> PERF_COUNT_SW_PKG_ENERGY
> PERF_COUNT_SW_CORE_ENERGY
> PERF_COUNT_SW_UNCORE_ENERGY
> and
> PERF_COUNT_SW_DRAM_ENERGY
> 
> To use it, users can run
> perf stat -e pkg-energy foo
> to get the package energy consumption when running foo.

That's very interesting - being able to profile workloads by 
power/energy use looks like a *very* powerful feature.

Are you allowed to show us some sample output of the data? What's the 
granularity of this info? Say what is the output of:

  perf stat -e pkg-energy -e core-energy -e uncore-energy -e dram-energy -a sleep 10

?

Also, have you tried something like:

	perf record -a -e pkg-energy sleep 60

	perf report

To see where most of the energy is used within a 1 minute interval?

Also, conceptually these are really hardware events, right?

Thanks,

	Ingo
diff mbox

Patch

Index: linux-2.6/tools/perf/design.txt
===================================================================
--- linux-2.6.orig/tools/perf/design.txt
+++ linux-2.6/tools/perf/design.txt
@@ -139,6 +139,10 @@  enum sw_event_ids {
 	PERF_COUNT_SW_PAGE_FAULTS_MAJ	= 6,
 	PERF_COUNT_SW_ALIGNMENT_FAULTS	= 7,
 	PERF_COUNT_SW_EMULATION_FAULTS	= 8,
+	PERF_COUNT_SW_PKG_ENERGY	= 9,
+	PERF_COUNT_SW_CORE_ENERGY	= 10,
+	PERF_COUNT_SW_UNCORE_ENERGY	= 11,
+	PERF_COUNT_SW_DRAM_ENERGY	= 12,
 };
 
 Counters of the type PERF_TYPE_TRACEPOINT are available when the ftrace event
Index: linux-2.6/tools/perf/util/parse-events.c
===================================================================
--- linux-2.6.orig/tools/perf/util/parse-events.c
+++ linux-2.6/tools/perf/util/parse-events.c
@@ -50,6 +50,10 @@  static struct event_symbol event_symbols
   { CSW(CPU_MIGRATIONS),		"cpu-migrations",		"migrations"		},
   { CSW(ALIGNMENT_FAULTS),		"alignment-faults",		""			},
   { CSW(EMULATION_FAULTS),		"emulation-faults",		""			},
+  { CSW(PKG_ENERGY),			"pkg-energy",			""			},
+  { CSW(CORE_ENERGY),			"core-energy",			""			},
+  { CSW(UNCORE_ENERGY),			"uncore-energy",		""			},
+  { CSW(DRAM_ENERGY),			"dram-energy",			""			},
 };
 
 #define __PERF_EVENT_FIELD(config, name) \
@@ -82,6 +86,10 @@  static const char *sw_event_names[PERF_C
 	"major-faults",
 	"alignment-faults",
 	"emulation-faults",
+	"package-energy-consumption",
+	"core-energy-consumption",
+	"uncore-energy-consumption",
+	"dram-energy-consumption",
 };
 
 #define MAX_ALIASES 8