linux/tools/perf/Documentation
Andi Kleen 411916880f perf stat: Add support for --initial-delay option
When measuring workloads the startup phase -- doing page faults, dynamic
linking, opening files -- is often very different from the rest of the
workload.  Especially with smaller kernels and using counter
multiplexing this can give significant measurement errors.

Multiplexing assumes that the workload is mostly the same over longer
periods. But at startup there is typically some spike of activity which
is relatively short.  If many groups are multiplexing the one group
seeing the spike, and which is then scaled up over the time to run all
groups, may see a significant error.

Also in general it's often not useful to measure the startup, because it
is so different from the rest.

One way around this is to use interval mode and discard the first
sample, but this can be awkward because interval mode doesn't support
intervals of less than 100ms, and also a useful interval is not
necessarily the same as a useful startup delay.

This patch adds a new --initial-delay / -D option to skip measuring for
the startup phase. The time can be specified in ms

Here's a simple example:

perf stat -e page-faults bash -c 'for i in $(seq 100000) ; do true ; done'
...
             3,721 page-faults
...

If we just wait 20 ms the number of page faults is 1/3 less:

perf stat -D 20 -e page-faults bash -c 'for i in $(seq 100000) ; do true ; done'
...
             2,823 page-faults
...

So we filtered out most of the startup noise from bash.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Reviewed-by: Jiri Olsa <jolsa@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1375490473-1503-4-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2013-08-07 17:35:29 -03:00
..
android.txt perf tools: Add info about cross compiling for Android ARM 2012-10-31 12:17:49 -02:00
asciidoc.conf
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
manpage-base.xsl
manpage-bold-literal.xsl
manpage-normal.xsl
manpage-suppress-sp.xsl
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-buildid-cache.txt perf buildid-cache: Add --update option 2013-02-14 14:59:27 -03:00
perf-buildid-list.txt
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-inject.txt perf inject: Merge sched_stat_* and sched_switch events 2012-10-26 11:22:25 -02:00
perf-kmem.txt
perf-kvm.txt perf kvm: Events analysis tool 2012-09-21 12:51:22 -03:00
perf-list.txt perf tools: Add 'S' event/group modifier to read sample value 2013-08-07 17:35:22 -03:00
perf-lock.txt
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-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-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-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-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
perfconfig.example