linux_dsm_epyc7002/tools/perf/Documentation
Michael Ellerman e9a7c41447 perf tools: Add support for pinned modifier
This commit adds support for a new modifier "D", which requests that the
event, or group of events, be pinned to the PMU.

The "p" modifier is already taken for precise, and "P" may be used in
future to mean "fully precise".

So we use "D", which stands for pinneD - and looks like a padlock, or if
you're using the ":D" syntax perf smiles at you.

This is an oft-requested feature from our HW folks, who want to be able
to run a large number of events, but also want 100% accurate results for
instructions per cycle.

Comparison of results with and without pinning:

$ perf stat -e '{cycles,instructions}:D' -e cycles,instructions,...

  79,590,480,683 cycles         #  0.000 GHz
 166,123,716,524 instructions   #  2.09  insns per cycle
                                #  0.11  stalled cycles per insn

  79,352,134,463 cycles         #  0.000 GHz                     [11.11%]
 165,178,301,818 instructions   #  2.08  insns per cycle
                                #  0.11  stalled cycles per insn [11.13%]

As you can see although perf does a very good job of scaling the values
in the non-pinned case, there is some small discrepancy.

The patch is fairly straight forward, the one detail is that we need to
make sure we only request pinning for the group leader when we have a
group.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Tested-by: Jiri Olsa <jolsa@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1375795686-4226-1-git-send-email-michael@ellerman.id.au
[ Use perf_evsel__is_group_leader instead of open coded equivalent, as
  suggested by Jiri Olsa ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2013-08-07 17:35:40 -03:00
..
android.txt perf tools: Add info about cross compiling for Android ARM 2012-10-31 12:17:49 -02:00
asciidoc.conf perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
examples.txt perf record: Remove -f/--force option 2013-07-08 17:37:25 -03:00
jit-interface.txt perf symbols: Add description of JIT interface 2012-08-13 14:55:02 -03:00
Makefile perf tools: Fix output directory of Documentation/ 2013-07-08 17:31:49 -03:00
manpage-1.72.xsl perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
manpage-base.xsl perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
manpage-bold-literal.xsl perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
manpage-normal.xsl perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
manpage-suppress-sp.xsl perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
perf-annotate.txt perf annotate: Add basic support to event group view 2013-03-15 13:06:05 -03:00
perf-archive.txt perf archive: Fix typo on Documentation 2013-05-28 16:23:55 +03:00
perf-bench.txt perf bench: Fix confused variable namings and descriptions in mem subsystem 2012-07-02 14:35:45 -03:00
perf-buildid-cache.txt perf buildid-cache: Add --update option 2013-02-14 14:59:27 -03:00
perf-buildid-list.txt perf report: Accept fifos as input file 2011-12-23 17:01:03 -02:00
perf-diff.txt perf diff: Add generic order option for compute sorting 2013-07-12 13:54:16 -03:00
perf-evlist.txt perf evlist: Add --group option 2013-01-31 13:07:49 -03:00
perf-help.txt perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
perf-inject.txt perf inject: Merge sched_stat_* and sched_switch events 2012-10-26 11:22:25 -02:00
perf-kmem.txt perf report: Accept fifos as input file 2011-12-23 17:01:03 -02:00
perf-kvm.txt perf kvm: Events analysis tool 2012-09-21 12:51:22 -03:00
perf-list.txt perf tools: Add support for pinned modifier 2013-08-07 17:35:40 -03:00
perf-lock.txt perf lock: Document lock info subcommand 2012-01-30 18:30:48 -02:00
perf-mem.txt perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
perf-probe.txt perf probe: Detect probe target when m/x options are absent 2012-05-11 13:58:53 -03:00
perf-record.txt perf record: Remove -f/--force option 2013-07-08 17:37:25 -03:00
perf-report.txt perf tools: Support callchain sorting based on addresses 2013-07-22 12:42:18 -03:00
perf-sched.txt perf report: Accept fifos as input file 2011-12-23 17:01:03 -02:00
perf-script-perl.txt perf script perl/python: Fix libexec scripts path in Documentation 2012-08-20 09:30:36 -03:00
perf-script-python.txt perf script: Remove workqueue-stats script 2013-01-24 16:40:53 -03:00
perf-script.txt perf script: Add option resolving vmlinux path 2012-01-30 18:13:07 -02:00
perf-stat.txt perf stat: Add support for --initial-delay option 2013-08-07 17:35:29 -03:00
perf-test.txt perf test: Allow skipping tests 2013-01-24 16:40:53 -03:00
perf-timechart.txt perf report: Accept fifos as input file 2011-12-23 17:01:03 -02:00
perf-top.txt perf report/top: Add option to collapse undesired parts of call graph 2013-07-12 13:53:55 -03:00
perf-trace.txt perf trace: Use sched:sched_stat_runtime to provide a thread summary 2012-10-25 10:57:43 -02:00
perf.txt perf: Fix few typos + cosmetics 2010-01-13 17:39:44 +01:00
perfconfig.example perf annotate browser: Read perf config file for settings 2012-05-29 22:06:30 -03:00