perf diff: Add diff.compute config option

The diff.compute config variable is to set the default compute method of
perf diff command (-c option).  Possible values 'delta' (default),
'delta-abs', 'ratio' and 'wdiff'.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Taeung Song <treeze.taeung@gmail.com>
Link: http://lkml.kernel.org/r/20170210073614.24584-4-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Namhyung Kim 2017-02-10 16:36:13 +09:00 committed by Arnaldo Carvalho de Melo
parent d49dd15d69
commit 4b35994abe
3 changed files with 23 additions and 3 deletions

View file

@ -505,6 +505,11 @@ diff.*::
Setting it to 1 will sort the result by delta (or other
compute method selected).
diff.compute::
This options sets the method for computing the diff result.
Possible values are 'delta', 'delta-abs', 'ratio' and
'wdiff'. Default is 'delta'.
SEE ALSO
--------
linkperf:perf[1]

View file

@ -86,8 +86,9 @@ OPTIONS
-c::
--compute::
Differential computation selection - delta,ratio,wdiff,delta-abs (default is delta).
See COMPARISON METHODS section for more info.
Differential computation selection - delta, ratio, wdiff, delta-abs
(default is delta). Default can be changed using diff.compute
config option. See COMPARISON METHODS section for more info.
-p::
--period::

View file

@ -86,7 +86,7 @@ const char *compute_names[COMPUTE_MAX] = {
[COMPUTE_WEIGHTED_DIFF] = "wdiff",
};
static int compute;
static int compute = COMPUTE_DELTA;
static int compute_2_hpp[COMPUTE_MAX] = {
[COMPUTE_DELTA] = PERF_HPP_DIFF__DELTA,
@ -1299,6 +1299,20 @@ static int diff__config(const char *var, const char *value,
sort_compute = perf_config_int(var, value);
return 0;
}
if (!strcmp(var, "diff.compute")) {
if (!strcmp(value, "delta")) {
compute = COMPUTE_DELTA;
} else if (!strcmp(value, "delta-abs")) {
compute = COMPUTE_DELTA_ABS;
} else if (!strcmp(value, "ratio")) {
compute = COMPUTE_RATIO;
} else if (!strcmp(value, "wdiff")) {
compute = COMPUTE_WEIGHTED_DIFF;
} else {
pr_err("Invalid compute method: %s\n", value);
return -1;
}
}
return 0;
}