linux/tools/perf
Stephane Eranian 12c08a9f59 perf stat: Add per-core aggregation
This patch adds the --per-core option to perf stat.

This option is used to aggregate system-wide counts
on a per physical core basis. On processors with
hyperthreading, this means counts of all HT threads
running on a physical core are aggregated.

This mode is useful to find imblance between physical
cores running an uniform workload. Cores are identified
by socket: S0-C1, means physical core 1 on socket 0. Note
that cores are identified using their physical core id,
thus their numbering may not be continuous.

Per core aggregation can be combined with interval printing:

 # perf stat -a --per-core -I 1000 -e cycles sleep 1000
 #           time core         cpus             counts events
      1.000090030 S0-C0           1          4,765,747 cycles
      1.000090030 S0-C1           1          5,580,647 cycles
      1.000090030 S0-C2           1            221,181 cycles
      1.000090030 S0-C3           1            266,092 cycles

Signed-off-by: Stephane Eranian <eranian@google.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1360846649-6411-4-git-send-email-eranian@google.com
[ committer note: Remove parts already applied on 86ee6e1 to keep bisectability ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2013-03-25 16:13:26 -03:00
..
arch perf tools: Fix build on non-glibc systems due to libio.h absence 2013-03-15 13:05:13 -03:00
bench perf tools: Fix LIBNUMA build with glibc 2.12 and older. 2013-03-14 08:06:21 -03:00
config perf tools: Make numa benchmark optional 2013-01-30 10:36:21 -03:00
Documentation perf stat: Add per-core aggregation 2013-03-25 16:13:26 -03:00
python perf python: Use attr.watermark in twatch.py 2012-01-30 18:38:23 -02:00
scripts perf perl scripts: Fix SIGALRM and pipe read race for rwtop 2013-02-06 18:09:27 -03:00
tests perf tests: Add a test case for checking sw clock event frequency 2013-03-18 11:43:16 -03:00
ui perf annotate browser: Support event group view on TUI 2013-03-15 13:06:07 -03:00
util perf stat: Add per-core aggregation 2013-03-25 16:13:26 -03:00
.gitignore perf tools: Ignore compiled python binaries 2012-09-07 12:10:58 -03:00
bash_completion perf tools: Complete tracepoint event names 2012-10-04 12:44:52 -03:00
builtin-annotate.c perf annotate: Add basic support to event group view 2013-03-15 13:06:05 -03:00
builtin-bench.c perf tools: Make numa benchmark optional 2013-01-30 10:36:21 -03:00
builtin-buildid-cache.c perf buildid-cache: Add --update option 2013-02-14 14:59:27 -03:00
builtin-buildid-list.c perf symbols: Generalize filter in __fprintf_buildid methods 2012-12-09 08:46:07 -03:00
builtin-diff.c perf sort: Make setup_sorting returns an error code 2013-02-06 18:09:26 -03:00
builtin-evlist.c perf evlist: Pass the event_group info via perf_attr_details 2013-02-06 18:09:28 -03:00
builtin-help.c perf help: Fix --help for builtins 2012-10-22 12:35:49 -02:00
builtin-inject.c perf inject: Mark a dso if it's used 2012-10-26 11:22:25 -02:00
builtin-kmem.c perf kmem: Use memdup() 2013-01-25 12:49:28 -03:00
builtin-kvm.c perf tools: Introduce tools/lib/lk library 2013-03-15 13:06:00 -03:00
builtin-list.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
builtin-lock.c perf tools: Add a global variable "const char *input_name" 2012-10-29 11:45:34 -02:00
builtin-probe.c perf tools: Introduce tools/lib/lk library 2013-03-15 13:06:00 -03:00
builtin-record.c perf tools: Get rid of redundant _FILE_OFFSET_BITS definition 2013-03-21 13:04:00 -03:00
builtin-report.c perf report: Remove duplicated include 2013-03-15 13:06:08 -03:00
builtin-sched.c perf session: There is no need for a per session hists instance 2013-01-24 16:40:12 -03:00
builtin-script.c perf script: Don't display trace info when invoking scripts 2013-01-24 16:40:52 -03:00
builtin-stat.c perf stat: Add per-core aggregation 2013-03-25 16:13:26 -03:00
builtin-timechart.c perf tools: Add a global variable "const char *input_name" 2012-10-29 11:45:34 -02:00
builtin-top.c perf annotate: Pass evsel instead of evidx on annotation functions 2013-03-15 13:06:04 -03:00
builtin-trace.c perf trace: Free evlist resources properly on return path 2013-03-15 13:06:11 -03:00
builtin.h perf trace: New tool 2012-09-26 20:42:23 -03:00
command-list.txt perf tools: Sort command-list.txt alphabetically 2013-03-15 13:05:59 -03:00
CREDITS
design.txt perf tools: Update ioctl documentation for PERF_IOC_FLAG_GROUP 2012-05-31 11:38:42 -03:00
Makefile perf tests: Add a test case for checking sw clock event frequency 2013-03-18 11:43:16 -03:00
MANIFEST perf tools: Introduce tools/lib/lk library 2013-03-15 13:06:00 -03:00
perf-archive.sh perf archive: Make 'f' the last parameter for tar 2012-09-17 13:10:42 -03:00
perf.c perf tools: Extract perf-specific stuff from debugfs.c 2013-03-15 13:06:01 -03:00
perf.h ImgTec Meta architecture changes for v3.9-rc1 2013-03-03 12:06:09 -08:00