* [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) @ 2017-02-10 7:36 Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 1/4] perf diff: Add 'delta-abs' compute method Namhyung Kim ` (4 more replies) 0 siblings, 5 replies; 13+ messages in thread From: Namhyung Kim @ 2017-02-10 7:36 UTC (permalink / raw) To: Arnaldo Carvalho de Melo; +Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML Hello, This patchset adds 'delta-abs' compute method to -c/--compute option. The 'delta-abs' is same as 'delta' but shows entries with bigger absolute delta first instead of sorting numerically. This is only useful together with -o option. * v2 changes - rebase onto acme/perf/core - change default option to '-o 1 -c delta-abs' Below is default output (-c delta): $ perf diff -o 1 -c delta | grep -v ^# | head 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock +1.15% [kernel.kallsyms] [k] copy_user_generic_string 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk +0.64% [kernel.kallsyms] [k] kmem_cache_alloc 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock +0.45% [kernel.kallsyms] [k] alloc_set_pte 0.16% +0.45% [kernel.kallsyms] [k] menu_select +0.41% ld-2.24.so [.] do_lookup_x Now with 'delta-abs' it shows entries have bigger delta value either positive or negative. $ perf diff -o 1 -c delta-abs | grep -v ^# | head 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit 12.72% -3.01% [kernel.kallsyms] [k] intel_idle 9.72% -1.31% [unknown] [.] 0x0000000000411343 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock +1.15% [kernel.kallsyms] [k] copy_user_generic_string 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk 1.35% -0.71% [kernel.kallsyms] [k] smp_call_function_single +0.64% [kernel.kallsyms] [k] kmem_cache_alloc 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock The patch 2 and 3 are to add config options to control the default behavior of perf diff command. And patch 4 changes the default setting. The code is avaiable at 'perf/diff-delta-abs-v2' branch in git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git Thanks, Namhyung Namhyung Kim (4): perf diff: Add 'delta-abs' compute method perf diff: Add diff.order config option perf diff: Add diff.compute config option perf diff: Change default setting to "delta-abs" tools/perf/Documentation/perf-config.txt | 12 +++++ tools/perf/Documentation/perf-diff.txt | 15 ++++-- tools/perf/builtin-diff.c | 78 ++++++++++++++++++++++++++++++-- 3 files changed, 98 insertions(+), 7 deletions(-) -- 2.11.0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 1/4] perf diff: Add 'delta-abs' compute method 2017-02-10 7:36 [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Namhyung Kim @ 2017-02-10 7:36 ` Namhyung Kim 2017-02-14 6:38 ` [tip:perf/core] " tip-bot for Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 2/4] perf diff: Add diff.order config option Namhyung Kim ` (3 subsequent siblings) 4 siblings, 1 reply; 13+ messages in thread From: Namhyung Kim @ 2017-02-10 7:36 UTC (permalink / raw) To: Arnaldo Carvalho de Melo; +Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML The 'delta-abs' compute method is same as 'delta' but shows entries with bigger absolute delta first instead of sorting numerically. This is only useful together with -o option. Below is default output (-c delta): $ perf diff -o 1 -c delta | grep -v ^# | head 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock +1.15% [kernel.kallsyms] [k] copy_user_generic_string 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk +0.64% [kernel.kallsyms] [k] kmem_cache_alloc 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock +0.45% [kernel.kallsyms] [k] alloc_set_pte 0.16% +0.45% [kernel.kallsyms] [k] menu_select +0.41% ld-2.24.so [.] do_lookup_x Now with 'delta-abs' it shows entries have bigger delta value either positive or negative. $ perf diff -o 1 -c delta-abs | grep -v ^# | head 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit 12.72% -3.01% [kernel.kallsyms] [k] intel_idle 9.72% -1.31% [unknown] [.] 0x0000000000411343 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk 1.35% -0.71% [kernel.kallsyms] [k] smp_call_function_single 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock 0.16% +0.45% [kernel.kallsyms] [k] menu_select 0.72% -0.44% [kernel.kallsyms] [k] lookup_fast Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- tools/perf/Documentation/perf-diff.txt | 6 ++++- tools/perf/builtin-diff.c | 46 ++++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt index 3e9490b9c533..af80284cd2f6 100644 --- a/tools/perf/Documentation/perf-diff.txt +++ b/tools/perf/Documentation/perf-diff.txt @@ -86,7 +86,7 @@ OPTIONS -c:: --compute:: - Differential computation selection - delta,ratio,wdiff (default is delta). + Differential computation selection - delta,ratio,wdiff,delta-abs (default is delta). See COMPARISON METHODS section for more info. -p:: @@ -181,6 +181,10 @@ delta relative to how entries are filtered. Use --percentage=absolute to prevent such fluctuation. +delta-abs +~~~~~~~~~ +Same as 'delta` method, but sort the result with the absolute values. + ratio ~~~~~ If specified the 'Ratio' column is displayed with value 'r' computed as: diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 933aeec46f4a..781c9e60bd21 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -30,6 +30,7 @@ enum { PERF_HPP_DIFF__RATIO, PERF_HPP_DIFF__WEIGHTED_DIFF, PERF_HPP_DIFF__FORMULA, + PERF_HPP_DIFF__DELTA_ABS, PERF_HPP_DIFF__MAX_INDEX }; @@ -73,11 +74,13 @@ enum { COMPUTE_DELTA, COMPUTE_RATIO, COMPUTE_WEIGHTED_DIFF, + COMPUTE_DELTA_ABS, COMPUTE_MAX, }; const char *compute_names[COMPUTE_MAX] = { [COMPUTE_DELTA] = "delta", + [COMPUTE_DELTA_ABS] = "delta-abs", [COMPUTE_RATIO] = "ratio", [COMPUTE_WEIGHTED_DIFF] = "wdiff", }; @@ -86,6 +89,7 @@ static int compute; static int compute_2_hpp[COMPUTE_MAX] = { [COMPUTE_DELTA] = PERF_HPP_DIFF__DELTA, + [COMPUTE_DELTA_ABS] = PERF_HPP_DIFF__DELTA_ABS, [COMPUTE_RATIO] = PERF_HPP_DIFF__RATIO, [COMPUTE_WEIGHTED_DIFF] = PERF_HPP_DIFF__WEIGHTED_DIFF, }; @@ -111,6 +115,10 @@ static struct header_column { .name = "Delta", .width = 7, }, + [PERF_HPP_DIFF__DELTA_ABS] = { + .name = "Delta Abs", + .width = 7, + }, [PERF_HPP_DIFF__RATIO] = { .name = "Ratio", .width = 14, @@ -298,6 +306,7 @@ static int formula_fprintf(struct hist_entry *he, struct hist_entry *pair, { switch (compute) { case COMPUTE_DELTA: + case COMPUTE_DELTA_ABS: return formula_delta(he, pair, buf, size); case COMPUTE_RATIO: return formula_ratio(he, pair, buf, size); @@ -461,6 +470,7 @@ static void hists__precompute(struct hists *hists) switch (compute) { case COMPUTE_DELTA: + case COMPUTE_DELTA_ABS: compute_delta(he, pair); break; case COMPUTE_RATIO: @@ -498,6 +508,13 @@ __hist_entry__cmp_compute(struct hist_entry *left, struct hist_entry *right, return cmp_doubles(l, r); } + case COMPUTE_DELTA_ABS: + { + double l = fabs(left->diff.period_ratio_delta); + double r = fabs(right->diff.period_ratio_delta); + + return cmp_doubles(l, r); + } case COMPUTE_RATIO: { double l = left->diff.period_ratio; @@ -564,7 +581,7 @@ hist_entry__cmp_compute_idx(struct hist_entry *left, struct hist_entry *right, if (!p_left || !p_right) return p_left ? -1 : 1; - if (c != COMPUTE_DELTA) { + if (c != COMPUTE_DELTA && c != COMPUTE_DELTA_ABS) { /* * The delta can be computed without the baseline, but * others are not. Put those entries which have no @@ -607,6 +624,15 @@ hist_entry__cmp_delta(struct perf_hpp_fmt *fmt, } static int64_t +hist_entry__cmp_delta_abs(struct perf_hpp_fmt *fmt, + struct hist_entry *left, struct hist_entry *right) +{ + struct data__file *d = fmt_to_data_file(fmt); + + return hist_entry__cmp_compute(right, left, COMPUTE_DELTA_ABS, d->idx); +} + +static int64_t hist_entry__cmp_ratio(struct perf_hpp_fmt *fmt, struct hist_entry *left, struct hist_entry *right) { @@ -633,6 +659,14 @@ hist_entry__cmp_delta_idx(struct perf_hpp_fmt *fmt __maybe_unused, } static int64_t +hist_entry__cmp_delta_abs_idx(struct perf_hpp_fmt *fmt __maybe_unused, + struct hist_entry *left, struct hist_entry *right) +{ + return hist_entry__cmp_compute_idx(right, left, COMPUTE_DELTA_ABS, + sort_compute); +} + +static int64_t hist_entry__cmp_ratio_idx(struct perf_hpp_fmt *fmt __maybe_unused, struct hist_entry *left, struct hist_entry *right) { @@ -775,7 +809,7 @@ static const struct option options[] = { OPT_BOOLEAN('b', "baseline-only", &show_baseline_only, "Show only items with match in baseline"), OPT_CALLBACK('c', "compute", &compute, - "delta,ratio,wdiff:w1,w2 (default delta)", + "delta,delta-abs,ratio,wdiff:w1,w2 (default delta)", "Entries differential computation selection", setup_compute), OPT_BOOLEAN('p', "period", &show_period, @@ -945,6 +979,7 @@ hpp__entry_pair(struct hist_entry *he, struct hist_entry *pair, switch (idx) { case PERF_HPP_DIFF__DELTA: + case PERF_HPP_DIFF__DELTA_ABS: if (pair->diff.computed) diff = pair->diff.period_ratio_delta; else @@ -1118,6 +1153,10 @@ static void data__hpp_register(struct data__file *d, int idx) fmt->color = hpp__color_wdiff; fmt->sort = hist_entry__cmp_wdiff; break; + case PERF_HPP_DIFF__DELTA_ABS: + fmt->color = hpp__color_delta; + fmt->sort = hist_entry__cmp_delta_abs; + break; default: fmt->sort = hist_entry__cmp_nop; break; @@ -1195,6 +1234,9 @@ static int ui_init(void) case COMPUTE_WEIGHTED_DIFF: fmt->sort = hist_entry__cmp_wdiff_idx; break; + case COMPUTE_DELTA_ABS: + fmt->sort = hist_entry__cmp_delta_abs_idx; + break; default: BUG_ON(1); } -- 2.11.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [tip:perf/core] perf diff: Add 'delta-abs' compute method 2017-02-10 7:36 ` [PATCH v2 1/4] perf diff: Add 'delta-abs' compute method Namhyung Kim @ 2017-02-14 6:38 ` tip-bot for Namhyung Kim 0 siblings, 0 replies; 13+ messages in thread From: tip-bot for Namhyung Kim @ 2017-02-14 6:38 UTC (permalink / raw) To: linux-tip-commits Cc: tglx, jolsa, hpa, mingo, a.p.zijlstra, acme, namhyung, linux-kernel Commit-ID: a1668c25a8e1b53d00b2997ef5bc5e25c7a77235 Gitweb: http://git.kernel.org/tip/a1668c25a8e1b53d00b2997ef5bc5e25c7a77235 Author: Namhyung Kim <namhyung@kernel.org> AuthorDate: Fri, 10 Feb 2017 16:36:11 +0900 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Mon, 13 Feb 2017 14:29:36 -0300 perf diff: Add 'delta-abs' compute method The 'delta-abs' compute method is same as 'delta' but shows entries with bigger absolute delta first instead of sorting numerically. This is only useful together with -o option. Below is default output (-c delta): $ perf diff -o 1 -c delta | grep -v ^# | head 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock +1.15% [kernel.kallsyms] [k] copy_user_generic_string 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk +0.64% [kernel.kallsyms] [k] kmem_cache_alloc 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock +0.45% [kernel.kallsyms] [k] alloc_set_pte 0.16% +0.45% [kernel.kallsyms] [k] menu_select +0.41% ld-2.24.so [.] do_lookup_x Now with 'delta-abs' it shows entries have bigger delta value either positive or negative. $ perf diff -o 1 -c delta-abs | grep -v ^# | head 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit 12.72% -3.01% [kernel.kallsyms] [k] intel_idle 9.72% -1.31% [unknown] [.] 0x0000000000411343 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk 1.35% -0.71% [kernel.kallsyms] [k] smp_call_function_single 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock 0.16% +0.45% [kernel.kallsyms] [k] menu_select 0.72% -0.44% [kernel.kallsyms] [k] lookup_fast Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/20170210073614.24584-2-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/Documentation/perf-diff.txt | 6 ++++- tools/perf/builtin-diff.c | 46 ++++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt index 3e9490b..af80284 100644 --- a/tools/perf/Documentation/perf-diff.txt +++ b/tools/perf/Documentation/perf-diff.txt @@ -86,7 +86,7 @@ OPTIONS -c:: --compute:: - Differential computation selection - delta,ratio,wdiff (default is delta). + Differential computation selection - delta,ratio,wdiff,delta-abs (default is delta). See COMPARISON METHODS section for more info. -p:: @@ -181,6 +181,10 @@ with: relative to how entries are filtered. Use --percentage=absolute to prevent such fluctuation. +delta-abs +~~~~~~~~~ +Same as 'delta` method, but sort the result with the absolute values. + ratio ~~~~~ If specified the 'Ratio' column is displayed with value 'r' computed as: diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 933aeec..781c9e6 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -30,6 +30,7 @@ enum { PERF_HPP_DIFF__RATIO, PERF_HPP_DIFF__WEIGHTED_DIFF, PERF_HPP_DIFF__FORMULA, + PERF_HPP_DIFF__DELTA_ABS, PERF_HPP_DIFF__MAX_INDEX }; @@ -73,11 +74,13 @@ enum { COMPUTE_DELTA, COMPUTE_RATIO, COMPUTE_WEIGHTED_DIFF, + COMPUTE_DELTA_ABS, COMPUTE_MAX, }; const char *compute_names[COMPUTE_MAX] = { [COMPUTE_DELTA] = "delta", + [COMPUTE_DELTA_ABS] = "delta-abs", [COMPUTE_RATIO] = "ratio", [COMPUTE_WEIGHTED_DIFF] = "wdiff", }; @@ -86,6 +89,7 @@ static int compute; static int compute_2_hpp[COMPUTE_MAX] = { [COMPUTE_DELTA] = PERF_HPP_DIFF__DELTA, + [COMPUTE_DELTA_ABS] = PERF_HPP_DIFF__DELTA_ABS, [COMPUTE_RATIO] = PERF_HPP_DIFF__RATIO, [COMPUTE_WEIGHTED_DIFF] = PERF_HPP_DIFF__WEIGHTED_DIFF, }; @@ -111,6 +115,10 @@ static struct header_column { .name = "Delta", .width = 7, }, + [PERF_HPP_DIFF__DELTA_ABS] = { + .name = "Delta Abs", + .width = 7, + }, [PERF_HPP_DIFF__RATIO] = { .name = "Ratio", .width = 14, @@ -298,6 +306,7 @@ static int formula_fprintf(struct hist_entry *he, struct hist_entry *pair, { switch (compute) { case COMPUTE_DELTA: + case COMPUTE_DELTA_ABS: return formula_delta(he, pair, buf, size); case COMPUTE_RATIO: return formula_ratio(he, pair, buf, size); @@ -461,6 +470,7 @@ static void hists__precompute(struct hists *hists) switch (compute) { case COMPUTE_DELTA: + case COMPUTE_DELTA_ABS: compute_delta(he, pair); break; case COMPUTE_RATIO: @@ -498,6 +508,13 @@ __hist_entry__cmp_compute(struct hist_entry *left, struct hist_entry *right, return cmp_doubles(l, r); } + case COMPUTE_DELTA_ABS: + { + double l = fabs(left->diff.period_ratio_delta); + double r = fabs(right->diff.period_ratio_delta); + + return cmp_doubles(l, r); + } case COMPUTE_RATIO: { double l = left->diff.period_ratio; @@ -564,7 +581,7 @@ hist_entry__cmp_compute_idx(struct hist_entry *left, struct hist_entry *right, if (!p_left || !p_right) return p_left ? -1 : 1; - if (c != COMPUTE_DELTA) { + if (c != COMPUTE_DELTA && c != COMPUTE_DELTA_ABS) { /* * The delta can be computed without the baseline, but * others are not. Put those entries which have no @@ -607,6 +624,15 @@ hist_entry__cmp_delta(struct perf_hpp_fmt *fmt, } static int64_t +hist_entry__cmp_delta_abs(struct perf_hpp_fmt *fmt, + struct hist_entry *left, struct hist_entry *right) +{ + struct data__file *d = fmt_to_data_file(fmt); + + return hist_entry__cmp_compute(right, left, COMPUTE_DELTA_ABS, d->idx); +} + +static int64_t hist_entry__cmp_ratio(struct perf_hpp_fmt *fmt, struct hist_entry *left, struct hist_entry *right) { @@ -633,6 +659,14 @@ hist_entry__cmp_delta_idx(struct perf_hpp_fmt *fmt __maybe_unused, } static int64_t +hist_entry__cmp_delta_abs_idx(struct perf_hpp_fmt *fmt __maybe_unused, + struct hist_entry *left, struct hist_entry *right) +{ + return hist_entry__cmp_compute_idx(right, left, COMPUTE_DELTA_ABS, + sort_compute); +} + +static int64_t hist_entry__cmp_ratio_idx(struct perf_hpp_fmt *fmt __maybe_unused, struct hist_entry *left, struct hist_entry *right) { @@ -775,7 +809,7 @@ static const struct option options[] = { OPT_BOOLEAN('b', "baseline-only", &show_baseline_only, "Show only items with match in baseline"), OPT_CALLBACK('c', "compute", &compute, - "delta,ratio,wdiff:w1,w2 (default delta)", + "delta,delta-abs,ratio,wdiff:w1,w2 (default delta)", "Entries differential computation selection", setup_compute), OPT_BOOLEAN('p', "period", &show_period, @@ -945,6 +979,7 @@ hpp__entry_pair(struct hist_entry *he, struct hist_entry *pair, switch (idx) { case PERF_HPP_DIFF__DELTA: + case PERF_HPP_DIFF__DELTA_ABS: if (pair->diff.computed) diff = pair->diff.period_ratio_delta; else @@ -1118,6 +1153,10 @@ static void data__hpp_register(struct data__file *d, int idx) fmt->color = hpp__color_wdiff; fmt->sort = hist_entry__cmp_wdiff; break; + case PERF_HPP_DIFF__DELTA_ABS: + fmt->color = hpp__color_delta; + fmt->sort = hist_entry__cmp_delta_abs; + break; default: fmt->sort = hist_entry__cmp_nop; break; @@ -1195,6 +1234,9 @@ static int ui_init(void) case COMPUTE_WEIGHTED_DIFF: fmt->sort = hist_entry__cmp_wdiff_idx; break; + case COMPUTE_DELTA_ABS: + fmt->sort = hist_entry__cmp_delta_abs_idx; + break; default: BUG_ON(1); } ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 2/4] perf diff: Add diff.order config option 2017-02-10 7:36 [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 1/4] perf diff: Add 'delta-abs' compute method Namhyung Kim @ 2017-02-10 7:36 ` Namhyung Kim 2017-02-14 6:38 ` [tip:perf/core] " tip-bot for Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 3/4] perf diff: Add diff.compute " Namhyung Kim ` (2 subsequent siblings) 4 siblings, 1 reply; 13+ messages in thread From: Namhyung Kim @ 2017-02-10 7:36 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, Taeung Song 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. Cc: Taeung Song <treeze.taeung@gmail.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- tools/perf/Documentation/perf-config.txt | 7 +++++++ tools/perf/Documentation/perf-diff.txt | 6 +++++- tools/perf/builtin-diff.c | 14 ++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt index 9365b75fd04f..5b54d47ef713 100644 --- a/tools/perf/Documentation/perf-config.txt +++ b/tools/perf/Documentation/perf-config.txt @@ -498,6 +498,13 @@ Variables 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. +diff.*:: + diff.order:: + This option sets the number of column to sort the result. + 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 -------- linkperf:perf[1] diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt index af80284cd2f6..6ba3bf582d79 100644 --- a/tools/perf/Documentation/perf-diff.txt +++ b/tools/perf/Documentation/perf-diff.txt @@ -99,7 +99,11 @@ OPTIONS -o:: --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. + Default value can be set using diff.order config option. --percentage:: Determine how to display the overhead percentage of filtered entries. diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 781c9e60bd21..181ff996e039 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -17,6 +17,7 @@ #include "util/symbol.h" #include "util/util.h" #include "util/data.h" +#include "util/config.h" #include <stdlib.h> #include <math.h> @@ -1291,6 +1292,17 @@ static int data_init(int argc, const char **argv) 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 ret = hists__init(); @@ -1298,6 +1310,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused) if (ret < 0) return ret; + perf_config(diff__config, NULL); + argc = parse_options(argc, argv, options, diff_usage, 0); if (symbol__init(NULL) < 0) -- 2.11.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [tip:perf/core] perf diff: Add diff.order config option 2017-02-10 7:36 ` [PATCH v2 2/4] perf diff: Add diff.order config option Namhyung Kim @ 2017-02-14 6:38 ` tip-bot for Namhyung Kim 0 siblings, 0 replies; 13+ messages in thread From: tip-bot for Namhyung Kim @ 2017-02-14 6:38 UTC (permalink / raw) To: linux-tip-commits Cc: hpa, acme, a.p.zijlstra, treeze.taeung, tglx, jolsa, linux-kernel, namhyung, mingo Commit-ID: d49dd15d69731589de4436a6dcfca59567320fdf Gitweb: http://git.kernel.org/tip/d49dd15d69731589de4436a6dcfca59567320fdf Author: Namhyung Kim <namhyung@kernel.org> AuthorDate: Fri, 10 Feb 2017 16:36:12 +0900 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Mon, 13 Feb 2017 14:29:37 -0300 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: 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-3-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/Documentation/perf-config.txt | 7 +++++++ tools/perf/Documentation/perf-diff.txt | 6 +++++- tools/perf/builtin-diff.c | 14 ++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt index 9365b75..49ab79d 100644 --- a/tools/perf/Documentation/perf-config.txt +++ b/tools/perf/Documentation/perf-config.txt @@ -498,6 +498,13 @@ record.*:: 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. +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 -------- linkperf:perf[1] diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt index af80284..7c014c9 100644 --- a/tools/perf/Documentation/perf-diff.txt +++ b/tools/perf/Documentation/perf-diff.txt @@ -99,7 +99,11 @@ OPTIONS -o:: --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:: Determine how to display the overhead percentage of filtered entries. diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 781c9e6..181ff99 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -17,6 +17,7 @@ #include "util/symbol.h" #include "util/util.h" #include "util/data.h" +#include "util/config.h" #include <stdlib.h> #include <math.h> @@ -1291,6 +1292,17 @@ static int data_init(int argc, const char **argv) 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 ret = hists__init(); @@ -1298,6 +1310,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused) if (ret < 0) return ret; + perf_config(diff__config, NULL); + argc = parse_options(argc, argv, options, diff_usage, 0); if (symbol__init(NULL) < 0) ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 3/4] perf diff: Add diff.compute config option 2017-02-10 7:36 [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 1/4] perf diff: Add 'delta-abs' compute method Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 2/4] perf diff: Add diff.order config option Namhyung Kim @ 2017-02-10 7:36 ` Namhyung Kim 2017-02-14 6:39 ` [tip:perf/core] " tip-bot for Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 4/4] perf diff: Change default setting to "delta-abs" Namhyung Kim 2017-02-10 7:41 ` [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Ingo Molnar 4 siblings, 1 reply; 13+ messages in thread From: Namhyung Kim @ 2017-02-10 7:36 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, Taeung Song 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'. Cc: Taeung Song <treeze.taeung@gmail.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- tools/perf/Documentation/perf-config.txt | 5 +++++ tools/perf/Documentation/perf-diff.txt | 5 +++-- tools/perf/builtin-diff.c | 16 +++++++++++++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt index 5b54d47ef713..f2d758dc1edc 100644 --- a/tools/perf/Documentation/perf-config.txt +++ b/tools/perf/Documentation/perf-config.txt @@ -505,6 +505,11 @@ Variables Setting it to 1 will sort the result by delta (or other compute method selected). + diff.compute:: + This options sets the method of computing diff result. + Possible values are 'delta', 'delta-abs', 'ratio' and + 'wdiff'. Default is 'delta'. + SEE ALSO -------- linkperf:perf[1] diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt index 6ba3bf582d79..70f490408262 100644 --- a/tools/perf/Documentation/perf-diff.txt +++ b/tools/perf/Documentation/perf-diff.txt @@ -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:: diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 181ff996e039..4b4004d41c6a 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -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; } -- 2.11.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [tip:perf/core] perf diff: Add diff.compute config option 2017-02-10 7:36 ` [PATCH v2 3/4] perf diff: Add diff.compute " Namhyung Kim @ 2017-02-14 6:39 ` tip-bot for Namhyung Kim 0 siblings, 0 replies; 13+ messages in thread From: tip-bot for Namhyung Kim @ 2017-02-14 6:39 UTC (permalink / raw) To: linux-tip-commits Cc: jolsa, namhyung, acme, a.p.zijlstra, tglx, treeze.taeung, linux-kernel, hpa, mingo Commit-ID: 4b35994abe459f08f58b4b3855abf4ba80308680 Gitweb: http://git.kernel.org/tip/4b35994abe459f08f58b4b3855abf4ba80308680 Author: Namhyung Kim <namhyung@kernel.org> AuthorDate: Fri, 10 Feb 2017 16:36:13 +0900 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Mon, 13 Feb 2017 14:29:37 -0300 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> --- tools/perf/Documentation/perf-config.txt | 5 +++++ tools/perf/Documentation/perf-diff.txt | 5 +++-- tools/perf/builtin-diff.c | 16 +++++++++++++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt index 49ab79d..5b4fff3 100644 --- a/tools/perf/Documentation/perf-config.txt +++ b/tools/perf/Documentation/perf-config.txt @@ -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] diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt index 7c014c9..7391299 100644 --- a/tools/perf/Documentation/perf-diff.txt +++ b/tools/perf/Documentation/perf-diff.txt @@ -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:: diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 181ff99..e68cc76 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -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; } ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 4/4] perf diff: Change default setting to "delta-abs" 2017-02-10 7:36 [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Namhyung Kim ` (2 preceding siblings ...) 2017-02-10 7:36 ` [PATCH v2 3/4] perf diff: Add diff.compute " Namhyung Kim @ 2017-02-10 7:36 ` Namhyung Kim 2017-02-10 16:18 ` [PATCH v2.1 " Namhyung Kim 2017-02-10 7:41 ` [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Ingo Molnar 4 siblings, 1 reply; 13+ messages in thread From: Namhyung Kim @ 2017-02-10 7:36 UTC (permalink / raw) To: Arnaldo Carvalho de Melo; +Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML The "delta-abs" compute method will show most changed entries on top. So users can easily see how much effect between the data. To see original-style (sorted by baseline) use -o 0 option. Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- tools/perf/builtin-diff.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 4b4004d41c6a..27300f2c665b 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -66,7 +66,7 @@ static bool force; static bool show_period; static bool show_formula; static bool show_baseline_only; -static unsigned int sort_compute; +static unsigned int sort_compute = 1; static s64 compute_wdiff_w1; static s64 compute_wdiff_w2; @@ -86,7 +86,7 @@ const char *compute_names[COMPUTE_MAX] = { [COMPUTE_WEIGHTED_DIFF] = "wdiff", }; -static int compute = COMPUTE_DELTA; +static int compute = COMPUTE_DELTA_ABS; static int compute_2_hpp[COMPUTE_MAX] = { [COMPUTE_DELTA] = PERF_HPP_DIFF__DELTA, -- 2.11.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2.1 4/4] perf diff: Change default setting to "delta-abs" 2017-02-10 7:36 ` [PATCH v2 4/4] perf diff: Change default setting to "delta-abs" Namhyung Kim @ 2017-02-10 16:18 ` Namhyung Kim 2017-02-14 6:39 ` [tip:perf/core] " tip-bot for Namhyung Kim 0 siblings, 1 reply; 13+ messages in thread From: Namhyung Kim @ 2017-02-10 16:18 UTC (permalink / raw) To: Arnaldo Carvalho de Melo; +Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML The "delta-abs" compute method will show most changed entries on top. So users can easily see how much effect between the data. Note that it also changes the default of -o option to 1 in order to apply the compute method. To see original-style (sorted by baseline) use -o 0 option. Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- tools/perf/Documentation/perf-diff.txt | 4 ++-- tools/perf/builtin-diff.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt index 70f490408262..c0aaad5af2a8 100644 --- a/tools/perf/Documentation/perf-diff.txt +++ b/tools/perf/Documentation/perf-diff.txt @@ -87,7 +87,7 @@ OPTIONS -c:: --compute:: Differential computation selection - delta,ratio,wdiff,delta-abs - (default is delta). Default can be changed using diff.compute + (default is delta-abs). Default can be changed using diff.compute config option. See COMPARISON METHODS section for more info. -p:: @@ -101,7 +101,7 @@ OPTIONS -o:: --order:: Specify compute sorting column number. 0 means sorting by baseline - overhead (default) and 1 means sorting by computed value of column 1 + overhead and 1 (default) 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. Default value can be set using diff.order config option. diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 4b4004d41c6a..45bfbee647a7 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -66,7 +66,7 @@ static bool force; static bool show_period; static bool show_formula; static bool show_baseline_only; -static unsigned int sort_compute; +static unsigned int sort_compute = 1; static s64 compute_wdiff_w1; static s64 compute_wdiff_w2; @@ -86,7 +86,7 @@ const char *compute_names[COMPUTE_MAX] = { [COMPUTE_WEIGHTED_DIFF] = "wdiff", }; -static int compute = COMPUTE_DELTA; +static int compute = COMPUTE_DELTA_ABS; static int compute_2_hpp[COMPUTE_MAX] = { [COMPUTE_DELTA] = PERF_HPP_DIFF__DELTA, @@ -810,7 +810,7 @@ static const struct option options[] = { OPT_BOOLEAN('b', "baseline-only", &show_baseline_only, "Show only items with match in baseline"), OPT_CALLBACK('c', "compute", &compute, - "delta,delta-abs,ratio,wdiff:w1,w2 (default delta)", + "delta,delta-abs,ratio,wdiff:w1,w2 (default delta-abs)", "Entries differential computation selection", setup_compute), OPT_BOOLEAN('p', "period", &show_period, -- 2.11.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [tip:perf/core] perf diff: Change default setting to "delta-abs" 2017-02-10 16:18 ` [PATCH v2.1 " Namhyung Kim @ 2017-02-14 6:39 ` tip-bot for Namhyung Kim 0 siblings, 0 replies; 13+ messages in thread From: tip-bot for Namhyung Kim @ 2017-02-14 6:39 UTC (permalink / raw) To: linux-tip-commits Cc: linux-kernel, hpa, peterz, namhyung, acme, jolsa, mingo, tglx Commit-ID: be57b3fd218ad4a19725ac4bd53e67b2ede42a9d Gitweb: http://git.kernel.org/tip/be57b3fd218ad4a19725ac4bd53e67b2ede42a9d Author: Namhyung Kim <namhyung@kernel.org> AuthorDate: Sat, 11 Feb 2017 01:18:56 +0900 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Mon, 13 Feb 2017 14:29:38 -0300 perf diff: Change default setting to "delta-abs" The "delta-abs" compute method will show most changed entries on top. So users can easily see how much effect between the data. Note that it also changes the default of -o option to 1 in order to apply the compute method. To see original-style (sorted by baseline) use -o 0 option. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20170210161856.18422-1-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/Documentation/perf-diff.txt | 4 ++-- tools/perf/builtin-diff.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt index 7391299..66dbe3de 100644 --- a/tools/perf/Documentation/perf-diff.txt +++ b/tools/perf/Documentation/perf-diff.txt @@ -87,7 +87,7 @@ OPTIONS -c:: --compute:: Differential computation selection - delta, ratio, wdiff, delta-abs - (default is delta). Default can be changed using diff.compute + (default is delta-abs). Default can be changed using diff.compute config option. See COMPARISON METHODS section for more info. -p:: @@ -101,7 +101,7 @@ OPTIONS -o:: --order:: Specify compute sorting column number. 0 means sorting by baseline - overhead (default) and 1 means sorting by computed value of column 1 + overhead and 1 (default) 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. diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index e68cc76..70a2893 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -66,7 +66,7 @@ static bool force; static bool show_period; static bool show_formula; static bool show_baseline_only; -static unsigned int sort_compute; +static unsigned int sort_compute = 1; static s64 compute_wdiff_w1; static s64 compute_wdiff_w2; @@ -86,7 +86,7 @@ const char *compute_names[COMPUTE_MAX] = { [COMPUTE_WEIGHTED_DIFF] = "wdiff", }; -static int compute = COMPUTE_DELTA; +static int compute = COMPUTE_DELTA_ABS; static int compute_2_hpp[COMPUTE_MAX] = { [COMPUTE_DELTA] = PERF_HPP_DIFF__DELTA, @@ -810,7 +810,7 @@ static const struct option options[] = { OPT_BOOLEAN('b', "baseline-only", &show_baseline_only, "Show only items with match in baseline"), OPT_CALLBACK('c', "compute", &compute, - "delta,delta-abs,ratio,wdiff:w1,w2 (default delta)", + "delta,delta-abs,ratio,wdiff:w1,w2 (default delta-abs)", "Entries differential computation selection", setup_compute), OPT_BOOLEAN('p', "period", &show_period, ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) 2017-02-10 7:36 [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Namhyung Kim ` (3 preceding siblings ...) 2017-02-10 7:36 ` [PATCH v2 4/4] perf diff: Change default setting to "delta-abs" Namhyung Kim @ 2017-02-10 7:41 ` Ingo Molnar 2017-02-10 9:14 ` Namhyung Kim 4 siblings, 1 reply; 13+ messages in thread From: Ingo Molnar @ 2017-02-10 7:41 UTC (permalink / raw) To: Namhyung Kim; +Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Jiri Olsa, LKML * Namhyung Kim <namhyung@kernel.org> wrote: > Hello, > > This patchset adds 'delta-abs' compute method to -c/--compute option. > The 'delta-abs' is same as 'delta' but shows entries with bigger > absolute delta first instead of sorting numerically. This is only > useful together with -o option. > > * v2 changes > - rebase onto acme/perf/core > - change default option to '-o 1 -c delta-abs' > > > Below is default output (-c delta): > > $ perf diff -o 1 -c delta | grep -v ^# | head > 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit > 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock > +1.15% [kernel.kallsyms] [k] copy_user_generic_string > 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs > 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk > +0.64% [kernel.kallsyms] [k] kmem_cache_alloc > 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock > +0.45% [kernel.kallsyms] [k] alloc_set_pte > 0.16% +0.45% [kernel.kallsyms] [k] menu_select > +0.41% ld-2.24.so [.] do_lookup_x > > Now with 'delta-abs' it shows entries have bigger delta value either > positive or negative. > > $ perf diff -o 1 -c delta-abs | grep -v ^# | head > 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit > 12.72% -3.01% [kernel.kallsyms] [k] intel_idle > 9.72% -1.31% [unknown] [.] 0x0000000000411343 > 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock > +1.15% [kernel.kallsyms] [k] copy_user_generic_string > 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs > 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk > 1.35% -0.71% [kernel.kallsyms] [k] smp_call_function_single > +0.64% [kernel.kallsyms] [k] kmem_cache_alloc > 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock Nice! BTW., to me the second output looks a lot more intuitive and useful than the default one. Would it be possible to flip over the default to the 'most useful' options, and see whether anyone complains? Thanks, Ingo ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) 2017-02-10 7:41 ` [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Ingo Molnar @ 2017-02-10 9:14 ` Namhyung Kim 2017-02-10 10:29 ` Ingo Molnar 0 siblings, 1 reply; 13+ messages in thread From: Namhyung Kim @ 2017-02-10 9:14 UTC (permalink / raw) To: Ingo Molnar; +Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Jiri Olsa, LKML Hi Ingo, On Fri, Feb 10, 2017 at 08:41:11AM +0100, Ingo Molnar wrote: > > * Namhyung Kim <namhyung@kernel.org> wrote: > > > Hello, > > > > This patchset adds 'delta-abs' compute method to -c/--compute option. > > The 'delta-abs' is same as 'delta' but shows entries with bigger > > absolute delta first instead of sorting numerically. This is only > > useful together with -o option. > > > > * v2 changes > > - rebase onto acme/perf/core > > - change default option to '-o 1 -c delta-abs' > > > > > > Below is default output (-c delta): > > > > $ perf diff -o 1 -c delta | grep -v ^# | head > > 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit > > 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock > > +1.15% [kernel.kallsyms] [k] copy_user_generic_string > > 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs > > 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk > > +0.64% [kernel.kallsyms] [k] kmem_cache_alloc > > 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock > > +0.45% [kernel.kallsyms] [k] alloc_set_pte > > 0.16% +0.45% [kernel.kallsyms] [k] menu_select > > +0.41% ld-2.24.so [.] do_lookup_x > > > > Now with 'delta-abs' it shows entries have bigger delta value either > > positive or negative. > > > > $ perf diff -o 1 -c delta-abs | grep -v ^# | head > > 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit > > 12.72% -3.01% [kernel.kallsyms] [k] intel_idle > > 9.72% -1.31% [unknown] [.] 0x0000000000411343 > > 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock > > +1.15% [kernel.kallsyms] [k] copy_user_generic_string > > 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs > > 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk > > 1.35% -0.71% [kernel.kallsyms] [k] smp_call_function_single > > +0.64% [kernel.kallsyms] [k] kmem_cache_alloc > > 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock > > Nice! > > BTW., to me the second output looks a lot more intuitive and useful than the > default one. Thanks! > > Would it be possible to flip over the default to the 'most useful' options, and > see whether anyone complains? The patch 4 makes it default. By the way, the current default (sort by baseline) looks like below: $ perf diff | grep -v ^# | head 42.22% +4.97% [kernel.kallsyms] [k] cfb_imageblit 12.72% -3.01% [kernel.kallsyms] [k] intel_idle 9.72% -1.31% [unknown] [.] 0x0000000000411343 2.40% +0.95% [kernel.kallsyms] [k] bit_putcs 1.35% -0.71% [kernel.kallsyms] [k] smp_call_function_single 0.62% +1.23% [kernel.kallsyms] [k] mutex_lock 0.31% +0.79% [kernel.kallsyms] [k] link_path_walk 0.16% +0.45% [kernel.kallsyms] [k] menu_select 0.00% +0.57% [kernel.kallsyms] [k] __rcu_read_unlock While this example doesn't show much difference, it could be.. Thanks, Namhyung ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) 2017-02-10 9:14 ` Namhyung Kim @ 2017-02-10 10:29 ` Ingo Molnar 0 siblings, 0 replies; 13+ messages in thread From: Ingo Molnar @ 2017-02-10 10:29 UTC (permalink / raw) To: Namhyung Kim; +Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Jiri Olsa, LKML * Namhyung Kim <namhyung@kernel.org> wrote: > > Would it be possible to flip over the default to the 'most useful' options, and > > see whether anyone complains? > > The patch 4 makes it default. /me must be blind! Yes, looks really nice that way. Thanks, Ingo ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2017-02-14 6:40 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-02-10 7:36 [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 1/4] perf diff: Add 'delta-abs' compute method Namhyung Kim 2017-02-14 6:38 ` [tip:perf/core] " tip-bot for Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 2/4] perf diff: Add diff.order config option Namhyung Kim 2017-02-14 6:38 ` [tip:perf/core] " tip-bot for Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 3/4] perf diff: Add diff.compute " Namhyung Kim 2017-02-14 6:39 ` [tip:perf/core] " tip-bot for Namhyung Kim 2017-02-10 7:36 ` [PATCH v2 4/4] perf diff: Change default setting to "delta-abs" Namhyung Kim 2017-02-10 16:18 ` [PATCH v2.1 " Namhyung Kim 2017-02-14 6:39 ` [tip:perf/core] " tip-bot for Namhyung Kim 2017-02-10 7:41 ` [PATCHSET 0/4] perf diff: Introduce delta-abs compute method (v2) Ingo Molnar 2017-02-10 9:14 ` Namhyung Kim 2017-02-10 10:29 ` Ingo Molnar
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.