linux/tools/perf/ui
Jiri Olsa f299842269 perf tools: Move elide bool into perf_hpp_fmt struct
After output/sort fields refactoring, it's expensive
to check the elide bool in its current location inside
the 'struct sort_entry'.

The perf_hpp__should_skip function gets highly noticable in
workloads with high number of output/sort fields, like for:

  $ perf report -i perf-test.data -F overhead,sample,period,comm,pid,dso,symbol,cpu --stdio

Performance report:
   9.70%  perf  [.] perf_hpp__should_skip

Moving the elide bool into the 'struct perf_hpp_fmt', which
makes the perf_hpp__should_skip just single struct read.

Got speedup of around 22% for my test perf.data workload.
The change should not harm any other workload types.

Performance counter stats for (10 runs):
  before:
   358,319,732,626      cycles                    ( +-  0.55% )
   467,129,581,515      instructions              #    1.30  insns per cycle          ( +-  0.00% )

     150.943975206 seconds time elapsed           ( +-  0.62% )

  now:
   278,785,972,990      cycles                    ( +-  0.12% )
   370,146,797,640      instructions              #    1.33  insns per cycle          ( +-  0.00% )

     116.416670507 seconds time elapsed           ( +-  0.31% )

Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/20140601142622.GA9131@krava.brq.redhat.com
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
2014-06-03 21:34:59 +02:00
..
browsers perf tools: Move elide bool into perf_hpp_fmt struct 2014-06-03 21:34:59 +02:00
gtk perf ui/gtk: Fix callchain display 2014-06-01 14:35:09 +02:00
stdio perf ui/stdio: Fix invalid percentage value of cumulated hist entries 2014-06-01 14:35:09 +02:00
tui perf ui/tui: Protect windows by ui__lock 2013-12-26 11:22:01 -03:00
browser.c perf tools: Fix "==" into "=" in ui_browser__warning assignment 2014-06-03 21:34:48 +02:00
browser.h tools: Consolidate types.h 2014-05-01 21:22:39 +02:00
helpline.c perf ui/helpline: Introduce ui_helpline__vshow() 2012-12-09 08:46:04 -03:00
helpline.h perf ui/helpline: Introduce ui_helpline__vshow() 2012-12-09 08:46:04 -03:00
hist.c perf tools: Do not auto-remove Children column if --fields given 2014-06-01 14:35:05 +02:00
keysyms.h perf hists browser: Add option for runtime switching perf data file 2013-02-06 18:09:24 -03:00
libslang.h perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
progress.c perf ui progress: Per progress bar state 2013-10-23 15:40:38 -03:00
progress.h tools: Consolidate types.h 2014-05-01 21:22:39 +02:00
setup.c perf tools: Call perf_hpp__init() before setting up GUI browsers 2014-05-21 11:45:35 +02:00
ui.h perf tools: Separate out GTK codes to libperf-gtk.so 2013-10-09 15:55:25 -03:00
util.c perf evsel: Introduce perf_evsel__open_strerror method 2013-01-24 16:40:09 -03:00
util.h perf ui: Introduce struct perf_error_ops 2012-06-19 13:06:18 -03:00