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

Reply via email to