perf diff: Add option to sort entries based on diff computation
Adding support to sort hist entries based on the outcome of selected computation. It's now possible to specify '+' as a first character of '-c' option value to make such sort. Example: $ perf diff -c ratio -b # Event 'cache-misses' # # Baseline Ratio Shared Object Symbol # ........ .............. ................. ................................ # 19.64% 0.69 [kernel.kallsyms] [k] clear_page 0.30% 0.17 [kernel.kallsyms] [k] mm_alloc 0.04% 0.20 [kernel.kallsyms] [k] kmem_cache_alloc $ perf diff -c +ratio -b # Event 'cache-misses' # # Baseline Ratio Shared Object Symbol # ........ .............. ................. ................................ # 19.64% 0.69 [kernel.kallsyms] [k] clear_page 0.04% 0.20 [kernel.kallsyms] [k] kmem_cache_alloc 0.30% 0.17 [kernel.kallsyms] [k] mm_alloc Signed-off-by: Jiri Olsa <jolsa@redhat.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1349448287-18919-4-git-send-email-jolsa@redhat.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
7aaf6b3551
commit
96c47f1984
@@ -205,4 +205,6 @@ int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist __maybe_unused,
|
||||
|
||||
unsigned int hists__sort_list_width(struct hists *self);
|
||||
|
||||
double perf_diff__compute_delta(struct hist_entry *he);
|
||||
double perf_diff__compute_ratio(struct hist_entry *he);
|
||||
#endif /* __PERF_HIST_H */
|
||||
|
@@ -52,6 +52,19 @@ struct he_stat {
|
||||
u32 nr_events;
|
||||
};
|
||||
|
||||
struct hist_entry_diff {
|
||||
bool computed;
|
||||
|
||||
/* PERF_HPP__DISPL */
|
||||
int displacement;
|
||||
|
||||
/* PERF_HPP__DELTA */
|
||||
double period_ratio_delta;
|
||||
|
||||
/* PERF_HPP__RATIO */
|
||||
double period_ratio;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct hist_entry - histogram entry
|
||||
*
|
||||
@@ -67,6 +80,8 @@ struct hist_entry {
|
||||
u64 ip;
|
||||
s32 cpu;
|
||||
|
||||
struct hist_entry_diff diff;
|
||||
|
||||
/* XXX These two should move to some tree widget lib */
|
||||
u16 row_offset;
|
||||
u16 nr_rows;
|
||||
|
Reference in New Issue
Block a user