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

From: Zhang Rui
Date: Thu May 26 2011 - 04:36:37 EST



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@xxxxxxxxx>
---
tools/perf/design.txt | 4 ++++
tools/perf/util/parse-events.c | 8 ++++++++
2 files changed, 12 insertions(+)

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


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/