Messages in this thread | | | From | Stephane Eranian <> | Subject | [PATCH 0/2] perf: add new uncore command | Date | Thu, 31 Jan 2013 14:54:37 +0100 |
| |
This patchset adds a new command to perf: perf uncore. It is used to measure processor socket-level metrics on a system-wide basis and at all priv levels.
The command comes with a set of predefined key metrics which are useful to measure multi-socket system imbalance and various bandwidths.
The following metrics are currently defined: - memory bandwidth (Nehalem, Westmere, SandyBridge-EP) - PCIe bandwidth (SandyBridge-EP) - QPI bandwidth (SandyBridge-EP) - C-state residency (SandyBridge-EP)
Others can be added in the future.
The command provides options to modify the unit of the metrics (default: MB/s for bandwidth).
Example on Nehalem:
# perf uncore #------------------------------ # Socket0 | #------------------------------ # RAM Bandwidth | # Wr Rd| # MB/s MB/s| #------------------------------ 4954.99 14897.29 4953.97 14894.56 4947.52 14874.97
To make plotting easier, the output can be augmented with a timestamp:
# perf uncore -T #---------------------------------------- # | Socket0 | # |------------------------------ # Time | RAM Bandwidth | # in | Wr Rd| # secs | MB/s MB/s| #---------------------------------------- 1 4952.50 14890.49 2 4955.55 14900.19 3 4949.13 14879.60 4 4954.66 14896.26
The code is split between generic layer (builtin-uncore.c) and an arch specific layer (arch/*/util/uncore.c). All events are hardcoded because they don't change for a given processor and metric computation requires combining multiple events.
Signed-off-by: Stephane Eranian <eranian@google.com> ---
Stephane Eranian (2): perf tools: add cpu_map__get_socket() perf: add new perf uncore command
tools/perf/Documentation/perf-uncore.txt | 88 ++++ tools/perf/Makefile | 1 + tools/perf/arch/x86/Makefile | 1 + tools/perf/arch/x86/util/uncore.c | 539 ++++++++++++++++++++++ tools/perf/builtin-uncore.c | 739 ++++++++++++++++++++++++++++++ tools/perf/builtin.h | 1 + tools/perf/command-list.txt | 1 + tools/perf/perf.c | 1 + tools/perf/util/cpumap.c | 26 ++ tools/perf/util/cpumap.h | 1 + tools/perf/util/uncore.h | 56 +++ 11 files changed, 1454 insertions(+) create mode 100644 tools/perf/Documentation/perf-uncore.txt create mode 100644 tools/perf/arch/x86/util/uncore.c create mode 100644 tools/perf/builtin-uncore.c create mode 100644 tools/perf/util/uncore.h
-- 1.7.10.4
| |