^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) perf-diff(1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) NAME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) perf-diff - Read perf.data files and display the differential profile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) SYNOPSIS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) [verse]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 'perf diff' [baseline file] [data file1] [[data file2] ... ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) DESCRIPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) This command displays the performance difference amongst two or more perf.data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) files captured via perf record.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) If no parameters are passed it will assume perf.data.old and perf.data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) The differential profile is displayed only for events matching both
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) specified perf.data files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) If no parameters are passed the samples will be sorted by dso and symbol.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) As the perf.data files could come from different binaries, the symbols addresses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) could vary. So perf diff is based on the comparison of the files and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) symbols name.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) -D::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) --dump-raw-trace::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) Dump raw trace in ASCII.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) --kallsyms=<file>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) kallsyms pathname
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) -m::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) --modules::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) Load module symbols. WARNING: use only with -k and LIVE kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) -d::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) --dsos=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) Only consider symbols in these dsos. CSV that understands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) file://filename entries. This option will affect the percentage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) of the Baseline/Delta column. See --percentage for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) -C::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) --comms=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) Only consider symbols in these comms. CSV that understands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) file://filename entries. This option will affect the percentage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) of the Baseline/Delta column. See --percentage for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) -S::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) --symbols=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) Only consider these symbols. CSV that understands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) file://filename entries. This option will affect the percentage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) of the Baseline/Delta column. See --percentage for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) -s::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) --sort=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) Sort by key(s): pid, comm, dso, symbol, cpu, parent, srcline.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) Please see description of --sort in the perf-report man page.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) -t::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) --field-separator=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) Use a special separator character and don't pad with spaces, replacing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) all occurrences of this separator in symbol names (and other output)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) with a '.' character, that thus it's the only non valid separator.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) -v::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) --verbose::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) Be verbose, for instance, show the raw counts in addition to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) diff.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) -q::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) --quiet::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) Do not show any message. (Suppress -v)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) -f::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) --force::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) Don't do ownership validation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) --symfs=<directory>::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) Look for files with symbols relative to this directory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) -b::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) --baseline-only::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) Show only items with match in baseline.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) -c::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) --compute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) Differential computation selection - delta, ratio, wdiff, cycles,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) delta-abs (default is delta-abs). Default can be changed using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) diff.compute config option. See COMPARISON METHODS section for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) --cycles-hist::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) Report a histogram and the standard deviation for cycles data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) It can help us to judge if the reported cycles data is noisy or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) not. This option should be used with '-c cycles'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) -p::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) --period::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) Show period values for both compared hist entries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) -F::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) --formula::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) Show formula for given computation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) -o::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) --order::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) Specify compute sorting column number. 0 means sorting by baseline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) overhead and 1 (default) means sorting by computed value of column 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) (data from the first file other base baseline). Values more than 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) can be used only if enough data files are provided.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) The default value can be set using the diff.order config option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) --percentage::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) Determine how to display the overhead percentage of filtered entries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) Filters can be applied by --comms, --dsos and/or --symbols options.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) "relative" means it's relative to filtered entries only so that the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) sum of shown entries will be always 100%. "absolute" means it retains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) the original value before and after the filter is applied.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) --time::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) Analyze samples within given time window. It supports time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) percent with multiple time ranges. Time string is 'a%/n,b%/m,...'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) or 'a%-b%,c%-%d,...'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) For example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) Select the second 10% time slice to diff:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) perf diff --time 10%/2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) Select from 0% to 10% time slice to diff:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) perf diff --time 0%-10%
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) Select the first and the second 10% time slices to diff:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) perf diff --time 10%/1,10%/2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) Select from 0% to 10% and 30% to 40% slices to diff:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) perf diff --time 0%-10%,30%-40%
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) It also supports analyzing samples within a given time window
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) <start>,<stop>. Times have the format seconds.nanoseconds. If 'start'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) is not given (i.e. time string is ',x.y') then analysis starts at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) the beginning of the file. If stop time is not given (i.e. time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) string is 'x.y,') then analysis goes to the end of the file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) Multiple ranges can be separated by spaces, which requires the argument
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) to be quoted e.g. --time "1234.567,1234.789 1235,"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) Time string is'a1.b1,c1.d1:a2.b2,c2.d2'. Use ':' to separate timestamps
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) for different perf.data files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) For example, we get the timestamp information from 'perf script'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) perf script -i perf.data.old
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) mgen 13940 [000] 3946.361400: ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) perf script -i perf.data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) mgen 13940 [000] 3971.150589 ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) perf diff --time 3946.361400,:3971.150589,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) It analyzes the perf.data.old from the timestamp 3946.361400 to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) the end of perf.data.old and analyzes the perf.data from the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) timestamp 3971.150589 to the end of perf.data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) --cpu:: Only diff samples for the list of CPUs provided. Multiple CPUs can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) be provided as a comma-separated list with no space: 0,1. Ranges of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) CPUs are specified with -: 0-2. Default is to report samples on all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) CPUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) --pid=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) Only diff samples for given process ID (comma separated list).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) --tid=::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) Only diff samples for given thread ID (comma separated list).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) --stream::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) Enable hot streams comparison. Stream can be a callchain which is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) aggregated by the branch records from samples.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) COMPARISON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) ----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) The comparison is governed by the baseline file. The baseline perf.data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) file is iterated for samples. All other perf.data files specified on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) the command line are searched for the baseline sample pair. If the pair
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) is found, specified computation is made and result is displayed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) All samples from non-baseline perf.data files, that do not match any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) baseline entry, are displayed with empty space within baseline column
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) and possible computation results (delta) in their related column.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) Example files samples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) - file A with samples f1, f2, f3, f4, f6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) - file B with samples f2, f4, f5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) - file C with samples f1, f2, f5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) Example output:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) x - computation takes place for pair
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) b - baseline sample percentage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) - perf diff A B C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) baseline/A compute/B compute/C samples
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) ---------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) b x f1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) b x x f2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) b f3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) b x f4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) b f6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) x x f5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) - perf diff B A C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) baseline/B compute/A compute/C samples
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) ---------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) b x x f2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) b x f4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) b x f5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) x x f1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) x f3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) x f6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) - perf diff C B A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) baseline/C compute/B compute/A samples
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) ---------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) b x f1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) b x x f2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) b x f5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) x f3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) x x f4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) x f6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) COMPARISON METHODS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) ------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) delta
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) ~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) If specified the 'Delta' column is displayed with value 'd' computed as:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) d = A->period_percent - B->period_percent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) with:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) - A/B being matching hist entry from data/baseline file specified
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) (or perf.data/perf.data.old) respectively.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) - period_percent being the % of the hist entry period value within
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) single data file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) - with filtering by -C, -d and/or -S, period_percent might be changed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) relative to how entries are filtered. Use --percentage=absolute to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) prevent such fluctuation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) delta-abs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) ~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) Same as 'delta` method, but sort the result with the absolute values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) ratio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) ~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) If specified the 'Ratio' column is displayed with value 'r' computed as:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) r = A->period / B->period
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) with:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) - A/B being matching hist entry from data/baseline file specified
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) (or perf.data/perf.data.old) respectively.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) - period being the hist entry period value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) wdiff:WEIGHT-B,WEIGHT-A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) ~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) If specified the 'Weighted diff' column is displayed with value 'd' computed as:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) d = B->period * WEIGHT-A - A->period * WEIGHT-B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) - A/B being matching hist entry from data/baseline file specified
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) (or perf.data/perf.data.old) respectively.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) - period being the hist entry period value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) - WEIGHT-A/WEIGHT-B being user supplied weights in the the '-c' option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) behind ':' separator like '-c wdiff:1,2'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) - WEIGHT-A being the weight of the data file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) - WEIGHT-B being the weight of the baseline data file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) cycles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) ~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) If specified the '[Program Block Range] Cycles Diff' column is displayed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) It displays the cycles difference of same program basic block amongst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) two perf.data. The program basic block is the code between two branches.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) '[Program Block Range]' indicates the range of a program basic block.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) Source line is reported if it can be found otherwise uses symbol+offset
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) SEE ALSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) linkperf:perf-record[1], linkperf:perf-report[1]