[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1358257194-8204-1-git-send-email-jolsa@redhat.com>
Date: Tue, 15 Jan 2013 14:39:50 +0100
From: Jiri Olsa <jolsa@...hat.com>
To: linux-kernel@...r.kernel.org
Cc: Arnaldo Carvalho de Melo <acme@...hat.com>,
Namhyung Kim <namhyung@...nel.org>,
Corey Ashford <cjashfor@...ux.vnet.ibm.com>,
Frederic Weisbecker <fweisbec@...il.com>,
Ingo Molnar <mingo@...e.hu>, Paul Mackerras <paulus@...ba.org>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Andi Kleen <andi@...stfloor.org>,
David Ahern <dsahern@...il.com>,
Ulrich Drepper <drepper@...il.com>
Subject: [RFC 0/4] perf tool: Adding ratios support
hi,
adding support to predefine event ratios formulas so they could
be used easily in perf.
The formulas are handed in the config file with following format:
set {
events = {cycles,instructions,branch-instructions}:u
cpi {
formula = cycles / instructions
desc = cycles per instruction
}
branch-rate {
formula = branch-instructions / instructions
desc = branch rate
}
}
The 'set' defines set of counter that share same events.
Each 'set' defines:
events - event string that would go into stat/record -e option
counters - any number of counters based on above events
Each counter (cpi/branch-rate) defines
formula - formula with that produce the counter number
event names and numbers could be used
desc - text description of the counter
The formula can currently contain any event from the set::events
plus any number (int). There'll be support in future for outside
values runtime and other if needed.
My current thinking is to have generic formulas file(s) for architectural
events and add arch-specific ones once when we have the support for
non-architectural events (already sent RFC, v2 is on its way..).
Example:
With following formula.conf config file:
---
cpi {
events = {cycles,instructions}:u
CPI {
formula = cycles / instructions
desc = cycles per instruction
}
}
branch {
events = {instructions,branch-instructions,branch-misses}:u
branch-rate {
formula = branch-instructions / instructions
desc = branch rate
}
branch-miss-rate {
formula = branch-misses / instructions
desc = branch misprediction rate
}
branch-miss-ratio{
formula = branch-misses / branch-instructions
desc = branch misprediction ratio
}
}
---
You'll get following result:
$ perf stat -f formula.conf:branch kill
usage: kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
Performance counter stats for 'kill':
184,195 instructions # 0.00 insns per cycle
40,907 branch-instructions
4,815 branch-misses # 11.77% of all branches
0.000655767 seconds time elapsed
0.22208529 branch-rate # branch rate
0.02614077 branch-miss-rate # branch misprediction rate
0.11770602 branch-miss-ratio # branch misprediction ratio
$ perf stat -f formula.conf:cpi kill
usage: kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
Performance counter stats for 'kill':
356,635 cycles # 0.000 GHz
187,191 instructions # 0.52 insns per cycle
0.001907600 seconds time elapsed
1.90519309 CPI # cycles per instruction
Available also at:
git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/linux.git
perf/ratios2
thanks for any ideas,
jirka
Cc: Arnaldo Carvalho de Melo <acme@...hat.com>
Cc: Namhyung Kim <namhyung@...nel.org>
Cc: Corey Ashford <cjashfor@...ux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@...il.com>
Cc: Ingo Molnar <mingo@...e.hu>
Cc: Namhyung Kim <namhyung@...nel.org>
Cc: Paul Mackerras <paulus@...ba.org>
Cc: Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc: Andi Kleen <andi@...stfloor.org>
Cc: David Ahern <dsahern@...il.com>
Cc: Ulrich Drepper <drepper@...il.com>
---
tools/perf/Makefile | 11 +++
tools/perf/builtin-stat.c | 61 ++++++++++++++-
tools/perf/formula.conf | 28 +++++++
tools/perf/tests/evsel-roundtrip-name.c | 4 +-
tools/perf/tests/hists_link.c | 4 +-
tools/perf/tests/parse-events.c | 2 +-
tools/perf/util/evlist.c | 13 ++++
tools/perf/util/evlist.h | 4 +
tools/perf/util/formula.c | 387 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/perf/util/formula.h | 113 +++++++++++++++++++++++++++
tools/perf/util/formula.l | 119 ++++++++++++++++++++++++++++
tools/perf/util/formula.y | 248 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/perf/util/parse-events.c | 5 +-
tools/perf/util/parse-events.h | 3 +-
14 files changed, 991 insertions(+), 11 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists