[PATCHSET 0/7] perf tools: Fix and cleanups for hierarchy mode (v2)

From: Namhyung Kim
Date: Wed Mar 09 2016 - 08:48:39 EST


Hello,

These are filter-related fixes and cleanups in the new hierarchy mode.
Currently perf misbehaves in hierarchy mode when filter is applied.
For example, it sometimes misses some (upper level) entries in the
output or shows incorrect (very large) overhead.

* Changes in v2)
- update hist_entry__filter() to check multiple filters properly
- add missing runtime filter check when adding hierarchy entries
- recalculate total period using top-level entries (Jiri)
- add more comment


Before:

$ perf report --hierarchy -s 'cpu,{dso,comm}' --comms swapper --stdio
...
# Overhead CPU / Shared Object+Command
# ........... ...........................
#
13.79% [kernel.vmlinux] swapper
31.71% 000
13.80% [kernel.vmlinux] swapper
0.43% [e1000e] swapper
11.89% [kernel.vmlinux] swapper
9.18% [kernel.vmlinux] swapper

After:

# Overhead CPU / Shared Object+Command
# ........... ...............................
#
33.09% 003
13.79% [kernel.vmlinux] swapper
31.71% 000
13.80% [kernel.vmlinux] swapper
0.43% [e1000e] swapper
21.90% 002
11.89% [kernel.vmlinux] swapper
13.30% 001
9.18% [kernel.vmlinux] swapper


It's also available on 'perf/hierarchy-filter-v2' branch in my tree

git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git

any feedback are welcome.

Thanks,
Namhyung


Namhyung Kim (7):
perf tools: Fix hist_entry__filter() for hierarchy
perf tools: Add more sort entry check functions
perf tools: Fix command line filters in hierarchy mode
perf tools: Remove hist_entry->fmt field
perf hists browser: Cleanup hist_browser__fprintf_hierarchy_entry()
perf tools: Remove nr_sort_keys field
perf tools: Recalc total periods using top-level entries in hierarchy

tools/perf/ui/browsers/hists.c | 22 +++----
tools/perf/ui/hist.c | 3 -
tools/perf/util/hist.c | 144 +++++++++++++++++++++++++++++++++++++----
tools/perf/util/hist.h | 6 +-
tools/perf/util/sort.c | 104 ++++++++++++-----------------
tools/perf/util/sort.h | 1 -
6 files changed, 183 insertions(+), 97 deletions(-)

--
2.7.2