diff options
Diffstat (limited to 'tools/perf/Documentation/perf-diff.txt')
| -rw-r--r-- | tools/perf/Documentation/perf-diff.txt | 171 | 
1 files changed, 161 insertions, 10 deletions
diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt index 20d97d84ea1..b3b8abae62b 100644 --- a/tools/perf/Documentation/perf-diff.txt +++ b/tools/perf/Documentation/perf-diff.txt @@ -3,46 +3,61 @@ perf-diff(1)  NAME  ---- -perf-diff - Read two perf.data files and display the differential profile +perf-diff - Read perf.data files and display the differential profile  SYNOPSIS  --------  [verse] -'perf diff' [oldfile] [newfile] +'perf diff' [baseline file] [data file1] [[data file2] ... ]  DESCRIPTION  ----------- -This command displays the performance difference amongst two perf.data files -captured via perf record. +This command displays the performance difference amongst two or more perf.data +files captured via perf record.  If no parameters are passed it will assume perf.data.old and perf.data. +The differential profile is displayed only for events matching both +specified perf.data files. +  OPTIONS  ------- +-D:: +--dump-raw-trace:: +        Dump raw trace in ASCII. + +-m:: +--modules:: +        Load module symbols. WARNING: use only with -k and LIVE kernel +  -d::  --dsos=::  	Only consider symbols in these dsos. CSV that understands -	file://filename entries. +	file://filename entries.  This option will affect the percentage +	of the Baseline/Delta column.  See --percentage for more info.  -C::  --comms=::  	Only consider symbols in these comms. CSV that understands -	file://filename entries. +	file://filename entries.  This option will affect the percentage +	of the Baseline/Delta column.  See --percentage for more info.  -S::  --symbols=::  	Only consider these symbols. CSV that understands -	file://filename entries. +	file://filename entries.  This option will affect the percentage +	of the Baseline/Delta column.  See --percentage for more info.  -s::  --sort=:: -	Sort by key(s): pid, comm, dso, symbol. +	Sort by key(s): pid, comm, dso, symbol, cpu, parent, srcline. +	Please see description of --sort in the perf-report man page.  -t::  --field-separator=::  	Use a special separator character and don't pad with spaces, replacing -	all occurances of this separator in symbol names (and other output) +	all occurrences of this separator in symbol names (and other output)  	with a '.' character, that thus it's the only non valid separator.  -v:: @@ -50,6 +65,142 @@ OPTIONS  	Be verbose, for instance, show the raw counts in addition to the  	diff. +-f:: +--force:: +       Don't complain, do it. + +--symfs=<directory>:: +        Look for files with symbols relative to this directory. + +-b:: +--baseline-only:: +        Show only items with match in baseline. + +-c:: +--compute:: +        Differential computation selection - delta,ratio,wdiff (default is delta). +        See COMPARISON METHODS section for more info. + +-p:: +--period:: +        Show period values for both compared hist entries. + +-F:: +--formula:: +        Show formula for given computation. + +-o:: +--order:: +       Specify compute sorting column number. + +--percentage:: +	Determine how to display the overhead percentage of filtered entries. +	Filters can be applied by --comms, --dsos and/or --symbols options. + +	"relative" means it's relative to filtered entries only so that the +	sum of shown entries will be always 100%.  "absolute" means it retains +	the original value before and after the filter is applied. + +COMPARISON +---------- +The comparison is governed by the baseline file. The baseline perf.data +file is iterated for samples. All other perf.data files specified on +the command line are searched for the baseline sample pair. If the pair +is found, specified computation is made and result is displayed. + +All samples from non-baseline perf.data files, that do not match any +baseline entry, are displayed with empty space within baseline column +and possible computation results (delta) in their related column. + +Example files samples: +- file A with samples f1, f2, f3, f4,    f6 +- file B with samples     f2,     f4, f5 +- file C with samples f1, f2,         f5 + +Example output: +  x - computation takes place for pair +  b - baseline sample percentage + +- perf diff A B C + +  baseline/A compute/B compute/C  samples +  --------------------------------------- +  b                    x          f1 +  b          x         x          f2 +  b                               f3 +  b          x                    f4 +  b                               f6 +             x         x          f5 + +- perf diff B A C + +  baseline/B compute/A compute/C  samples +  --------------------------------------- +  b          x         x          f2 +  b          x                    f4 +  b                    x          f5 +             x         x          f1 +             x                    f3 +             x                    f6 + +- perf diff C B A + +  baseline/C compute/B compute/A  samples +  --------------------------------------- +  b                    x          f1 +  b          x         x          f2 +  b          x                    f5 +                       x          f3 +             x         x          f4 +                       x          f6 + +COMPARISON METHODS +------------------ +delta +~~~~~ +If specified the 'Delta' column is displayed with value 'd' computed as: + +  d = A->period_percent - B->period_percent + +with: +  - A/B being matching hist entry from data/baseline file specified +    (or perf.data/perf.data.old) respectively. + +  - period_percent being the % of the hist entry period value within +    single data file + +  - with filtering by -C, -d and/or -S, period_percent might be changed +    relative to how entries are filtered.  Use --percentage=absolute to +    prevent such fluctuation. + +ratio +~~~~~ +If specified the 'Ratio' column is displayed with value 'r' computed as: + +  r = A->period / B->period + +with: +  - A/B being matching hist entry from data/baseline file specified +    (or perf.data/perf.data.old) respectively. + +  - period being the hist entry period value + +wdiff:WEIGHT-B,WEIGHT-A +~~~~~~~~~~~~~~~~~~~~~~~ +If specified the 'Weighted diff' column is displayed with value 'd' computed as: + +   d = B->period * WEIGHT-A - A->period * WEIGHT-B + +  - A/B being matching hist entry from data/baseline file specified +    (or perf.data/perf.data.old) respectively. + +  - period being the hist entry period value + +  - WEIGHT-A/WEIGHT-B being user suplied weights in the the '-c' option +    behind ':' separator like '-c wdiff:1,2'. +    - WIEGHT-A being the weight of the data file +    - WIEGHT-B being the weight of the baseline data file +  SEE ALSO  -------- -linkperf:perf-record[1] +linkperf:perf-record[1], linkperf:perf-report[1]  | 
