Commit d49dd15d authored by Namhyung Kim's avatar Namhyung Kim Committed by Arnaldo Carvalho de Melo

perf diff: Add diff.order config option

In many cases, I need to look at differences between two data so I often
used the -o option to sort the result base on the difference first.
It'd be nice to have a config option to set it by default.

The diff.order config option is to set the default value of -o/--order
option.
Signed-off-by: default avatarNamhyung 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-3-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent a1668c25
...@@ -498,6 +498,13 @@ record.*:: ...@@ -498,6 +498,13 @@ record.*::
But if this option is 'no-cache', it will not update the build-id cache. But if this option is 'no-cache', it will not update the build-id cache.
'skip' skips post-processing and does not update the cache. 'skip' skips post-processing and does not update the cache.
diff.*::
diff.order::
This option sets the number of columns to sort the result.
The default is 0, which means sorting by baseline.
Setting it to 1 will sort the result by delta (or other
compute method selected).
SEE ALSO SEE ALSO
-------- --------
linkperf:perf[1] linkperf:perf[1]
...@@ -99,7 +99,11 @@ OPTIONS ...@@ -99,7 +99,11 @@ OPTIONS
-o:: -o::
--order:: --order::
Specify compute sorting column number. Specify compute sorting column number. 0 means sorting by baseline
overhead (default) and 1 means sorting by computed value of column 1
(data from the first file other base baseline). Values more than 1
can be used only if enough data files are provided.
The default value can be set using the diff.order config option.
--percentage:: --percentage::
Determine how to display the overhead percentage of filtered entries. Determine how to display the overhead percentage of filtered entries.
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "util/symbol.h" #include "util/symbol.h"
#include "util/util.h" #include "util/util.h"
#include "util/data.h" #include "util/data.h"
#include "util/config.h"
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
...@@ -1291,6 +1292,17 @@ static int data_init(int argc, const char **argv) ...@@ -1291,6 +1292,17 @@ static int data_init(int argc, const char **argv)
return 0; return 0;
} }
static int diff__config(const char *var, const char *value,
void *cb __maybe_unused)
{
if (!strcmp(var, "diff.order")) {
sort_compute = perf_config_int(var, value);
return 0;
}
return 0;
}
int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused) int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused)
{ {
int ret = hists__init(); int ret = hists__init();
...@@ -1298,6 +1310,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused) ...@@ -1298,6 +1310,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused)
if (ret < 0) if (ret < 0)
return ret; return ret;
perf_config(diff__config, NULL);
argc = parse_options(argc, argv, options, diff_usage, 0); argc = parse_options(argc, argv, options, diff_usage, 0);
if (symbol__init(NULL) < 0) if (symbol__init(NULL) < 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment